Mundarija:
- 1 -qadam: YANGILASH
- 2 -qadam: qismlar ro'yxati
- 3 -qadam: USB lazer shtrix -kod o'quvchi
- 4 -qadam: UPC ma'lumotlar bazasi
- 5-qadam: Matndan nutqqa o'tish
- 6 -qadam: Batareya quvvati
- 7 -qadam: I qism - Pi Zero -ga audio qo'shish
- 8 -qadam: II qism - Dasturiy ta'minotni o'rnatish
- 9 -qadam: Muammolarni bartaraf etish
- 10 -qadam: III qism - Veb -server
- 11 -qadam: Veb -server bilan bog'liq muammolarni bartaraf etish
- 12 -qadam: Qo'shimcha
Video: Raspberry Pi gaplashadigan shtrix kodli o'quvchi: 12 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
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
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
(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
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
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
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:
Arduino gaplashadigan Tomga aylandi: 6 qadam
Arduino suhbatdoshga aylandi: Smartfonni ishlatganim haqidagi eng eski xotiralarimdan biri "Talking Tom" o'yinini o'ynash edi. O'yin juda oddiy edi. Tom ismli mushuk bor, u gapira oladi. O'yinda Tom telefon mikrofoni orqali har qanday kirishni eshitib, keyin takrorladi
Superstock (shtrix -kod skaneri tomonidan boshqariladigan aktsiya): 5 qadam
Superstock (shtrix -kod skaneri tomonidan boshqariladigan aktsiya): Ushbu qo'llanmada men sizga Howest -da 1MCT uchun maktab loyiham bo'lgan Superstock -ni qanday qurishni aytib beraman. Kontseptsiya foydalanuvchilarga qulay bo'lgan ma'lumotlar bazasini yaratadi, sizda mavjud bo'lgan narsalarni hisobga olish uchun veb -sayt orqali kirishingiz mumkin (mening kiyimim
Apple shtrix -kod o'yuvchi (Photonics Hackathon Phablabs): 3 qadam
Apple shtrix -kod o'yuvchi (Photonics Hackathon Phablabs): Hammaga salom, Phablabs Photonics tanlovining bir qismi sifatida bizdan meva ustidagi stikerlarni almashtira oladigan qurilma yaratish so'raldi. Siz ham meva stikerlaridan nafratlanasizmi? Va siz ekologik toza o'zgarish qilishni xohlaysizmi? Keyin biz kiritishni xohlaymiz
Do'konlar, oziq -ovqat mahsulotlari va xizmat ko'rsatish markazlari uchun EXCEL -dan shtrix -kodlardan foydalangan holda pos -tizim: 7 qadam
EXCEL -dan DUKONLAR, GROCERIYALAR VA XIZMAT KO'RSATISHLARI POS -TIZIMI Shtrix -kodlardan foydalangan holda: Men sizga bu blog bilan kichik do'konlar va xizmat ko'rsatish markazlari uchun oddiy POS (savdo nuqtasi) tizimini yaratish usulini tanishtiraman. Ushbu usul yordamida siz maxsus dasturiy ta'minot yoki qimmat uskunasiz quyidagi imkoniyatlarni boshqarishingiz mumkin. v Muammo
USB shtrix -kod skaneri (Raspberry Pi): 4 qadam
USB shtrix -kod skaneri (Raspberry Pi): Raspberry Pi yordamida USB shtrix -kod skanerini sozlash bo'yicha asosiy qo'llanma