Talaan ng mga Nilalaman:
- Hakbang 1: I-UPDATE
- Hakbang 2: Listahan ng Mga Bahagi
- Hakbang 3: Reader ng Laser Laser Bar Code
- Hakbang 4: UPC Database
- Hakbang 5: Text-to-Speech
- Hakbang 6: Lakas ng Baterya
- Hakbang 7: Bahagi I - Pagdaragdag ng Audio sa Pi Zero
- Hakbang 8: Bahagi II - Pag-install ng Software
- Hakbang 9: Pag-troubleshoot
- Hakbang 10: Bahagi III - Web Server
- Hakbang 11: Pag-troubleshoot sa Web Server
- Hakbang 12: Apendiks
Video: Raspberry Pi Talking Barcode Reader: 12 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Fig.1 Barcode Scanner mula sa DX.com
Pangkalahatang-ideya
Update: Isang maikling video demo ang magagamit
Hindi na mabasa ng aking ina ang mga label sa mga item sa grocery, kaya't naghanap ako ng mga solusyon. Matapos makita ang mga mambabasa ng bar code para sa bulag na magpatakbo ng daan-daang dolyar, nais kong makita kung ano ang maaaring gawin gamit ang isang Raspberry Pi at isang USB Barcode reader.
Ang isa pang pangunahing imitasyon ay dapat itong gumana nang WALANG koneksyon sa Internet (tulad ng sa isang tindahan o bahay ng kaibigan). Kaya't ang database at text-to-speech ay dapat na magkaroon ng sarili.
Sinubukan ko ang isang bersyon na batay sa camera ng bar code reader, ngunit ang pag-iilaw at posisyon ng camera ay sanhi ng mga isyu sa pagiging maaasahan para sa isang taong hindi makita nang malinaw. Kinakailangan din nito ang paningin upang mai-set up at gamitin ang app. Kaya lumipat ako sa isang USB Laser bar code reader, lalo na't magagamit na sila sa ilalim ng $ 30 at sinusuportahan sila ng Raspbian na si Jessie palabas ng kahon.
Sinubukan ko rin ang bagong Amazon Dash Wand ngunit hindi ito nagsasalita ng na-scan na item at nangangailangan ito ng isang koneksyon sa Internet upang gumana.
Ang ideya ay i-scan ang isang item at hilingin sa query ng Raspberry ang isang panloob na database ng mga UPC code at pagkatapos ay sabihin ang paglalarawan ng produkto gamit ang text-to-speech.
Upang gawing maliit ang yunit hangga't maaari, nais kong gumamit ng isang Raspberry Pi Zero. Nais ko ring patakbuhin ang yunit mula sa lakas ng baterya din.
Upang matugunan ang mga kinakailangang ito kailangan ng ilang tradeoffs. Dahil ang Zero ay walang isang panlabas na audio jack ginamit ko muli ang disenyo ng audio mula sa aking proyekto na "Earthquake Pi" dahil ito ay mababang gastos (halos $ 6) at napakaliit. Bilang kahalili, maaaring mapalitan ang "One Transistor Audio for Pi Zero".
Para sa scanner ng Laser Bar Code, nakakita ako ng isa mula sa DX.com. Pinapagana ito ng Raspberry USB at nagkakahalaga ng $ 25. (tingnan ang Mga Bahagi sa ibaba)
Hakbang 1: I-UPDATE
Sa pagdating ng Raspberry Pi Zero W, lilipat ako rito. Lahat ng narito ay pareho, maliban sa kailangan mong i-set up ang koneksyon sa WiFi sa Pi. Nangangahulugan ito na hindi mo kakailanganin ang isang USB hub para sa Zero para sa pag-setup at paggamit.
Maaari mong i-set up ang WiFi gamit ang:
thepihut.com/blogs/raspberry-pi-tutorials/…
Alam mo ba?
Kung na-install mo ang Raspbian Jessie sa isang SD card gamit ang isang Windows PC, maaari kang lumikha ng dalawang mga file sa card upang mai-configure ang access sa WiFi at SSH bago mo ito boot sa isang Raspberry?
Para sa mga ito, ipalagay na ang iyong SD card ay kasalukuyang naka-mount bilang K: sa iyong PC:
1) I-install ang pinakabagong imahe ng Raspbian Jessie sa SD. Para sa proyektong ito, dapat na gumana si Jessie Lite.
www.raspberrypi.org/downloads/raspbian/
2) Gamit ang notepad, lumikha ng isang file na tinatawag lamang na "ssh" at gamitin ang I-save Bilang "Lahat ng mga file" sa K: / ssh
Maaaring maglaman ang file ng anuman. Ito ang filename na mahalaga. Dapat HINDI maging "ssh.txt" !!!
3) Sa notepad, lumikha ng isang file na tinatawag na "wpa_supplicant.conf" na may sumusunod:
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdevupdate_config = 1
network = {
ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}
Gamitin ang I-save Bilang "Lahat ng mga file" sa K: / wpa_supplicant.conf Muli, huwag hayaan ang Notepad na baguhin ito sa "wpa_supplicant.conf.txt" !!
Kapag na-boot mo ang Raspberry sa unang pagkakataon, hahanapin ni Jessie ang mga ito at kumonekta sa iyong Wifi. Kakailanganin mong tingnan ang iyong Router para sa IP address, bagaman, mula nang itinalaga ang awto nito.
Hakbang 2: Listahan ng Mga Bahagi
- Raspberry Pi Zero (o anumang Raspberry Pi, kung ang isyu ay hindi isyu)
-
Scanner ng code ng USB Laser bar
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Para sa Raspi Zero, idagdag ang Adafruit I2S 3W Class D Amplifierhttps://www.adafruit.com/products/3006
- Maliit na tagapagsalita. (Para sa Pi 2, 3, gumamit ng panlabas na amp & speaker.)
- USB Micro sa USB OTG adapterhttps://www.adafruit.com/products/2910
- 5V 1Amp USB baterya pack tulad ng ashttps://www.adafruit.com/products/1959
- USB sa micro USB cable para sa pack ng baterya.
- USB & Ethernet hub (hindi bababa sa paunang pag-setup ng trabaho, hindi kinakailangan para sa Zero W o Raspi 2, 3)
- Software mula sa GITHUB:
Hakbang 3: Reader ng Laser Laser Bar Code
Ang mga mambabasa ng laser bar code ay higit na mapagpatawad sa kanilang kakayahang mag-scan ng isang label ng UPC kaysa sa mga camera. Gumagana rin ang mga ito nang maayos kahit sa hindi maayos na naiilawan o hindi maganda ang inilagay na mga label.
Kakailanganin mo ang USB sa USB micro adapter upang mai-plug ito sa Zero.
Ginagawang madali ng paghawak ng kamay at pag-trigger ng scanner.
Nagbibigay din ito ng puna kapag matagumpay nitong na-scan ang isang label.
Future ToDo:
Sa pangwakas na disenyo, puputulin ko ang cable upang paikliin ito at direktang maghinang sa mga USB pin sa Zero upang mabawasan ang laki at posibilidad ng isang pagkabigo ng konektor. Ang Zero at baterya ay ididikit nang direkta sa ilalim ng hawakan ng scanner sa isang naka-print na kaso ng 3D.
Hakbang 4: UPC Database
Ito ang pinaka hindi magandang sakop na bahagi ng proyekto, dahil may literal na milyun-milyong mga UPC code at kakaunti ang mga open-source na database na magagamit para sa pag-download. Sa kasamaang palad, ang karamihan sa mga database ng UPC ay masungit at nangangailangan ng pagkakakonekta sa internet.
Nagawa kong magkasama ang isang open-source database magkasama (mga mapagkukunan sa Appendix sa ibaba), ngunit kahit na may halos 700, 000 na mga item dito, maraming bilang ang nawawala.
Sa layuning ito, nagawa ko ang dalawang bagay; ang isa ay pagtuunan ang pansin sa mga item sa grocery at ang isa pa ay magdagdag ng isang web server sa Raspberry upang payagan ang pagdaragdag ng mga bagong UPC code nang manu-mano, bagaman, nangangailangan ito ng hindi bababa sa lokal na pagkakakonekta ng network.
Future ToDo:
Gawin kong "hotspot" ang Zero W upang maikonekta mo ito kahit saan upang magdagdag ng mga bagong code ng UPC.
Hakbang 5: Text-to-Speech
Ginamit ko ang text to speech program na tinatawag na "Flite", dahil ito ang may pinakamahusay na kompromiso sa pagitan ng kalidad ng boses at bilis ng conversion sa Zero. Ang iba ay tunog ng isang mas mahusay, ngunit masyadong mabagal upang i-convert.
Maaari mo ring suriin ang tutorial ng Adafruit:
Tandaan na kakailanganin ng kaunting "pagsasanay sa tainga" upang masanay sa pag-iimpake ng pagsasalita, ngunit hindi ito masyadong masama.
Ang pag-scan muli ng parehong item ay ulitin ang audio.
Future ToDo
Siguro magdagdag ng isang headphone jack upang mas madali para sa mga nakatatanda na marinig ang boses sa mga maingay na lugar.
Hakbang 6: Lakas ng Baterya
Maaaring patakbuhin ang system mula sa isang 5V USB na baterya, tulad ng ginamit upang muling magkarga ng mga cell phone.
Ang nakuha ay kapag na-unplug mo ang baterya o namatay ang baterya, mag-crash ang Pi na may posibilidad na masira nito ang SD drive.
Upang malutas ito, kailangan ng isang pindutan na nagpapatakbo ng isang shutdown command. Marahil ay gagamit ako ng tulad nito:
www.element14.com/community/docs/DOC-78055…
(Oo … isa pang "Future ToDo!")
Hakbang 7: Bahagi I - Pagdaragdag ng Audio sa Pi Zero
(Laktawan ang bahaging ito kung hindi gumagamit ng isang Zero!)
Sa isang Pi Zero, kakailanganin mong magdagdag ng panlabas na audio, dahil hindi ito built-in. Ginamit ko ang murang gastos na "Adafruit I2S 3W Amplifier breakout MAX98357A"
Nangangailangan ito ng pag-set up gamit ang mahusay na tutorial ng Adafruit sa:
Tulad ng ipinakita sa bahagi ng mga kable ng tutorial, kumonekta:
• Amp Vin sa Raspi Zero Pi 5V • Amp GND sa Raspi Zero Pi GND • Amp DIN sa Raspi Zero Pi # 21 • Amp BCLK sa Raspi Zero Pi # 18 • Amp LRCLK sa Raspi Zero Pi # 19
Ikonekta ang isang maliit na speaker sa mga audio lead sa pisara.
Ipinapakita din ang Pi Zero Adafruit Audio Software Setup sa tutorial ng pag-set up ng software ng Adafruit, isagawa ang utos ng CURL sa ibaba:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Pagkatapos ng pag-reboot, subukan ang audio gamit ang speaker-test:
$ speaker-test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Kung mayroon kang mga problema, bumalik sa pamamagitan ng tutorial ng Adafruit na nagsisimula sa pangkalahatang ideya. Maaaring kailanganin mong pumunta sa mga hakbang na "Detalyadong pag-install" sa tutorial upang ma-verify ang lahat ng mga file na na-update.
Mahalagang Mga Kinakailangan na Hakbang para sa Zero & Max98357 Audio: Bilang default, gagana lamang ang ALSA audio sa Stereo habang ang Flite text-to-speech ay mono. Gayundin, ang audio ay mayroong "pop" dito tuwing nagsisimula itong tumugtog.
(Tingnan:
Dapat mong gawin ang sumusunod:
1) Magdagdag ng isang linya sa /boot/config.txt
$ sudo nano /boot/config.txt
dtoverlay = i2s-mmap
2) Palitan /etc/asound.conf
$ sudo nano /etc/asound.conf
pcm.hifiberry {type hw card 0} pcm.! default {type plug sla.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" channel 2}} ctl.dmixer {type hw card 0}
3) I-reboot ang iyong Pi.
Subukang muli ang Speaker-test. Dapat itong mas mahusay na tunog ngayon. Kapag nakumpleto mo ang tutorial sa pag-setup kasama ang mga pagsubok sa audio, dapat handa na ang tunog.
Tandaan na baka gusto mong magdagdag ng isang earphone jack para sa audio, kung dadalhin mo ito sa isang grocery store o maingay na kapaligiran.
Hakbang 8: Bahagi II - Pag-install ng Software
Ipinapalagay na mayroon ka nang naka-install na Raspbian Jessie at maaaring ma-access ang linya ng utos ng Linux. Hindi mo kailangan ang bersyon ng GUI ng Raspbian, ngunit ok lang na gamitin.
HINDI mo kailangan ang USB scanner na naka-plug in sa ngayon, kung sakaling kailanganin mo ang USB port para sa Ethernet o keyboard / mouse.
Tiyaking napapanahon ang iyong OS:
$ sudo apt-get update $ sudo apt-get upgrade
Mula sa command-line, pumunta sa direktoryo ng bahay ng pi at i-download ang imbakan ng GithUB:
$ cd / home / pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. sh
Magtatagal ito ng oras, lalo na kung ito ang unang pagkakataon at kailangang mai-install o ma-update ang web server at PHP. Kung kinakailangan, maaari mo itong patakbuhin nang higit sa isang beses. Kabilang sa iba pang mga bagay, na-install nito ang mga file ng barcode at UPC database sa: / var / www / html / upc
Susunod, i-edit /etc/rc.local at idagdag ang sumusunod na linya bago ang "exit 0"
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh exit 0
Kapag nakumpleto na ang pag-install, isara ang iyong Pi at i-plug ang USB Barcode reader at i-restart.
$ sudo shutdown ngayon
I-back up ito at dapat mong marinig ang isang maikling pagsasalita sa pagsisimula.
Kung gayon, subukang i-scan ang isang bar code mula sa isang grocery item. Kung naging maayos ang lahat, maririnig mo itong nagsasalita ng item (o nagsasalita ng "Hindi Natagpuan"). Kung hindi man, suriin ang gabay sa pagto-troubleshoot sa susunod.
Hakbang 9: Pag-troubleshoot
Kung wala kang maririnig na anumang tunog, kakailanganin mong subukan ang mga sumusunod na utos:
1) Patunayan na gumagana ang audio na text-to-speech:
$ sudo flite -voice awb -t "pagsubok"
Kung nakakuha ka ng isang error, tiyaking na-install ang flite:
$ sudo apt install flite
Kung nakakuha ka ng sumusunod na error, tiyaking na-update mo /boot/config.txt at /etc/asound.conf na ipinakita sa seksyon ng Pag-setup ng Audio sa itaas sa Raspi Zero's: audio_open_alsa: nabigong maitakda ang bilang ng mga channel sa 1. Di-wastong argumento.
Kung wala kang error at walang tunog, tiyaking gumagana ang iyong audio na Raspberry.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Maaaring kailanganin mong pilitin ang audio sa audio jack: (tingnan ang fig.1 sa itaas)
$ sudo raspi-config -> 7 Mga Advanced na Pagpipilian -> A4 Audio
2) Kapag mayroon kang audio at text-to-speech na na-verify na mabuti, suriin ang mambabasa ng barcode:
cd / var / www / html / upc / binsudo python./test.py
Dapat mong makita ang isang numerong numero ng barcode na ipinakita kapag nag-scan ka ng isang barcode. (Ang programa sa pagsubok ay HINDI kasama ang audio output o mga koneksyon sa database.)
3) Kung ang lahat ng ito ay mabuti, suriin ang file na "nohup.out" para sa mga mensahe ng error:
cd / var / www / html / upc / binsudo cat nohup.out
Malamang na mga isyu ay nawawala ang mga pakete o hindi magandang pahintulot (o BUGs sa code!). Siguraduhin na napapanahon ang iyong OS at muling muling i-install ang install.sh.
Sana, nagtatrabaho ka na ngayon!
Hakbang 10: Bahagi III - Web Server
Dahil may MILYON-milyong mga UPC code at pinaka-publiko (ibig sabihin libre) magagamit na mga database ay isang maliit na subset lamang ng mga code, nakatuon ang proyektong ito sa mga UPC code para sa mga pamilihan. Kasama rito ang ilang daang libong mga item, ngunit marami, marami ang hindi mahahanap.
Kung kailangan mong idagdag o i-update ang UPC Database, mayroong magagamit na dalawang mga programa; isang command-line one at isang web browser na isa. (palitan ang mga digit ng iyong numero ng item sa UPC)
$ cd / var / www / html / upc / bin
$ sudo./addDB.sh 01234567890 "Ang aking bagong item"
Magdaragdag ito ng isang talaan sa database. Kung hindi man, iminungkahi na gamitin ang web browser DB function.
Para sa Web Server GUI, kailangan mo ng IP address ng iyong raspberry.
Upang mahanap ang IP address, maaari mong gamitin ang:
$ hostname -ako 192.168.1.108
Mula sa isang PC browser, pumunta sa: https://192.168.1.108/upc/ Dapat mong makita ang isang screen na katulad sa nasa Fig.2 sa itaas.
Kung gayon, maaari kang magdagdag / mag-update at magtanggal ng mga talaan. Mag-navigate sa Huling Pahina gamit ang (‘> |’) pindutang “huling talaan” upang makita ang iyong pinakabagong mga talaan dahil naidugtong ang mga ito sa dulo ng database.
SECURITYNOTE na ang serbisyo sa web na ito ay hindi nasigurado, (walang pagpapatotoo, walang SSL), kaya't pinakamahusay na huwag ilantad ito sa pampublikong Internet. (Ngunit dahil hindi ito naka-set up bilang isang WiFi Access Point, ligtas itong dalhin sa tindahan.)
Bagaman, dahil walang pribadong data dito, ang mas masahol na maaaring mangyari ay ang isang tao na kinukulit ang data ng UPC.
Maaari mo ring limitahan ang pag-access sa mga tukoy na IP address upang walang makapasok. Palit lang ang mga (mga) IP dito para sa mga nais mong payagan. Lahat ng iba ay mai-block mula sa pag-access:
$ sudo vi /etc/lighttpd/lighttpd.conf
$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd restart
Gayundin, BAGUHIN ang default na password ng PI! Alam ng lahat na ang default ay pi / raspberry
$ passwd
Hakbang 11: Pag-troubleshoot sa Web Server
Ang paggamit ng iyong browser ay pumunta sa IP address ng iyong Raspberry, tulad nito:
192.168.1.108/
Dapat mong makita ang default na screen mula sa /var/www/html/index.html (Larawan 1 sa itaas)
Tiyaking din na tumatakbo ang webserver:
$ ps -ef | grep lighttpd
Upang mapatunayan ang PHP ay mabuti, lumikha ng isang php test file:
$ sudo nano /var/www/html/phpinfo.php
Pagkatapos ay pumunta sa
Dapat mong makita ang isang screen tulad ng Fig.2 sa itaas
Kung nakakuha ka ng mga error o blangko na mga screen, suriin kung may mga error sa
$ sudo cat /var/log/lighttpd/error.log
Muli, ang muling pag-install ng install.sh ay maaaring ayusin ang mga nawawalang dependency.
Hakbang 12: Apendiks
Ang isang MALAKING SALAMAT ay pupunta sa mga sumusunod para sa magagamit na isang malaking database ng UPC.
Buksan ang Grocery UPC DB
www.grocery.com/open-grocery-database-proje…
Buksan ang Data DB
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Salamat kay EasyUI para sa simpleng web CRUD GUI
www.jeasyui.com/index.php
Inirerekumendang:
Superstock (Stock Controlled ng Barcode Scanner): 5 Hakbang
Superstock (Stock Controlled by Barcode Scanner): Sa gabay na ito sasabihin ko sa iyo kung paano bumuo ng Superstock, aking proyekto sa paaralan para sa 1MCT sa Howest. Ang konsepto ay gumagawa ng isang user friendly database na maaari mong ma-access sa pamamagitan ng isang website upang mapanatili ang bilang ng kung ano ang mayroon ka sa stock (sa aking kaso na damit para sa aking
Apple Barcode Engraver (Photonics Hackathon Phablabs): 3 Mga Hakbang
Apple Barcode Engraver (Photonics Hackathon Phablabs): Kumusta kayo, Bilang bahagi ng hamon sa Phablabs Photonics, hiniling sa amin na lumikha ng isang aparato na may kakayahang palitan ang mga sticker sa prutas. Ayaw mo rin ba ang mga sticker ng prutas? At nais mo bang gumawa ng pagbabago sa kapaligiran? Kung gayon nais naming mag-ins
POS SYSTEM PARA SA SHOPS, GROCERIES AT SERVICE CENTERS MULA SA EXCEL Sa Paggamit ng Mga Barcode: 7 Hakbang
POS SYSTEM PARA SA SHOPS, GROCERIES AT SERVICE CENTERS MULA SA EXCEL Sa Paggamit ng Mga Barcode: Ipinakikilala ko sa iyo ang blog na ito sa iyo kung paano lumikha ng isang simpleng sistema ng POS (point of sales) para sa mga maliliit na tindahan ng groseri at mga sentro ng serbisyo. Sa pamamaraang ito maaari mong pamahalaan ang mga sumusunod na pasilidad nang walang espesyal na software o mamahaling kagamitan. v Ibigay
USB Barcode Scanner (Raspberry Pi): 4 na Hakbang
USB Barcode Scanner (Raspberry Pi): Pangunahing tutorial kung paano mag-setup ng isang USB barcode scanner gamit ang Raspberry Pi
Murang Iphone Macro Lens para sa Pag-scan ng Barcode: 6 na Hakbang (na may Mga Larawan)
Murang Iphone Macro Lens para sa Pag-scan ng Barcode: Ang isang nakasisilaw na problema sa camera ng iPhone ay ang kawalan ng kakayahang tumuon nang malapit sa ~ 1 talampakan ang layo. Ang ilang mga solusyon sa aftermarket ay tumutulong na ayusin ang problemang ito tulad ng iClarifi ng Griffin Technology. Pinapayagan ka ng kasong ito para sa iPhone 3G na mag-slide ng isang maliit na ma