Mundarija:

Raspberry Pi gaplashadigan shtrix kodli o'quvchi: 12 qadam
Raspberry Pi gaplashadigan shtrix kodli o'quvchi: 12 qadam

Video: Raspberry Pi gaplashadigan shtrix kodli o'quvchi: 12 qadam

Video: Raspberry Pi gaplashadigan shtrix kodli o'quvchi: 12 qadam
Video: BTT - Manta M4P CB1 Install (Update) v2.2.0 2024, Noyabr
Anonim
Raspberry Pi gapiradigan shtrix -kod o'quvchi
Raspberry Pi gapiradigan shtrix -kod o'quvchi

1 -rasm, DX.com saytidan shtrix -kod skaneri

Sharh

Yangilanish: qisqa video demo mavjud

Onam oziq -ovqat mahsulotidagi yorliqlarni o'qiy olmaydi, shuning uchun men echimlarni izlay boshladim. Ko'zi ojizlar uchun shtrix -kod o'qiydiganlar yuzlab dollar sarflayotganini ko'rganimdan so'ng, Raspberry Pi va USB -shtrix kodli o'quvchi yordamida nima qilish mumkinligini ko'rishni xohladim.

Yana bir asosiy taqlid - bu Internetga ulanmasdan ishlashi kerak edi (masalan, do'konda yoki do'stlar uyida). Shunday qilib, ma'lumotlar bazasi va matndan nutq o'z-o'zidan bo'lishi kerak edi.

Men shtrix kodli o'quvchining kameraga asoslangan versiyasini sinab ko'rdim, lekin yorug'lik va kameraning joylashuvi aniq ko'rmaydigan odamning ishonchliligi bilan bog'liq muammolarni keltirib chiqardi. Bu, shuningdek, ilovani sozlash va undan foydalanish uchun ko'rishni talab qilgan. Men USB -lazerli shtrix -kod o'quvchisiga o'tdim, ayniqsa ular hozirda 30 dollardan past bo'lganida va Raspbian Jessi ularni qutidan tashqarida qo'llab -quvvatlaydi.

Men ham yangi Amazon Dash Wand -ni sinab ko'rdim, lekin u skaner qilingan elementni gapirmaydi va ishlash uchun Internetga ulanishni talab qiladi.

Maqsad-ob'ektni skanerlash va Raspberry so'rovini UPC kodlarining ichki ma'lumotlar bazasidan o'tkazish va keyin mahsulot tavsifini matndan nutqqa o'tkazish.

Jihozni iloji boricha kichikroq qilish uchun men Raspberry Pi Zero -dan foydalanmoqchi edim. Men ham qurilmani batareya quvvati bilan o'chirishni xohlardim.

Bu talablarni qondirish uchun bir qancha kelishuvlar kerak edi. Nolinchi tashqi audio raz'emga ega bo'lmaganligi sababli, men "Earthquake Pi" loyihamdagi audio dizaynni qayta ishlatdim, chunki u arzon (taxminan 6 dollar) va juda kichik edi. Shu bilan bir qatorda, "Pi Zero uchun bitta tranzistorli audio" ni almashtirish mumkin.

Shtrix kodli lazer skaneri uchun men DX.com saytidan topdim. U Raspberry USB -dan o'chirilgan va narxi taxminan 25 dollar. (pastdagi qismlarga qarang)

1 -qadam: YANGILASH

Raspberry Pi Zero W kelishi bilan men unga o'taman. Bu erda hamma narsa bir xil, faqat Pi -ga Wi -Fi ulanishini o'rnatish kerak. Bu shuni anglatadiki, sozlash va ishlatish uchun sizga nol uchun USB uyasi kerak bo'lmaydi.

Siz Wi -Fi -ni sozlashingiz mumkin:

thepihut.com/blogs/raspberry-pi-tutorials/…

Bilasizmi?

Agar siz Windows kompyuteri yordamida Raspbian Jessie -ni SD -kartaga o'rnatgan bo'lsangiz, uni Raspberry -ni yuklamasdan oldin Wi -Fi va SSH -ga kirishni sozlash uchun kartada ikkita fayl yaratishingiz mumkinmi?

Buning uchun sizning SD -kartangiz hozirda kompyuteringizda K: o'rnatilgan deb taxmin qiling.

1) Raspbian Jessie -ning so'nggi rasmini SD -ga o'rnating. Ushbu loyiha uchun Jessie Lite ishlashi kerak.

www.raspberrypi.org/downloads/raspbian/

2) Notepad yordamida "ssh" deb nomlangan fayl yarating va "Hamma fayllar" sifatida saqlashni K: / ssh -ga ishlating.

Fayl har qanday narsani o'z ichiga olishi mumkin. Bu muhim bo'lgan fayl nomi. "Ssh.txt" bo'lmasligi kerak !!!

3) Notepad yordamida "wpa_supplicant.conf" deb nomlangan fayl yarating:

ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1

tarmoq = {

ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}

K: / wpa_supplicant.conf -ga "Hamma fayllar sifatida saqlash" -dan foydalaning, Notepad -ni "wpa_supplicant.conf.txt" ga o'zgartirishiga yo'l qo'ymang !!

Malinani birinchi marta yuklaganingizda, Jessi ularni qidiradi va Wi -Fi tarmog'iga ulanadi. IP -manzil uchun yo'riqchini qidirishingiz kerak bo'ladi, chunki u avtomatik tayinlangan.

2 -qadam: qismlar ro'yxati

  • Raspberry Pi Zero (yoki har qanday Raspberry Pi, agar o'lcham muammo bo'lmasa)
  • USB -shtrix kodli skaner

    www.dx.com/p/ls-4209-laser-bar-code-scanner…

  • Raspi Zero uchun Adafruit I2S 3W D sinf kuchaytirgichini qo'shing.
  • Kichik dinamik. (Pi 2, 3 uchun tashqi amp va karnaydan foydalaning.)
  • USB Micro to USB OTG adapterlari
  • 5V 1Amp USB batareya to'plami, masalan:
  • Batareya to'plami uchun USB - mikro USB kabeli.
  • USB va Ethernet uyasi (hech bo'lmaganda dastlabki sozlash uchun, Zero W yoki Raspi 2, 3 uchun kerak emas)
  • GITHUB dasturiy ta'minoti:

3 -qadam: USB lazer shtrix -kod o'quvchi

USB shtrix kodli o'quvchi
USB shtrix kodli o'quvchi

Shtrix -kodni o'qiydiganlar kameralarga qaraganda UPC yorlig'ini skanerlash qobiliyatini kechiradilar. Yorug'ligi past yoki joylashtirilmagan yorliqlarda ham ular yaxshi ishlaydi.

Nolga ulash uchun sizga USB -dan USB -ga mikro adapter kerak bo'ladi.

Qo'l ushlagichi va skanerni ishga tushirishni osonlashtiradi.

Shuningdek, u yorliqni muvaffaqiyatli skanerlashda ham fikr bildiradi.

Kelajakda bajariladigan ishlar:

Oxirgi dizaynda, men uni qisqartirish uchun kabelni kesib tashladim va ulagichning ishlamay qolish ehtimolini va hajmini kamaytirish uchun to'g'ridan -to'g'ri nolga ulangan USB pinlariga lehim qildim. Nol va batareya to'g'ridan -to'g'ri 3D bosilgan qutida skaner dastagining pastki qismiga ulanadi.

4 -qadam: UPC ma'lumotlar bazasi

Bu loyihaning eng kam yoritilgan qismi, chunki millionlab UPC kodlari va yuklab olish uchun ochiq manbali ma'lumotlar bazalari juda oz. Afsuski, UPC ma'lumotlar bazalarining aksariyati juda qimmat va Internetga ulanishni talab qiladi.

Men bir nechta ochiq manbali ma'lumotlar bazalarini birlashtirishga muvaffaq bo'ldim (quyidagi ilovadagi manbalar), lekin unda 700 000 ga yaqin element bo'lsa ham, ularning ko'pchiligi yo'q.

Shu maqsadda men ikkita narsani qildim; biri oziq -ovqat mahsulotlariga alohida e'tibor qaratish, ikkinchisi - qo'lda yangi UPC kodlarini qo'shish uchun Raspberry -ga veb -server qo'shish, lekin bu hech bo'lmaganda mahalliy tarmoq ulanishini talab qiladi.

Kelajakda bajariladigan ishlar:

Men Zero W -ni "ulanish nuqtasi" ga aylantirardim, shunda siz unga UPC -ning yangi kodlarini qo'shish uchun istalgan joyga ulanishingiz mumkin edi.

5-qadam: Matndan nutqqa o'tish

Men "Flite" deb nomlangan matnli nutq dasturidan foydalandim, chunki u ovoz sifati va Nolinchi konvertatsiya tezligi o'rtasida eng yaxshi kelishuvga ega edi. Boshqalar biroz yaxshiroq gapirishdi, lekin konvertatsiya qilish uchun juda sekin edi.

Siz shuningdek Adafruit-ning qo'llanmasini tekshirishingiz mumkin:

E'tibor bering, nutq o'zgarishiga ko'nikish uchun biroz "quloq tayyorlash" kerak bo'ladi, lekin bu unchalik yomon emas.

Xuddi shu elementni qayta skanerlash ovozni takrorlaydi.

Future ToDo

Balki, qariyalar shovqinli joylarda ovozni eshitishni osonlashtirishi uchun naushnik ulagichi qo'shilgan bo'lishi mumkin.

6 -qadam: Batareya quvvati

Tizim 5V USB batareyasidan ishlaydi, masalan, uyali telefonlarni zaryadlash uchun.

Asosiysi shundaki, agar siz batareyani ajratib qo'ysangiz yoki batareya zaryadsizlansa, Pi qulab tushadi va SD -diskni buzadi.

Buni hal qilish uchun o'chirish buyrug'ini bajaradigan tugma kerak. Ehtimol, men shunga o'xshash birini ishlataman:

www.element14.com/community/docs/DOC-78055…

(Ha … boshqa "Kelajak vazifasi!")

7 -qadam: I qism - Pi Zero -ga audio qo'shish

I qism - Pi Zero -ga audio qo'shish
I qism - Pi Zero -ga audio qo'shish
I qism - Pi Zero -ga audio qo'shish
I qism - Pi Zero -ga audio qo'shish
I qism - Pi Zero -ga audio qo'shish
I qism - Pi Zero -ga audio qo'shish

(Nol ishlatilmasa, bu qismni o'tkazib yuboring!)

Pi Zero-ga tashqi audio qo'shish kerak bo'ladi, chunki u o'rnatilgan emas. Men arzon narxdagi "Adafruit I2S 3W kuchaytirgichi MAX98357A" dan foydalandim.

Buning uchun Adafruit-ning ajoyib qo'llanmasidan foydalanib sozlashni talab qiladi:

O'quv qo'llanmasining simli qismida ko'rsatilgandek, ulang:

• Amp Vin to Raspi Zero Pi 5V • Amp GND to Raspi Zero Pi GND • Amp DIN to Raspi Zero Pi #21 • Amp BCLK to Raspi Zero Pi #18 • Amp LRCLK dan Raspi Zero Pi #19

Kichik karnayni doskadagi ovoz o'tkazgichlarga ulang.

Pi Zero Adafruit Audio Software SetupAdafruit dasturiy ta'minotini sozlash bo'yicha qo'llanmada ko'rsatilganidek, quyidagi CURL buyrug'ini bajaring:

$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash

Qayta ishga tushirilgandan so'ng, karnay-test yordamida ovozni sinab ko'ring:

$ Speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav

Agar sizda muammolar bo'lsa, Adafruit qo'llanmasidan foydalanib, umumiy ko'rinishdan boshlang. Yangilangan barcha fayllarni tekshirish uchun sizga qo'llanmada "Batafsil o'rnatish" bosqichlari kerak bo'ladi.

Nol va Max98357 audio uchun zarur bo'lgan muhim qadamlar: Odatiy bo'lib, ALSA audio faqat Stereo rejimida ishlaydi, Flite matndan nutqqa esa mono. Bundan tashqari, har safar ijro etila boshlagach, audio "pops" ga ega.

(Qarang:

Siz quyidagilarni qilishingiz kerak:

1) /boot/config.txt ga qator qo'shing

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) /etc/asound.conf ni o'zgartiring

$ sudo nano /etc/asound.conf

pcm.hifiberry {hw kartani yozing 0} pcm.! standarti {turi plug slave.pcm "dmixer"} pcm.dmixer {dmix ipc_key 1024 slave {pcm "hifiberry" kanallari 2}} ctl.dmixer {hw kartasi 0}

3) Pi -ni qayta yoqing.

Karnay-testini qayta urinib ko'ring. O'rnatish bo'yicha ko'rsatmalarni, shu jumladan audio testlarni ham, ovoz tayyor bo'lishi kerak.

E'tibor bering, agar siz uni oziq -ovqat do'koniga yoki shovqinli muhitga olib boradigan bo'lsangiz, audio uchun minigarniturani qo'shishingiz mumkin.

8 -qadam: II qism - Dasturiy ta'minotni o'rnatish

Bu sizda Raspbian Jessie o'rnatilganligini va Linux buyruq satriga kirishingiz mumkinligini taxmin qiladi. Sizga Raspbian -ning GUI versiyasi kerak emas, lekin undan foydalanish yaxshi.

Agar sizga chekilgan yoki klaviatura/sichqonchaning USB porti kerak bo'lsa, hozirda USB skaneri ulangan bo'lishi shart emas.

OS yangilanganligiga ishonch hosil qiling:

$ sudo apt-get update $ sudo apt-get upgrade

Buyruqlar satridan pi uy katalogiga o'ting va GITHUB omborini yuklab oling:

$ cd/home/pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. sh

Bu biroz vaqt talab etadi, ayniqsa, bu birinchi marta bo'lsa va veb -server va PHP -ni o'rnatish yoki yangilash kerak bo'lsa. Agar kerak bo'lsa, siz uni bir necha marta ishlatishingiz mumkin, boshqa narsalar qatorida, shtrix -kodli fayllar va UPC ma'lumotlar bazasini o'rnatadi:/var/www/html/upc

Keyin, /etc/rc.local -ni tahrir qiling va "chiqish 0" dan oldin quyidagi qatorni qo'shing.

$ sudo nano /etc/rc.local

fi sudo /var/www/html/upc/bin/run.sh chiqish 0

O'rnatish tugagandan so'ng, Pi -ni o'chiring va USB shtrix -kod o'quvchisini ulang va qayta ishga tushiring.

$ sudo hozir yopiladi

Qayta yoqing va siz qisqa boshlang'ich nutqini eshitishingiz kerak.

Agar shunday bo'lsa, oziq -ovqat mahsulotidan shtrix -kodni skanerlashga harakat qiling. Agar hammasi yaxshi ketayotgan bo'lsa, siz uning ob'ekt haqida gapirayotganini eshitishingiz kerak (yoki "Topilmadi" deb ayting). Aks holda, keyingi muammolarni bartaraf etish bo'yicha qo'llanmani tekshiring.

9 -qadam: Muammolarni bartaraf etish

Muammolarni bartaraf qilish; nosozliklarni TUZATISH
Muammolarni bartaraf qilish; nosozliklarni TUZATISH

Agar siz tovushlarni eshitmasangiz, quyidagi buyruqlarni bajarishingiz kerak bo'ladi.

1) Matndan nutqqa audio ishlayotganini tekshiring:

$ sudo flite -voice awb -t "test"

Agar xato bo'lsa, flite o'rnatilganligiga ishonch hosil qiling:

$ sudo apt install flite

Agar sizda quyidagi xatolik yuz bersa, Raspi Zero -ning audio sozlamalari bo'limida ko'rsatilgan /boot/config.txt va /etc/asound.conf fayllarini yangilaganingizga ishonch hosil qiling: audio_open_alsa: kanallar sonini 1 ga yarata olmadi.

Agar sizda hech qanday xato va ovoz bo'lmasa, Raspberry ovozingiz ishlayotganiga ishonch hosil qiling.

sudo aplay /usr/share/sounds/alsa/Front_Center.wav

1) Ovozni audio raz'emdan majburan chiqarib olishingiz kerak bo'lishi mumkin: (yuqoridagi 1 -rasmga qarang).

$ sudo raspi -config -> 7 ta kengaytirilgan variant -> A4 audio

2) Agar siz ovozli va matnli nutqni tasdiqlagan bo'lsangiz, shtrix-kod o'quvchisini tekshiring:

cd/var/www/html/upc/binsudo python./test.py

Shtrix kodini skanerlashda siz ko'rsatiladigan raqamli shtrix kodini ko'rishingiz kerak. (Sinov dasturi audio chiqish yoki ma'lumotlar bazasi ulanishlarini o'z ichiga olmaydi.)

3) Agar bularning barchasi yaxshi bo'lsa, xato xabarlari uchun "nohup.out" faylini tekshiring:

cd/var/www/html/upc/binsudo mushuk nohup.out

Ehtimol, paketlar yoki noto'g'ri ruxsatnomalar (yoki koddagi xatoliklar!). OS yangilanganligiga ishonch hosil qiling va install.sh -ni qayta ishga tushiring.

Umid qilamanki, siz hozircha ishlayapsiz!

10 -qadam: III qism - Veb -server

III qism - Veb -server
III qism - Veb -server

Millionlab UPC kodlari mavjud va ko'pchilik ochiq (ya'ni bepul) ma'lumotlar bazalari faqat kichik kodlar to'plami bo'lgani uchun, bu loyiha oziq -ovqat mahsulotlari uchun UPC kodlariga qaratilgan. U bir necha yuz ming narsalarni o'z ichiga oladi, lekin ko'pini topa olmaysiz.

Agar UPC ma'lumotlar bazasini qo'shish yoki yangilash kerak bo'lsa, ikkita dastur mavjud; bitta buyruq qatori va bitta veb-brauzer. (raqamlarni UPC element raqami bilan almashtiring)

$ cd/var/www/html/upc/bin

$ sudo./addDB.sh 01234567890 "Mening yangi mahsulotim"

Bu ma'lumotlar bazasiga rekord qo'shadi. Aks holda, veb -brauzer DB funktsiyasidan foydalanish tavsiya etiladi.

Veb -server GUI uchun sizga malinaning IP -manzili kerak.

IP -manzilni topish uchun siz quyidagilarni ishlatishingiz mumkin.

$ hostname -I 192.168.1.108

Kompyuter brauzeridan quyidagi manzilga o'ting: https://192.168.1.108/upc/ Siz yuqoridagi 2 -rasmdagiga o'xshash ekranni ko'rishingiz kerak.

Agar shunday bo'lsa, siz yozuvlarni qo'shishingiz/yangilashingiz va o'chirishingiz mumkin. Ma'lumotlar bazasi oxiriga qo'shilgan eng yangi yozuvlarni ko'rish uchun ('> |') "oxirgi yozuv" tugmasi yordamida Oxirgi sahifaga o'ting.

SECURITYNOTE, bu veb -xizmat himoyalanmagan (autentifikatsiya yo'q, SSL yo'q), shuning uchun uni ochiq Internetga chiqarmaslik yaxshiroqdir. (Ammo u Wi -Fi kirish nuqtasi sifatida o'rnatilmaganligi sababli uni do'konga olib borish xavfsiz.)

Shaxsiy ma'lumotlar yo'qligi sababli, kimdir UPC ma'lumotlarini buzishi mumkin.

IP -manzillarga kirishni cheklashingiz mumkin, shunda boshqa hech kim kira olmaydi. Siz ruxsat bergan IP -ni bu erga almashtiring. Qolganlarning hammasi kirishi bloklanadi:

$ sudo vi /etc/lighttpd/lighttpd.conf

$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd qayta ishga tushirish

Bundan tashqari, standart PI parolini o'zgartiring! Hamma sukut bo'yicha pi/malina ekanligini biladi

$ passwd

11 -qadam: Veb -server bilan bog'liq muammolarni bartaraf etish

Veb -server bilan bog'liq muammolarni bartaraf etish
Veb -server bilan bog'liq muammolarni bartaraf etish
Veb -server bilan bog'liq muammolarni bartaraf etish
Veb -server bilan bog'liq muammolarni bartaraf etish

Brauzeringiz yordamida Raspberry IP -manziliga o'ting:

192.168.1.108/

Siz standart ekranni /var/www/html/index.html dan ko'rishingiz kerak (yuqoridagi 1 -rasm)

Shuningdek, veb -server ishlayotganiga ishonch hosil qiling:

$ ps -ef | grep lighttpd

PHP yaxshi ekanligini tekshirish uchun php test faylini yarating:

$ sudo nano /var/www/html/phpinfo.php

Keyin https://192.168.1.108/phpinfo.php saytiga o'ting

Siz yuqoridagi 2 -rasmga o'xshash ekranni ko'rishingiz kerak

Agar sizda xatolar yoki bo'sh ekranlar bo'lsa, xatolarni tekshiring

$ sudo mushuk /var/log/lighttpd/error.log

Shunga qaramay, install.sh -ni qayta ishga tushirish yo'qolgan bog'liqliklarni tuzatishi mumkin.

12 -qadam: Qo'shimcha

Katta UPC ma'lumotlar bazasini taqdim etish uchun sizga katta rahmat.

Oziq -ovqat UPC ma'lumotlar bazasini oching

www.grocery.com/open-grocery-database-proje…

Ma'lumotlar bazasini oching

www.grocery.com/open-grocery-database-proje…

www.upc-search.org/perl/upc-search.pl?q=84…

Oddiy veb -CRUD GUI uchun EasyUIga rahmat

www.jeasyui.com/index.php

Tavsiya: