Мазмұны:

Alexa принтері - Қолданбалы принтер: 7 қадам (суреттермен)
Alexa принтері - Қолданбалы принтер: 7 қадам (суреттермен)

Бейне: Alexa принтері - Қолданбалы принтер: 7 қадам (суреттермен)

Бейне: Alexa принтері - Қолданбалы принтер: 7 қадам (суреттермен)
Бейне: How do printers work? (Color Laser Printer & inkjet printer) 2024, Маусым
Anonim
Image
Image
Alexa принтері | Қолданбалы принтер
Alexa принтері | Қолданбалы принтер

Мен ескі техниканы қайта өңдеп, оны қайтадан пайдалы етудің жанкүйерімін. Біраз уақыт бұрын мен ескі, арзан термикалық түбіртек принтерін алдым, мен оны қайта мақсатқа айналдырудың пайдалы әдісін алғым келді. Содан кейін, демалыс кезінде маған Amazon Echo Dot сыйға тартылды, мен қолданған мүмкіндіктердің бірі - сатып алу тізіміне азық -түлік қосу. Сондықтан мен екеуін біріктіріп, түбіртек принтерін Alexa (немесе Google Home, немесе Siri және т.б.) үшін IOT принтері ретінде пайдалану жақсы деп ойладым. Бұл идеяны шындыққа айналдыру үшін не істеу керектігін көрейік.

Жабдықтар

Міне, мен бұл жоба үшін пайдаланатын бөліктер:

  1. Арзан жалпы жылу түбіртегі принтері (ESC-POS қолдауын қажет етеді)
  2. Amazon Alexa Device (басқа «үй көмекшісі» құрылғылары да жұмыс істейтін шығар)
  3. Raspberry Pi Zero сымсыз
  4. 7805 5в реттегіш
  5. 10 мкФ конденсатор
  6. 1 мкФ конденсатор

Мен бұл жоба үшін қолданатын басқа нәрселер:

  1. Егер бұл солай болса (IFTTT.com)
  2. Дәнекерлеу жабдықтары

1 -қадам: Raspberry Pi Zero W орнату

Raspberry Pi Zero W орнату
Raspberry Pi Zero W орнату
Raspberry Pi Zero W орнату
Raspberry Pi Zero W орнату
Raspberry Pi Zero W орнату
Raspberry Pi Zero W орнату

Бірінші қадам - ескі түбіртек принтерін қайтадан басып шығару. Мен Raspberry Pi Zero W -ді контроллер ретінде қолдануды жөн көрдім, себебі бұл арзан баға мен шағын өлшем. Бұл түбіртек принтерінің корпусының ішіне сыйатындай кішкентай, сондықтан сыртқы байланыстар жоқ! Pi Zero W сонымен қатар Wi -Fi -да орнатылған, сондықтан бәрі шағын көлемге біріктірілген.

Pi -ді іске қосу үшін бізге Raspbian ОЖ жүктеп алып, Etcher сияқты бағдарламаның көмегімен microSD картасына жазу керек. Оны HDMI кабелімен, пернетақтамен, тінтуірмен, сосын қуатпен бірге Pi ұясына салыңыз.

Pi жүктелген кезде және сіз жұмыс үстелінің интерфейсінде болсаңыз, жоғарғы оң жақтағы сымсыз байланыс белгісін шертіп, сымсыз байланыс атауын таңдау арқылы сымсыз байланысқа қосыла аласыз. Егер сіз сол сымсыз белгішені тінтуірдің оң жақ түймесімен бассаңыз, желі параметрлеріне өтіп, оған желі арқылы оңай қосылу үшін тұрақты IP мекенжайын орнатуға болады. Соңында, сіз негізгі мәзірді нұқып, «Raspbian Configuration Editor» тармағын таңдап, «Interfaces» қойындысының астында SSH қосылғанына көз жеткізіңіз. Содан кейін оны сақтап, Pi -ді қайта жүктеңіз.

2 -қадам: Pi -ден басып шығару

Pi -ден басып шығару
Pi -ден басып шығару
Pi -ден басып шығару
Pi -ден басып шығару

Raspbery Pi қайта жүктелгеннен кейін, ол сымсыз желіге статикалық IP және SSH қосылған күйде қосылуы керек. Енді біз оған кез келген басқа компьютерден қашықтан қосылуымыз керек. Ол үшін сізге SSH клиенті қажет. Windows үшін жақсы клиент - Putty. Сіз оған бұрын орнатқан Pi статикалық IP мекенжайын қолдана отырып қосылуға болады. Содан кейін сіз логин ретінде «pi» және құпия сөз ретінде «таңқурай» арқылы кіре аласыз.

Сәтті кіргеннен кейін біз енді Pi терминал интерфейсінде болуымыз керек. Мұнда біз Raspberry Pi -де орындалатын командаларды жаза аламыз. Мысалы, біз жасағымыз келетін бірінші нәрсе - Pi бағдарламалық жасақтамасының жаңартылғанына көз жеткізу. Сонымен, терминалда біз жаза аламыз:

sudo apt-get жаңартуы

Бұл пәрмен Pi бағдарламалық жасақтамасының репозиторийлерін жаңартады. Содан кейін біз ESC-POS принтерінің бағдарламалық қамтамасыз етуін және қажетті кітапханаларды орната аламыз.

sudo apt-get install python3 python3-setuptools python3-pip libjpeg8-devsudo pip3 install-pip sudo pip3 install python-escpos орнатыңыз

Осының арқасында біз енді принтерді Pi-дің Micro-USB портына қосамыз (адаптерді қолдана отырып). Содан кейін біздің терминалда біз кішкене питон сценарийін жасай аламыз

nano hello_world.py

Және оған осы питон кодын қосуға болады

#!/usr/bin/pythonfrom escpos.printer Usb p = Usb (0x0416, 0x5011) p.text («Mini IOT принтері / n») p.close ()

Одан шығу (CTRL-X), оны сақтау (CTRL-Y) және оны тексеру үшін іске қосыңыз

python3 hello_world.py

3 -қадам: Заттар Интернетіне қосылу (1 -бөлім)

Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)
Заттар Интернетіне қосылу (1 -бөлім)

Басып шығаратын зат болмаса, принтердің қандай пайдасы бар? Мен Alexa сияқты әртүрлі интернет қызметтерінен басып шығаруға мүмкіндік бергім келді. Сонымен мен бұған қалай қол жеткізе аламын? Бір нұсқа - белгілі бір интернет қызметін таңдау, олардың API құжаттамасын қадағалау және олардың API негізінде өтініш жазу. Бірақ мен жалқау жолды таңдадым …

Көптеген критерийлерге негізделген әр түрлі интернет қызметтеріне (Alexa, Google Home, Gmail, Facebook, Instagram, Twitter және т. Мысалы, «егер» мен Facebook-ке хабарлама жіберетін болсам (бұл), «онда» маған электрондық пошта жіберіңіз (бұл).

Бірінші жартысында мен тегін есептік жазбаға тіркелдім, сіз іске қосқыңыз келетін әр түрлі қызметтер үшін жаңа «апплет» құруды бастауға болады. Менің апплетімнің «Бұл» бөлігі Alexa болады. Alexa -ның көптеген триггерлерін таңдауға болады, бірақ мен «Сатып алу тізімінде не бар екенін сұра» дегенді таңдаймын. Біз ақырында Raspberry Pi -де Python сценарийін іске қосқанын қалаймыз, сондықтан сценарийдің «сол» бөлігі үшін біз Webhooks -ты таңдағымыз келеді.

Webhooks опциясында біз Pi -ге сілтеме жасайтын URL қосуға болады, оған кейінірек ораламыз. Біз «Өріс» өрісін қалдыра аламыз, ал мазмұн түрі үшін «Қарапайым мәтінді» таңдаңыз. Негізгі өріс үшін «Ингредиенттерді қосу» түймесін басып, «Бүкіл тізімді» таңдаңыз. Бұл барлық сатып алу тізімін Get сұрауы ретінде жібереді.

4 -қадам: Заттар Интернетіне қосылу (2 -бөлім)

Заттар Интернетіне қосылу (2 -бөлім)
Заттар Интернетіне қосылу (2 -бөлім)
Заттар Интернетіне қосылу (2 -бөлім)
Заттар Интернетіне қосылу (2 -бөлім)

Алдыңғы қадам «Интернет» бөлігіне қамқорлық жасайды, сондықтан енді Raspberry Pi көмегімен «заттар» бөлігінде жұмыс істеуге рұқсат етіңіз. «Егер бұл сол кезде» веб -хукс апплетімен байланысу үшін бізге Raspberry Pi -де веб -сервер орнату қажет. Веб -серверді құрудың көптеген әдістері бар, бірақ мен Python сценарийін іске қосқым келетінін ескере отырып, мен Python Flask серверін қолдануды шештім.

Pi барлық Flask кітапханаларын алдын ала орнатқан, сондықтан тест сценарийін жазуды бастау керек:

nano flask_test.py

Және оған қарапайым веб -бетке қызмет ететін кодты қосайық.

#! flask/bin/python #Flask КІТАПХАНАЛАРЫН Колбадан импорттау Колбасынан импорт, сұрау #FLASK VARIABLE app = Flask (_ name_) #CREATE AN 'INDEX' PAGE @app.route ('/') def index (): қайтару 'Сіздің колба сервері жұмыс істейді!' #_== '_main_' болса, бағдарламаны іске қосыңыз: app.run (жөндеу = ақиқат, хост = '0.0.0.0')

Енді бағдарламаны сақтап, оны мына пәрмен арқылы іске қосыңыз:

sudo python3 flask_test.py

Сіз пәрменге жауап ретінде Flask жұмыс істейтін әдепкі порт 5000 порт екенін көресіз. Сонымен, веб -браузерде, егер сіз Pi -дің 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 (): «Сіздің колба сервері жұмыс істейді!» Қайтарыңыз #ALEXA САТУ ТІЗІМІН БАСУҒА АРНАЛҒАН «ТІЗІМ» ЖАСАҢЫЗ @app.route ('/list') def list (): #CAPTURE «DATA OF IFTTT WEBOOKS content = request.get_data () #RAW DATA TO CONVERT STRING str_content = str (мазмұн) #ДЕРЕКТІ БӨЛІНГЕН ЖОЛДАРҒА БӨЛІҢІЗ str_split = str_content.splitlines () #ҮТІРІМЕН ЖӘНЕ СӨЗДЕР ЖАҢА ТІЗІМГЕ ҚОСУ newlist = str_split ішіндегі сөз үшін: word = word.split (',') newlist.extend (word) #FORMATTING BARKS REMOVE rmv_marks = [s.strip («b '») for s for new list] #PRINT HEADER #print («Shopping List / n») p.text («Shopping List: / n «) #ТІЗІМДЕГІ әрбір элементті санап шығару және басып шығару rmv_marks ішіндегі x үшін r = 1: #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')

Сіз оны қателерді қайтаратынын көру үшін іске қоса аласыз, бірақ ол біздің веб -ілмегімізбен жұмыс істемейді, себебі дәл қазір сервер тек жергілікті түрде жұмыс істейді. Веб -ілмекке қосылатын сыртқы URL жоқ. Біз маршрутизаторда портты бағыттауды орната аламыз және сыртқы IP мекенжайын қолдана аламыз, бірақ бұл өте қауіпсіз емес. Балама ретінде мен NGROK -пен баруды шештім.

5 -қадам: Ngrok көмегімен сыртқы қатынауды орнату

Ngrok көмегімен сыртқы қатынасты орнату
Ngrok көмегімен сыртқы қатынасты орнату
Ngrok көмегімен сыртқы қатынасты орнату
Ngrok көмегімен сыртқы қатынасты орнату

Ngrok сіздің сыртқы IP -ды ашпастан немесе портты қайта жіберумен байланысты болмай -ақ желіге қауіпсіз қосылым орнатады. Тегін тіркелгіге тіркелгеннен кейін, ол сізге авторизация белгісін береді. Содан кейін Raspberry Pi -де сіз оны жүктей аласыз, аша аласыз, аутентификация токенін қосасыз, содан кейін оны 5000 портында іске қосасыз:

mkdir ngrokcd ngrok wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable… ngrok-stabil-linux-arm./ngrok autentoken [авторлық куәлігін осында енгізіңіз]./ngrok http 5000

*** МАҢЫЗДЫ *** Ngrok-тың тегін нұсқасы сізге тұрақты мекен-жай бермейді, сондықтан Ngrok-ты қайта іске қосқан кезде ол сізге басқа мекен-жай береді. Егер сізге Webhook-ты қайта өңдеуді қажет етпейтін тұрақты мекен-жай қажет болса, онда жаңартылған есептік жазба үшін ақы төлеу қажет болады.

Тұрақты IP ұсынатын Ngrok -ке тегін балама www.serveo.net сайтында «Serveo» деп аталады

************************

Алынған экранда сізге Webhook апплетінде қолдануға болатын бағыттау мекенжайы беріледі (https://random-string.ngrok.io). URL өрісінде «Егер бұл солай болса» дегенге қайтып оралып, Ngrok бағыттау мекенжайын енгізіңіз және оны Flask серверіндегі «тізім» бетіне көрсетіңіз. Бұл келесідей көрінуі керек

random_string.ngrok.io/list

Содан кейін жалғастырыңыз және өзгертулерді сақтаңыз.

Оны тексеру үшін Ngrok жұмысын жалғастырыңыз, жаңа терминал ашып, біздің питон сценарийін іске қосыңыз. Екі зат жұмыс істеп тұрғанда, Alexa -дан сатып алу тізімінде не бар екенін сұраңыз. Бір -екі минуттан кейін ол нәтижелерді басып шығаруы керек. Егер сіз оны бірден басып шығарғыңыз келсе, IFTTT бағдарламасындағы Апплетке өтіп, «Қазір тексеру» түймесін басыңыз. Егер бәрі ойдағыдай болса, түбіртек принтері сіздің сатып алу тізіміңізде не бар екенін басып шығаруы керек! Біз қосатын кодтың соңғы биті - пг іске қосылған сайын ngrok пен біздің колбаның серверін автоматты түрде іске қосу әдісі. Біз мұны 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 қосу
Принтерге Pi қосу
Принтерге Pi қосу
Принтерге Pi қосу
Принтерге Pi қосу
Принтерге Pi қосу
Принтерге Pi қосу
Принтерге Pi қосу

Менде бар түбіртек принтерінде қаптаманың ішінде бос орын көп. Raspberry Pi Zero кішкентай болғандықтан, мен оны түбіртек принтерінде бір құрылғыға ұқсайтын етіп жасыру жақсы болар еді деп ойладым. Жалғыз мәселе - түбіртек принтері 12 вольтта, ал Pi 5 вольтта жұмыс істейді. Егер біз екеуіне де бір ғана қуат кабелін бергіміз келсе, онда біз 12 вольтты 5 вольттан ажыратуға мәжбүр боламыз.

7805 кернеу реттегішін, 1уф конденсаторды және 10уф конденсаторды қолдана отырып, мен түбіртек принтерінің логикалық тақтасына қосылған 5В қарапайым реттегішті жасай алдым. Мен «-» сымын ортақ жерге дәнекерледім, содан кейін принтерді қосқанда және өшіргенде Pi қосылатын және өшетін етіп «+» сымын қуат қосқышының «жағындағы» жағына дәнекерледім. Мультиметрді қолдана отырып, мен шығыс Pi үшін қауіпсіз екенін растадым. Содан кейін мен микро-USB кабеліне дәнекерлеп, оны Pi-ге қостым. Кабельді принтерге қосып, қосқышты аударғаннан кейін принтер де, Pi де қосылды!

Ақырында мен USB кабелін Pi -ден принтерге жалғау үшін тесік жасадым. Мен принтер корпусының ішіне 5В реттегіш пен Pi салатын орын таптым, содан кейін бәрін қайтадан жинадым. Сонымен, қазір принтердің өзіндік веб -сервері бар!

7 -қадам: оны әрі қарай жалғастыру

Әрі қарай
Әрі қарай

Егер сіз «Егер бұл сол кезде» қарауға мүмкіндігіңіз болса, онда сіз оған қосылуға болатын көптеген веб -қызметтер бар екенін байқаған шығарсыз. Егер сізде Alexa жоқ болса немесе оны пайдаланғыңыз келмесе, сіз бұл жобаны Facebook, Twitter, Gmail, Google Home, Evernote, Tumblr, Flickr, Wordpress сияқты кез келген нәрседен басып шығару үшін пайдалана аласыз. және т. Енді барып, не ойлап табуға болатынын көріңіз!

IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

IoT Challenge бірінші жүлдесі

Ұсынылған: