Агуулгын хүснэгт:

Alexa принтер - Дахин боловсруулсан баримт хэвлэгч: 7 алхам (зурагтай)
Alexa принтер - Дахин боловсруулсан баримт хэвлэгч: 7 алхам (зурагтай)

Видео: Alexa принтер - Дахин боловсруулсан баримт хэвлэгч: 7 алхам (зурагтай)

Видео: Alexa принтер - Дахин боловсруулсан баримт хэвлэгч: 7 алхам (зурагтай)
Видео: How to Bend a Spoon w/ Your Mind (Psychokinesis) | Guide & Advice | + Ghost Stories: Loyd Auerbach 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 5v зохицуулагч
  5. 10μf конденсатор
  6. 1μf конденсатор

Энэ төсөлд миний ашигладаг бусад зүйл бол:

  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 нь Wifi -д суурилагдсан тул бүх зүйлийг үндсэндээ жижиг хэмжээтэй нэгтгэдэг.

Pi -г ажиллуулахын тулд бид Raspbian OS -ийг татаж аваад 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 update

Энэ тушаал нь Pi дээрх програм хангамжийн санг шинэчлэх болно. Дараа нь бид ESC-POS принтерийн програм хангамж болон шаардлагатай номын санг суулгаж болно.

sudo apt-get install python3 python3-setuptools python3-pip libjpeg8-devsudo pip3 install-pip sudo pip3-ийг python-escpos суулгах

Үүнийг хийсний дараа бид одоо принтерээ Pi-ийн Micro-USB порт руу холбож (адаптер ашиглан) асааж болно. Дараа нь манай терминал дээр бид бяцхан питон скрипт үүсгэж болно

нано 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 сайн байна уу, дэлхийн.py

Алхам 3: Юмсын интернетэд холбогдох (1 -р хэсэг)

Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)
Юмсын интернетэд холбогдох (1 -р хэсэг)

Хэвлэх зүйлгүй хэвлэгч ямар сайн байх вэ? Би Alexa гэх мэт янз бүрийн интернет үйлчилгээнээс хэвлэх боломжийг идэвхжүүлэхийг хүсч байна. Тэгэхээр би үүнийг яаж биелүүлэх вэ? Нэг сонголт бол интернетийн тодорхой үйлчилгээг сонгох, тэдний API баримт бичгийг хайж олох, API дээр үндэслэн програм бичих явдал юм. Гэхдээ би залхуу замаар явахаар шийдсэн …

Олон шалгуур үзүүлэлт дээр үндэслэн интернетийн янз бүрийн үйлчилгээнд (Alexa, Google Home, Gmail, Facebook, Instagram, Twitter гэх мэт) үйл ажиллагаа явуулдаг "If This That That" нэртэй гайхалтай вэбсайт байдаг. Жишээлбэл, хэрэв би Facebook дээр "хэрэв" гэж бичвэл, "Дараа нь" надад имэйл илгээнэ үү.

Үүний эхний хагаст би үнэгүй данс бүртгүүллээ, та өдөөхийг хүсч буй өөр өөр үйлчилгээнд зориулж шинэ "апплет" үүсгэж болно. Миний апплетын "Энэ" хэсэг нь Alexa байх болно. Alexa -г сонгох олон сонголт байгаа боловч би "Худалдааны жагсаалтандаа юу байгааг асуугаарай" гэсэн бичээсийг сонгох болно. Эцэст нь бид үүнийг Raspberry Pi дээр Python скриптийг өдөөхийг хүсч байгаа тул скриптийн "Тэр" хэсэгт бид Webhooks -ийг сонгохыг хүсч байна.

Webhooks сонголт дээр бид Pi рүүгээ чиглэсэн URL нэмж оруулах боломжтой бөгөөд дараа нь бид үүнийг эргэж харах болно. Бид Аргын талбарыг "Get" гэж орхиж болох бөгөөд агуулгын төрлөөс "Энгийн текст" -ийг сонгоно уу. Биеийн талбарын хувьд "Найрлага нэмэх" дээр дарж "Бүтэн жагсаалт" -ыг сонгоно уу. Энэ нь худалдан авалтын жагсаалтыг бүхэлд нь Get хүсэлт болгон илгээх болно.

Алхам 4: Юмсын интернетэд холбогдох (2 -р хэсэг)

Юмсын интернетэд холбогдох (2 -р хэсэг)
Юмсын интернетэд холбогдох (2 -р хэсэг)
Юмсын интернетэд холбогдох (2 -р хэсэг)
Юмсын интернетэд холбогдох (2 -р хэсэг)

Өмнөх алхам нь "Интернет" хэсгийг хариуцдаг тул одоо Raspberry Pi ашиглан "зүйлүүд" хэсэгт ажиллахыг зөвшөөрнө үү. "If This That That" webhooks апплеттай холбогдохын тулд бид Raspberry Pi дээр вэб сервер тохируулах хэрэгтэй. Вэб серверийг тохируулах олон янзын арга байдаг боловч би эцэст нь Python скрипт ажиллуулахыг хүсч байгаагаа харгалзан үзээд Python -ийн Flask серверийг ашиглахаар шийдлээ.

Pi нь Колбаны бүх номын санг урьдчилан суулгасан тул бидний хийх ёстой зүйл бол туршилтын скрипт бичиж эхлэх явдал юм.

nano flask_test.py

Мөн үүнд энгийн вэб хуудсанд үйлчилдэг хэдэн кодыг оруулъя.

#! flask/bin/python #Колбоны импортын колбоноос ХАВАРЫН НОМЫН САНГУУДЫГ ИМПОРТЛО, #FLASK VARIABLE app = Flask (_ name_) #CREATE AN 'INDEX' PAGE @app.route ('/') def index (): буцах 'Таны колбаны сервер ажиллаж байна!' _Name_ == '_main_': app.run (debug = True, host = '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 = Колбо (_ нэр_) #C 'INDEX' PAGE @app.route ('/') def index (): буцах 'Таны колбаны сервер ажиллаж байна!' АЛЕКСА ХУДАЛДААНЫ ЖАГСААЛТ @app.route ('/list') def list хэвлэхийн тулд "ХУУДАС" ХИЙХ "ЖАГСААЛТ" ҮЗЭХ ()/жагсаалт (): #CAPTURE "АВАХ" IFTTT WEBOOKS content = request.get_data () #Түүхий мэдээллийн өгөгдлийг хөрвүүлэх STRING str_content = str (контент) #ДЭЛГЭРИЙГ ТОДОРХОЙ МӨРӨӨРӨӨ ДЭЛГЭХ str_split = str_content.splitlines () #ШИНЭ ЖАГСААЛТД НЭМЭХИЙН ҮЗҮҮЛЭГДЭХ шинэ жагсаалт = str_split дахь үгийн хувьд: word = word.split (',') newlist.extend (word) #FORMATTING MARKS -ийг устгах ") #ЖАГСААЛТЫН БҮР ЗҮЙЛИЙГ ТОДОРХОЙ ХЭВЛЭХ rmv_marks дахь x -ийн хувьд r = 1: #print (str (r) +". " + X +" / n ") p.text (str (r) +". " + x + "\ n") r + = 1 #RETURN үр дүн буцаана 'x' #Хөтөлбөрийг ажиллуулна уу _name_ == '_main_': app.run (debug = Үнэн, хост = '0.0.0.0')

Та алдаа буцааж байгаа эсэхийг харахын тулд үүнийг ажиллуулж болно, гэхдээ энэ нь манай вэб хөтөч дээр ажиллахгүй байна, учир нь одоогоор сервер зөвхөн дотооддоо ажиллаж байна. Webhook -т холбогдох гадаад 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-ийн үнэгүй хувилбар нь танд статик хаяг өгөхгүй тул Ngrok-ийг дахин ажиллуулах бүрт танд өөр хаяг өгөх болно. Хэрэв та Webhook-ийг дахин засварлах шаардлагагүй статик хаяг авахыг хүсч байвал сайжруулсан дансны төлбөрийг төлөх шаардлагатай болно.

Статик IP санал болгодог Ngrok -ийн үнэгүй хувилбарыг www.serveo.net дээр "Serveo" гэж нэрлэдэг

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

Үр дүнгийн дэлгэц дээр энэ нь танд Webhook апплет дээр ашиглах боломжтой дамжуулах хаягийг (https://random-string.ngrok.io) өгнө. Тиймээс URL талбарт "If This That That" руу буцаж ороод Ngrok дамжуулах хаягаа оруулаад манай Flask сервер дээрх "list" хуудсанд зааж өгөөрэй. Энэ нь иймэрхүү харагдах ёстой

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 нэмэх

Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна
Pi -ийг принтер дээр нэмж байна

Надад байгаа баримт хэвлэгч нь бүрхүүлийн дотор маш их хоосон зайтай байдаг. Raspberry Pi Zero нь жижиг хэмжээтэй тул үүнийг хүлээн авагч принтер дээр нуух нь зүгээр л нэг төхөөрөмж шиг харагдаж байвал зүгээр юм шиг санагдсан. Ганц асуудал бол Хүлээн авах принтер нь 12v, Pi нь 5v дээр ажилладаг. Тиймээс, хэрэв бид хоёуланг нь тэжээх ганц цахилгаан кабелийг хүсч байвал бид 12 вольтын тэжээлийн хангамжийг 5 вольт хүртэл бууруулах шаардлагатай болно.

7805 хүчдэлийн зохицуулагч, 1uf конденсатор, 10uf конденсатор ашиглан би хүлээн авах принтерийн логик самбартай холбосон энгийн 5в зохицуулагчийг бий болгож чадсан. Би "-" утсыг нийтлэг газар руу гагнаж, дараа нь "+" утсыг цахилгаан унтраалгын "талд" гагнаж, принтерийг асаах, унтраахад Pi асах, унтраагдах болно. Олон метр ашиглан би гаралтын хувьд Pi-д аюулгүй гэдгийг батлахын тулд тест хийлээ. Дараа нь би микро-usb кабель дээр гагнуур хийж, Pi-тэй холбосон. Кабелийг принтерт холбож, унтраалгыг эргүүлсний дараа принтер болон Pi хоёулаа асаалттай байна!

Эцэст нь би USB кабелийг Pi -ээс хэвлэгч рүү холбох нүх өрөмдсөн. Би принтерийн хайрцгийн дотор 5в зохицуулагч ба Пи -ийг байрлуулах газар олоод дараа нь бүгдийг нь буцааж нийлүүлэв. Тиймээс одоо принтер өөрийн гэсэн вэб сервертэй боллоо!

Алхам 7: Цаашид авч үзэх

Цаашид авч үзэх
Цаашид авч үзэх

Хэрэв та "If This That That" -г үзэх боломжтой байсан бол танд холбогдохын тулд олон янзын вэб үйлчилгээ байгааг анзаарсан байх. Хэрэв танд Alexa байхгүй, эсвэл ашиглахыг хүсэхгүй байгаа бол та энэ төслийг ашиглан Facebook, Twitter, Gmail, Google Home, Evernote, Tumblr, Flickr, Wordpress, гэх мэт. Жиргээг хэвлэх миний кодыг миний Github хуудаснаас олж болно. Одоо очоод юу олж болохыг олж мэдээрэй!

IoT Challenge
IoT Challenge
IoT Challenge
IoT Challenge

IoT Challenge -ийн анхны шагнал

Зөвлөмж болгож буй: