Мазмуну:
- Жабдуулар
- 1 -кадам: Raspberry Pi Zero W орнотуу
- 2 -кадам: Piден басып чыгаруу
- 3 -кадам: нерселердин Интернетине туташуу (1 -бөлүк)
- 4 -кадам: нерселердин Интернетине туташуу (2 -бөлүк)
- 5 -кадам: Ngrok менен тышкы кирүүнү орнотуу
- 6 -кадам: Принтерге Pi кошуу
- 7 -кадам: Аны андан ары алуу
Video: Alexa принтер - Upcycled квитанция принтери: 7 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Мен эски технологияны кайра иштетүүнүн жана аны кайра пайдалуу кылуунун күйөрманымын. Бир аз мурун, мен эски, арзан термикалык квитанция принтерин сатып алдым жана аны кайра максатка ылайыктуу жолун кааладым. Андан кийин, каникул учурунда мага Amazon Echo Dot белек кылышты жана мен эң көп колдонгон өзгөчөлүктөрдүн бири дүкөндөр тизмегиме азык -түлүктөрдү кошуу болду. Ошентип, экөөнү бириктирип, дүмүрчөк принтерин Alexa (же Google Home, же Siri ж.б.) үчүн IOT принтери катары колдонуу жакшы болот деп ойлодум. Келгиле, бул идеяны ишке ашыруу үчүн эмне кылуу керек экенин көрөлү.
Жабдуулар
Мына мен бул долбоор үчүн колдонгон бөлүктөр:
- Арзан жалпы термикалык квитанция принтери (ESC-POS колдоосу керек)
- Amazon Alexa Device (башка "үй жардамчысы" түзмөктөрү да иштеши мүмкүн)
- Raspberry Pi Zero Wireless
- 7805 5v регулятору
- 10μf Capacitor
- 1μf Capacitor
Мен бул долбоор үчүн колдонгон башка нерселер:
- Эгерде бул ошондо (IFTTT.com)
- Soldering Equipment
1 -кадам: Raspberry Pi Zero W орнотуу
Биринчи кадам - эски дүмүрчөк принтерин кайра басып чыгаруу. Мен Raspberry Pi Zero Wди контролер катары колдонууну тандадым, анткени анын баасы арзан жана кичине. Бул чындыгында дүмүрчөктүн принтер корпусунун ичине батыш үчүн кичине, андыктан тышкы байланыштар жок! Pi Zero W ошондой эле Wifi -да курулган, андыктан бардыгы негизинен кичинекей өлчөмүнө интеграцияланган.
Pi'ни иштетүү үчүн биз Raspbian OSти жүктөп алып, Etcher сыяктуу программаны колдонуп microSD картасына өрттөшүбүз керек. Аны HDMI кабели, клавиатура, чычкан жана андан кийин кубат менен бирге Pi'ге салыңыз.
Pi жүктөлгөндө жана рабочий интерфейсинде болгондо, жогорку оң жактагы зымсыз сүрөтчөсүн чыкылдатып, зымсыз туташууңуздун атын тандоо менен зымсыз туташууңузга туташа аласыз. Эгерде сиз ошол эле зымсыз сүрөтчөнү оң бассаңыз, анда тармактын жөндөөлөрүнө өтүп, статикалык IP дарегин орнотсоңуз болот, биз ага тармак аркылуу оңой туташа алабыз. Акыр -аягы, сиз негизги менюну чыкылдатып, "Raspbian Configuration Editor" тандап, "Interfaces" өтмөгүнүн астынан SSH иштетилгенин текшериңиз. Андан кийин аны сактап, Piңизди өчүрүп күйгүзүңүз.
2 -кадам: Piден басып чыгаруу
Raspbery Pi кайра жүктөлгөндөн кийин, ал зымсыз тармагыңызга статикалык IP жана SSH иштетилген менен туташтырылышы керек. Эми биз ага башка компьютерден алыстан туташа алышыбыз керек. Бул үчүн сизге SSH кардары керек. Windows үчүн жакшы кардар Putty болуп саналат. Сиз буга биз орноткон Пи статикалык IP дарегин колдонуп туташа аласыз. Андан кийин сиз колдонуучунун аты катары "pi" жана сырсөз катары "малина" менен кире аласыз.
Ийгиликтүү кирүүдөн кийин, биз азыр Пинин терминалдык интерфейсинде болушубуз керек. Бул жерде биз Raspberry Piде аткарыла турган буйруктарды тере алабыз. Мисалы, биз эң биринчи кылгысы келген нерселердин бири - бул Пидеги программалык камсыздоонун жаңыртылгандыгын текшерүү. Ошентип, терминалда биз тере алабыз:
sudo apt-get update
Бул буйрук Piдеги программалык камсыздоо кампаларын жаңыртат. Андан кийин, биз ESC-POS принтер программасын жана керектүү китепканаларды орното алабыз.
sudo apt-get python3 python3-setuptools python3-pip libjpeg8-devsudo pip3 орнотуу-pip sudo pip3 орнотуу python-escpos орнотуу
Муну менен биз азыр принтерди Pi'дин Micro-USB портуна туташтырып (адаптер аркылуу) жана күйгүзө алабыз. Анан биздин терминалда кичине питон скриптин түзө алабыз
nano hello_world.py
Жана биз бул питон кодун кошо алабыз
#!/usr/bin/pythonfrom escpos.printer usb p = Usb (0x0416, 0x5011) p.text ("Mini IOT Printer / n") p.close ()
Андан чыгуу (CTRL-X), аны сактоо (CTRL-Y) жана аны текшерүү үчүн иштетүү
python3 hello_world.py
3 -кадам: нерселердин Интернетине туташуу (1 -бөлүк)
Принтерди басып чыгара турган эч нерсеси жок? Мен Alexa сыяктуу ар кандай интернет кызматтарынан басып чыгарууга мүмкүнчүлүк бергим келди. Анда мен муну кантип ишке ашыра алам? Бир вариант - белгилүү бир интернет кызматын тандоо, алардын API документтерин байкоо жана алардын APIнин негизинде арыз жазуу. Бирок мен жалкоо жолду тандагам …
Ар кандай интернет кызматтарынын (Alexa, Google Home, Gmail, Facebook, Instagram, Twitter, ж. Мисалы, "эгерде" мен Фейсбукка пост жазсам (бул), "Анда" мага электрондук кат жөнөтөт (тигил).
Ошентип, мунун биринчи жарымында мен бекер эсепке жазылдым, сиз иштетүүнү каалаган ар кандай кызматтар үчүн жаңы "апплет" түзүүнү баштасаңыз болот. Менин апплетимдин "Бул" бөлүгү Alexa болот. Тандоо үчүн көптөгөн Alexa триггерлери бар, бирок мен "Соода тизмеңизде эмне бар экенин сураңыз" дегенди тандайм. Биз акыры анын Raspberry Piдеги Python скриптин иштетүүсүн каалайбыз, ошондуктан сценарийдин "тигил" бөлүгү үчүн биз Webhooksту тандап алгыбыз келет.
Webhooks тандоосунда, биз Piге багытталган URLди кошо алабыз, ага кийинчерээк кайрылабыз. Метод талаасын "Get" деп калтырып, мазмундун түрү үчүн "Жөнөкөй текстти" тандап алабыз. Дене талаасы үчүн "Ингредиентти кошуу" баскычын чыкылдатып, "Бүтүндөй тизме" тандаңыз. Бул бардык сатып алуулар тизмесин Get сурамы катары жөнөтөт.
4 -кадам: нерселердин Интернетине туташуу (2 -бөлүк)
Мурунку кадам "Интернет" бөлүгүнө кам көрөт, андыктан азыр Raspberry Pi менен "нерселер" бөлүгүндө иштөөгө уруксат бериңиз. "If This That That" webhooks апплети менен байланышуу үчүн, Raspberry Piде веб -серверди орнотушубуз керек. Веб -серверди орнотуунун ар кандай жолдору бар, бирок мен акыры Python скриптин иштетүүнү каалап жаткандыгымды эске алып, Python Flask серверин колдонууну чечтим.
Pi бардык Flask китепканаларын алдын ала орноткон, андыктан тесттик сценарийди жазууну баштоо керек:
nano flask_test.py
Жана анда жөнөкөй веб -баракчаны тейлеген кодду кошолу.
#! flask/bin/python #Flask CIBRARIES'ти колбадан импорттоо Колбасынан импорттоо, #FLASK VARIABLE app = Flask (_ name_) #CREATE AN 'INDEX' PAGE @app.route ('/') def index (): кайтуу 'Сиздин колбаңыздын сервери иштеп жатат!' #ПРОГРАММАНЫ ИШТЕТ, эгер _name_ == '_main_': app.run (мүчүлүштүктөрдү чыгаруу = Чын, хост = '0.0.0.0')
Эми программаны сактап, ушул буйрукту колдонуп иштетиңиз:
sudo python3 flask_test.py
Сиз буйруктун жообу менен Flask иштеген демейки порт 5000 порту экенин көрөсүз. Ошентип, веб -браузерде, эгер сиз Пиңиздин IP дарегин терсеңиз: 5000, сиз "Сиздин колбаңыздагы сервер иштеп жатат!" Деген текстти көрүшүңүз керек.
Бизде мурдагы Python коду бар, бул биздин квитанция принтерибизде басылып чыгат жана бизде Flask тесттик серверибиз бар. Ошентип, кийинкиде биз аларды айкалыштырып, Webhook апплетибизден маалыматтарды тарткан кээ бир коддорду киргизишибиз керек. Келгиле, жаңы Python файлын түзөлү:
нано iot_print_server.py
Жана анын ичинде төмөнкү кодду кошуңуз:
#! flask/bin/python #Колбаны импорттоо Колбадан флэш жана принтер китепканаларын импорттоо, escpos.printerден импорт Usb #ПРИНТЕР ЖАНА ФЛАСКА ӨЗГӨРҮЛҮШТӨРҮ p = Usb (0x0416, 0x5011) app = Flask (_ name_) #C 'INDEX' БАРАКЧАСЫ @app.route ('/') def index (): return 'Flask server is working!' #БЕТТИ АЛЕКСА САТУУ ТИЗМЕСИН ЧЫГАРУУ ҮЧҮН "ТИЗМЕ" ТҮЗҮҢҮЗ @app.route ('/list') def list (): #CAPTURE "Get" DATA from IFTTT WEBOOKS content = request.get_data () #RAW DATA TO CONVERT RAW DATA TO STRING str_content = str (мазмунун) #БӨЛҮНҮШТҮН БӨЛҮНДӨРҮН БӨЛҮҢҮЗ str_split = str_content.splitlines () #ҮЙРӨТМӨЛҮК ЖАНА ЖАҢЫ ТИЗМЕГЕ КОШУУ ҮЧҮН ЖЫЛДАМДУУ СӨЗДӨР newlist = str_split: word = word.split (',') newlist.extend (сөз) #FORMATTING BARKSти алып салуу rmv_marks = [s.strip ("b '") for s new list] #PRINT HEADER #print ("Shopping List / n") p.text ("Shopping List: / n ") #ТИЗМЕДЕГИ АР БИР ИДЕНДИ ЧЫГАРЫП ЧЫГАРЫҢЫЗ r = 1 rmv_marks үчүн x үчүн: #print (str (r) +". " + X +" / n ") p.text (str (r) +". " + x + "\ n") r + = 1 #КАЙТАРУУ ЖЫЙЫНТЫКТАРЫ 'x' #ПРОГРАММАСЫН ИШТЕТ, эгер _name_ == '_main_': app.run (debug = True, host = '0.0.0.0')
Сиз аны кандайдыр бир каталарды кайтарып береби же жокпу билиш үчүн иштете аласыз, бирок ал азырынча биздин веб -хук менен иштебейт, анткени азырынча сервер жергиликтүү деңгээлде гана иштеп жатат. Азырынча туташуу үчүн webhookтун тышкы URLи жок. Биз роутерибизге порт багыттоону орнотуп, сырткы IP дарегибизди колдонсок болот, бирок бул чындыгында өтө коопсуз эмес. Альтернатива катары мен NGROK менен барууну чечтим.
5 -кадам: Ngrok менен тышкы кирүүнү орнотуу
Ngrok сиздин тышкы IPиңизди ачыкка чыгарбастан же порт багыттоодо башаламандык кылбастан, тармагыңызга коопсуз байланышты орнотот. Акысыз эсепке катталгандан кийин, ал сизге автордук белгини берет. Андан кийин Raspberry Pi'ге жүктөп алып, ачып, автордук белгини туташтырып, анан 5000 портунда иштете аласыз:
mkdir ngrokcd ngrok wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable… ungip ngrok-stabil-linux-arm.
*** МААНИЛҮҮ *** Ngrokтун бекер версиясы сизге статикалык даректи бербейт, андыктан Ngrokту кайра иштеткен сайын, ал сизге башка даректи берет. Эгерде сиз Webhookту кайра оңдой бербөө үчүн статикалык даректи кааласаңыз, анда жакшыртылган эсеп үчүн төлөшүңүз керек болот.
Статикалык IP сунуштаган Ngrokтун акысыз альтернативасы "Serveo" деп аталат www.serveo.net
************************
Алынган экранда ал сизге Webhook апплетибизде колдоно турган багыттоочу даректи берет (https://random-string.ngrok.io). Ошентип, "Эгерде бул анда" дегенге кайтып барсаңыз, URL талаасына Ngrok багыттоочу дарегиңизди киргизиңиз жана аны Flask серверибиздеги "тизме" барагына көрсөтүңүз. Бул окшош нерсеге окшош болушу керек
random_string.ngrok.io/list
Андан кийин улантыңыз жана өзгөртүүлөрдү сактаңыз.
Муну текшерүү үчүн, Ngrokтун иштешин улантыңыз, жаңы терминалды ачыңыз жана биздин питон скриптин иштетиңиз. Эки нерсе тең иштеп жатканда, Alexaдан соода тизмеңизде эмне бар экенин сураңыз. Бир -эки мүнөттөн кийин ал жыйынтыктарды басып чыгарышы керек. Эгерде сиз аны дароо басып чыгарууну кааласаңыз, IFTTTдеги Апплетиңизге барып, "Азыр текшерүү" баскычын басыңыз. Эгерде баары ойдогудай болсо, дүмүрчөк принтери сиздин соода тизмеңиздегини басып чыгарышы керек! Биз кошуубуз керек болгон коддун акыркы бөлүгү ngrokту жана флэш серверибизди Pi башталган сайын автоматтык түрдө баштоонун жолу. Биз муну Python скриптибизди аткарылуучу кылып оңой эле жасай алабыз:
chmod +x iot_print_server.py
Андан кийин биз /etc/rc.local файлды түзөтө алабыз, ал мындай көрүнөт:
## Демейки боюнча бул скрипт эч нерсе кылбайт. # IP адресин басып чыгарыңыз _IP = $ (хосттун аты -I) || эгер туура болсо "" $ _IP "]; анда printf "Менин IP дарегим %s / n" "$ _IP" fi #autostart ngrok жана аны автордук файлыңызга көрсөтүңүз./home/pi/ngrok/ngrok http -config =/home/pi/.ngrok2/ngrok. yml 5000 #принтердин python скриптин автоматтык түрдө баштоо sudo python3 /home/pi/iot_receipt_printer.py & чыгуу 0
6 -кадам: Принтерге Pi кошуу
Мендеги квитанция принтеринде корпустун ичинде бош орун көп. Жана Raspberry Pi Zero кичинекей болгондуктан, мен аны бир дүмүрчөк принтерине катып койсом сонун болмок деп ойлодум, ал бир эле түзмөккө окшош. Жалгыз көйгөй - бул дүмүрчөктүн принтери 12v жана Pi 5v менен иштейт. Ошентип, эгерде биз экөөнө тең бир гана кубат кабелин кааласак, анда биз 12в кубаттуулукту 5v чейин өчүрүшүбүз керек.
7805 чыңалуу жөндөгүчүн, 1 уф конденсаторун жана 10 уф конденсаторун колдонуп, мен квитанция принтеринин логикалык тактасына туташкан 5V жөндөгүчтү түзө алдым. Мен "-" зымын жалпы жерге ширеттим, анан "+" зымын кубат которгучтун "жактагы" тарабына коштум, ошондо принтер күйүп-өчкөндө Pi күйүп, өчүп калат. Мультиметрди колдонуп, мен Pi үчүн коопсуз экенин тастыктоо үчүн тестирледим. Анан мен микро-USB кабелине ширетип, аны Пи-ге туташтырдым. Кабелди принтерге туташтырып, которгучту которгондон кийин, принтер да, Pi да күйгүзүлдү!
Акыры, мен USB кабелин Piден принтерге туташтыруу үчүн тешик жасадым. Мен принтер корпусунун ичине 5v жөндөгүчтү жана Пиди коё турган жер таптым, анан баарын кайра бириктирдим. Ошентип, азыр принтердин өзүнүн жеке веб -сервери бар!
7 -кадам: Аны андан ары алуу
Эгерде сиз "Эгерде бул ошондо" дегенди карай алсаңыз, анда туташуу үчүн көптөгөн түрдүү веб кызматтары бар экенин байкаган чыгарсыз. Эгерде сизде Alexa жок болсо, же аны колдонуунун кажети жок болсо, анда бул долбоорду Facebook, Twitter, Gmail, Google Home, Evernote, Tumblr, Flickr, Wordpress сыяктуу дээрлик бардык нерселерден басып чыгаруу үчүн колдонсоңуз болот. ж.б.. Менин Github баракчамдан Твиттерди басып чыгаруу үчүн менин кодумду таба аласыз. Эми барып, эмнени ойлоп таба аларыңызды көрүңүз!
IoT чакырыгынын биринчи сыйлыгы
Сунушталууда:
SLA 3D принтери кислота менен чегилген схемалар: 7 кадам (сүрөттөр менен)
SLA 3D принтери кислотасы менен чегилген схемалар: Remix..remix .. Ооба, мага ATtiny чиптерим үчүн өнүгүү тактасы керек. Менде Кикадды билбеген ПХБны кесе турган CNC жок, мен тактайларга заказ кылгым келбейт. Бирок менде чайыр принтер … жана кислота бар, мен SketchUpту билем. Жана нерселерди жасаганды жакшы көрөм. Эмне болду
DIY NANOLEAF - 3D принтери жок: 11 кадам (сүрөттөр менен)
DIY NANOLEAF - 3D принтери жок: Бул инструкцияда Hii Tech Lovers мен сизге Arora Nanoleaf жок кылуучу электр шаймандарын кантип жасоону көрсөтөм & сиз бул панелдерди ыңгайлаштырсаңыз болот. Мен 9 панель жасадым, бардыгы 54 нео пикселдик LED. Жалпы наркы 20 доллардан төмөн (Индия ₹ 1500) Nanoleaf жарык панелдери
3d принтери жана Arduino жок бий роботун жасаңыз/#акылдуу чыгармачылык: 11 кадам (сүрөттөр менен)
3d принтер жана Arduino жок бий роботун жасаңыз/#smartcreativity: Салам достор, бул окуу куралында мен сизге үйдө 3D принтерсиз жана Arduino жок бий роботун жасоону көрсөтөм. Бул робот бийлей алат, авто балансташтырат, музыка чыгарат жана басат. Жана роботтун дизайны ушунчалык сонун көрүнөт
3D принтери менен атайын схемаларды басып чыгаруу: 7 кадам (сүрөттөр менен)
Өзгөчө схемаларды 3D принтер менен басып чыгаруу: Эгерде сиз 3D принтерин биринчи жолу көрүп жатпасаңыз, анда кимдир бирөөнүн мындай деп айтканын уккандырсыз: 1) 3D принтер сатып алуу 2) Башка 3D принтерди басып чыгаруу 3) Түпнуска 3D кайтаруу принтер4) ???????? 5) ProfitNow ким болбосун
INKJET принтери менен басылган схемаларды түзүү: 8 кадам (сүрөттөр менен)
INKJET принтери менен басылган микросхемаларды түзүү: Мен өзүмдүн жеке принтерлерди кантип чийип салууну изилдей баштаганымда, мен тапкан ар бир көрсөтмө жана окуу куралында лазердик принтер колдонулган жана кандайдыр бир модада үтүктөлгөн. Менде лазердик принтер жок, бирок менде арзан сыя бар