Përmbajtje:

Raspberry Pi Duke folur për lexuesin e barkodit: 12 hapa
Raspberry Pi Duke folur për lexuesin e barkodit: 12 hapa

Video: Raspberry Pi Duke folur për lexuesin e barkodit: 12 hapa

Video: Raspberry Pi Duke folur për lexuesin e barkodit: 12 hapa
Video: BTT Manta M8P v2 - Basics with CB1 v2.2 2024, Nëntor
Anonim
Raspberry Pi Talking Barcode Reader
Raspberry Pi Talking Barcode Reader

Fig.1 Skaneri i barkodit nga DX.com

Vështrim i përgjithshëm

Përditësim: Një video e shkurtër video është në dispozicion

Nëna ime nuk është në gjendje të lexojë etiketat në artikujt ushqimor, kështu që unë shkova duke kërkuar zgjidhje. Pasi pashë që lexuesit e kodit bar për të verbërit fitojnë shumë qindra dollarë, doja të shihja se çfarë mund të bëhej duke përdorur një Raspberry Pi dhe një lexues të barkodit USB.

Një imitim tjetër kryesor ishte se kjo duhet të funksionojë PA një lidhje interneti (si në një dyqan ose në shtëpinë e një shoku). Kështu që baza e të dhënave dhe teksti në të folur duhej të ishin të pavarura.

Provova një version të lexuesit të kodit të bazuar në kamerë, por ndriçimi dhe pozicioni i kamerës shkaktuan probleme të besueshmërisë për dikë që nuk mund të shihte qartë. Këto gjithashtu kërkonin shikim për të konfiguruar dhe përdorur aplikacionin. Kështu që unë kalova në një lexues të barkodit USB Laser, veçanërisht pasi ato tani janë në dispozicion për nën 30 dollarë dhe Raspbian Jessie i mbështet ato menjëherë jashtë kutisë.

Unë gjithashtu provova Amazon Dash Wand të ri, por nuk flet artikullin e skanuar dhe kërkon një lidhje interneti për të punuar.

Ideja ishte të skanoni një artikull dhe t'i bëni pyetjes Raspberry një bazë të dhënash të brendshme të kodeve UPC dhe më pas të flisni përshkrimin e produktit duke përdorur tekstin në të folur.

Për ta bërë njësinë sa më të vogël të jetë e mundur, doja të përdorja një Raspberry Pi Zero. Gjithashtu doja ta fikja njësinë edhe nga fuqia e baterisë.

Për të përmbushur këto kërkesa ishin të nevojshme shkëmbimet. Meqenëse Zero nuk ka një fole audio të jashtme, unë ripërdori modelin audio nga projekti im "Earthquake Pi" pasi ishte me kosto të ulët (rreth 6 dollarë) dhe shumë i vogël. Përndryshe, zëvendësimi i "One Transistor Audio për Pi Zero" mund të jetë i mundur.

Për skanerin Laser Bar Code, gjeta një nga DX.com. Ai mundësohet nga Rasbberry USB dhe kushton rreth 25 dollarë. (shiko pjesët më poshtë)

Hapi 1: PPRDITSIM

Me ardhjen e Raspberry Pi Zero W, unë do të kaloj në të. Gjithçka këtu është e njëjtë, përveç që ju duhet të vendosni lidhjen WiFi me Pi. Kjo do të thotë që nuk do të keni nevojë për një shpërndarës USB për Zero për konfigurim dhe përdorim.

Ju mund të konfiguroni WiFi duke përdorur:

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

E dinit?

Nëse instaloni Raspbian Jessie në një kartë SD duke përdorur një kompjuter Windows, mund të krijoni dy skedarë në kartë për të konfiguruar qasjen WiFi dhe SSH para se ta nisni në një mjedër?

Për këtë, supozoni se karta juaj SD aktualisht është montuar si K: në kompjuterin tuaj:

1) Instaloni imazhin më të fundit Raspbian Jessie në SD. Për këtë projekt, Jessie Lite duhet të punojë.

www.raspberrypi.org/downloads/raspbian/

2) Me fletore, krijoni një skedar të quajtur vetëm "ssh" dhe përdorni Ruaj si "Të gjitha skedarët" në K: / ssh

Skedari mund të përmbajë gjithçka. It’sshtë emri i skedarit që është i rëndësishëm. NUK duhet të jetë "ssh.txt" !!!

3) Me fletore, krijoni një skedar të quajtur "wpa_supplicant.conf" me sa vijon:

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

rrjet = {

ssid = "mySSID" psk = "fjalëkalimi im" key_mgmt = WPA-PSK}

Përdorni Ruaj si "Të gjithë skedarët" në K: / wpa_supplicant.conf Përsëri, mos lejoni që Notepad ta ndryshojë atë në "wpa_supplicant.conf.txt" !!

Kur e ndizni Raspberry për herë të parë, Jessie do t'i kërkojë ato dhe do të lidhet me Wi -Fi tuaj. Sidoqoftë, do të duhet të shikoni në Ruterin tuaj për adresën IP, pasi që është caktuar automatikisht.

Hapi 2: Lista e Pjesëve

  • Raspberry Pi Zero (ose ndonjë Raspberry Pi, nëse madhësia nuk është çështje)
  • Skaner USB i kodeve me lazer USB

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

  • Për Raspi Zero, shtoni përforcues Adafruit I2S 3W Class D
  • Folës i vogël. (Për Pi 2, 3, përdorni amp & altoparlant të jashtëm.)
  • Përshtatës USB Micro në USB OTG
  • Paketë baterie 5V 1Amp USB të tilla sihttps://www.adafruit.com/products/1959
  • Kabllo USB në mikro USB për paketën e baterisë.
  • USB & Ethernet shpërndarës (të paktën për punën e konfigurimit fillestar, nuk nevojitet për Zero W ose Raspi 2, 3)
  • Softuer nga GITHUB:

Hapi 3: Lexuesi i kodeve me lazer USB

Lexues i kodeve me laser Laser USB
Lexues i kodeve me laser Laser USB

Lexuesit e kodeve me lazer janë më falës në aftësinë e tyre për të skanuar një etiketë UPC sesa kamerat. Ata gjithashtu punojnë mirë edhe në etiketat e ndriçuara dobët ose të vendosura dobët.

Ju do të keni nevojë për mikro përshtatës USB në USB për ta lidhur atë në Zero.

Mbërthimi i dorës dhe këmbëzat e skanerit e bëjnë të lehtë përdorimin.

Gjithashtu jep reagime kur skanon me sukses një etiketë.

Për të bërë të ardhmen:

Në modelin përfundimtar, unë do ta shkurtoja kabllon për ta shkurtuar dhe ngjitur drejtpërdrejt në kunjat USB në Zero për të zvogëluar madhësinë dhe gjasat e një dështimi të lidhësit. Zero dhe bateria do të lidheshin drejtpërdrejt në pjesën e poshtme të dorezës së skanerit në një kuti të printuar 3D.

Hapi 4: Baza e të dhënave UPC

Kjo është pjesa më e dobët e projektit, pasi ka fjalë për fjalë miliona kode UPC dhe shumë pak baza të dhënash me burim të hapur në dispozicion për shkarkim. Fatkeqësisht, shumica e bazave të të dhënave UPC janë mjaft të shtrenjta dhe kërkojnë lidhje interneti.

Unë kam qenë në gjendje të bashkoj disa baza të të dhënave me burim të hapur (burimet në Shtojcën më poshtë), por edhe me gati 700,000 artikuj në të, një numër i madh mungojnë.

Për këtë qëllim, unë kam bërë dy gjëra; njëra është që të përqëndrohet në artikujt ushqimore në mënyrë specifike dhe tjetra është të shtojë një server në internet në Mjedër për të lejuar shtimin e kodeve të reja UPC me dorë, megjithëse, kjo kërkon të paktën lidhjen e rrjetit lokal.

Për të bërë të ardhmen:

Unë do ta bëja Zero W një "pikë e nxehtë" në mënyrë që të lidheni me të kudo për të shtuar kode të reja UPC.

Hapi 5: Tekst në fjalim

Kam përdorur programin tekst për të folur të quajtur "Flite", pasi kishte kompromisin më të mirë midis cilësisë së zërit dhe shpejtësisë së konvertimit në Zero. Të tjerët tingëlluan pak më mirë, por ishin shumë të ngadalshëm për t'u konvertuar.

Ju gjithashtu mund të shikoni tutorialin e Adafruit:

Vini re se do të duhet pak "stërvitje veshi" për t'u mësuar me lakimin e të folurit, por nuk është shumë keq.

Skanimi i të njëjtit artikull përsëri do të përsërisë audion.

Bërja e së ardhmes

Ndoshta shtoni një prizë kufje në mënyrë që ta keni më të lehtë për të moshuarit të dëgjojnë zërin në vende të zhurmshme.

Hapi 6: Fuqia e baterisë

Sistemi mund të drejtohet nga një bateri USB 5V, siç përdoret për të rimbushur celularët.

Kapja është se kur shkëputni baterinë ose bateria vdes, Pi do të rrëzohet me një shans që të korruptojë disqet SD.

Për ta zgjidhur këtë, nevojitet një buton që ekzekuton një komandë mbylljeje. Unë ndoshta do të përdor një si kjo:

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

(Po … një tjetër "Të ardhme për të bërë!")

Hapi 7: Pjesa I - Shtimi i audios në Pi Zero

Pjesa I - Shtimi i audios në Pi Zero
Pjesa I - Shtimi i audios në Pi Zero
Pjesa I - Shtimi i audios në Pi Zero
Pjesa I - Shtimi i audios në Pi Zero
Pjesa I - Shtimi i audios në Pi Zero
Pjesa I - Shtimi i audios në Pi Zero

(Kaloni këtë pjesë nëse nuk përdorni Zero!)

Në Pi Zero, do t'ju duhet të shtoni audio të jashtme, pasi nuk është e integruar. Kam përdorur koston e ulët "Adafruit I2S 3W Amplifier Breakout MAX98357A"

Kjo kërkon konfigurim duke përdorur mësimin e shkëlqyer të Adafruit në:

Siç tregohet në pjesën e instalimeve elektrike të tutorialit, lidheni:

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

Lidhni një altoparlant të vogël me prizat audio në tabelë.

Konfigurimi i Pi Zero Adafruit Audio Software Gjithashtu i treguar në udhëzuesin e konfigurimit të softuerit Adafruit, ekzekutoni komandën CURL më poshtë:

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

Pas rindezjes, testoni audion duke përdorur testin e altoparlantit:

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

Nëse keni probleme, kthehuni përmes tutorialit Adafruit duke filluar përsëri në përmbledhjen. Ju mund të keni nevojë të kaloni nëpër hapat "Instalimi i detajuar" në tutorial për të verifikuar të gjithë skedarët e azhurnuar.

Hapat e Rëndësishëm të Kërkuar për Zero & Max98357 Audio: Si parazgjedhje, audio ALSA funksionon vetëm në Stereo ndërsa teksti në të folur i Flite është mono. Gjithashtu, audio ka "pops" në të sa herë që fillon të luajë.

(Shih:

Ju duhet të bëni sa më poshtë:

1) Shtoni një rresht në /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Zëvendësoni /etc/asound.conf

$ sudo nano /etc/asound.conf

pcm.hifiberry {kartë hw lloji 0} pcm.! default {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" channel 2}} ctl.dmixer {type hw card 0}

3) Rinisni Pi -në tuaj.

Provoni përsëri testin e Kryetarit. Duhet të tingëllojë më mirë tani. Pasi të keni përfunduar tutorialin e konfigurimit duke përfshirë testet audio, atëherë zëri duhet të jetë gati.

Vini re se mund të dëshironi të shtoni një prizë kufje për audio, nëse e çoni këtë në një dyqan ushqimesh dyqan ose në një mjedis të zhurmshëm.

Hapi 8: Pjesa II - Instalimi i Softuerit

Kjo supozon që ju tashmë keni Raspbian Jessie të instaluar dhe mund të hyni në linjën e komandës Linux. Ju nuk keni nevojë për versionin GUI të Raspbian, por është në rregull për t'u përdorur.

NUK keni nevojë për skanerin USB të kyçur për momentin, në rast se keni nevojë për portën USB për Ethernet ose tastierë/miun.

Sigurohuni që sistemi juaj operativ është i përditësuar:

$ sudo apt-merrni përditësim $ sudo apt-merrni azhurnim

Nga rreshti i komandës, shkoni te direktoria pi e shtëpisë dhe shkarkoni depon GITHUB:

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

Kjo do të marrë ca kohë, veçanërisht nëse kjo është hera e parë dhe serveri në internet dhe PHP duhet të instalohen ose përditësohen. Nëse është e nevojshme, mund ta ekzekutoni këtë më shumë se një herë. Midis gjërave të tjera, kjo instalon skedarët e barkodit dhe bazën e të dhënave UPC në:/var/www/html/upc

Tjetra, redaktoni /etc/rc.local dhe shtoni rreshtin vijues para "daljes 0"

$ sudo nano /etc/rc.local

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

Pasi të përfundojë instalimi, mbyllni Pi -in tuaj dhe futni lexuesin e barkodit USB dhe riniseni.

$ sudo mbyllje tani

Ndizeni atë dhe duhet të dëgjoni një fjalim të shkurtër të fillimit.

Nëse është kështu, provoni të skanoni një bar kod nga një artikull ushqimor. Nëse gjithçka shkoi mirë, duhet ta dëgjoni që të flasë për artikullin (ose të flisni "Nuk u gjet"). Përndryshe, kontrolloni udhëzuesin e zgjidhjes së problemeve në vijim.

Hapi 9: Zgjidhja e problemeve

Zgjidhja e problemeve
Zgjidhja e problemeve

Nëse nuk dëgjoni tinguj, do t'ju duhet të provoni komandat e mëposhtme:

1) Verifikoni që teksti në fjalim funksionon:

$ sudo flite -zëri awb -t "testim"

Nëse merrni një gabim, sigurohuni që flite është instaluar:

$ sudo apt instaloni flite

Nëse merrni gabimin e mëposhtëm, sigurohuni që keni përditësuar /boot/config.txt dhe /etc/asound.conf të treguar në pjesën Audio Setup më sipër në Raspi Zero's: audio_open_alsa: dështoi në caktimin e numrit të kanaleve në 1. Argument i pavlefshëm.

Nëse nuk merrni asnjë gabim dhe asnjë zë, sigurohuni që tingulli juaj i mjedrës po funksionon.

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

1) Ju mund të keni nevojë të nxirrni audio nga priza audio: (shiko fig. 1 më sipër)

$ sudo raspi -config -> 7 Opsione të Avancuara -> A4 Audio

2) Pasi të keni verifikuar mirë audio dhe tekst-në-fjalim, kontrolloni lexuesin e barkodit:

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

Ju duhet të shihni një numër numerik të barkodit të shfaqur kur skanoni një barkod. (Programi i testimit NUK përfshin dalje audio ose lidhje të bazës së të dhënave.)

3) Nëse e gjithë kjo është e mirë, atëherë kontrolloni skedarin "nohup.out" për mesazhe gabimi:

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

Problemet e mundshme mungojnë paketat ose lejet e këqija (ose BUG në kod!). Sigurohuni që sistemi juaj operativ është i përditësuar dhe rifilloni përsëri install.sh.

Shpresoj, ju jeni duke punuar deri tani!

Hapi 10: Pjesa III - Web Server

Pjesa III - Web Server
Pjesa III - Web Server

Meqenëse ka MILIONA kode UPC dhe bazat e të dhënave më publike (pra falas) janë vetëm një nëngrup i vogël i kodeve, ky projekt u përqëndrua në kodet UPC për ushqimet. Ai përfshin disa qindra mijëra artikuj, por shumë, shumë nuk do të gjenden.

Nëse keni nevojë të shtoni ose përditësoni bazën e të dhënave UPC, ekzistojnë dy programe; një linjë komande dhe një shfletues uebi. (zëvendësoni shifrat me numrin tuaj të artikullit UPC)

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

$ sudo./addDB.sh 01234567890 "Artikulli im i ri"

Kjo do të shtojë një rekord në bazën e të dhënave. Përndryshe, sugjerohet të përdorni funksionin DB të shfletuesit të uebit.

Për GUI të Web Serverit, keni nevojë për adresën IP të mjedrës tuaj.

Për të gjetur adresën IP, mund të përdorni:

$ hostname -I 192.168.1.108

Nga një shfletues kompjuteri, shkoni te: https://192.168.1.108/upc/ Ju duhet të shihni një ekran të ngjashëm me atë në Fig.2 më sipër.

Nëse është kështu, mund të shtoni/përditësoni dhe fshini regjistrimet. Shkoni te Faqja e Fundit duke përdorur butonin ('> |') "regjistrimi i fundit" për të parë regjistrimet tuaja më të reja pasi ato janë shtuar në fund të bazës së të dhënave.

SIGURIA SHOTNIM që ky shërbim në internet nuk është i siguruar, (pa vërtetim, pa SSL), kështu që më mirë të mos e ekspozoni atë në internetin publik. (Por meqenëse nuk është krijuar si një pikë hyrjeje WiFi, është e sigurt për tu transportuar në dyqan.)

Megjithëse, meqenëse nuk ka të dhëna private mbi të, më e keqja që mund të ndodhë është dikush që manipulon të dhënat e UPC.

Ju gjithashtu mund të kufizoni qasjen në adresa IP specifike në mënyrë që të mos hyjnë të tjerët. Thjesht zëvendësoni IP (të) këtu me ato që dëshironi të lejoni. Të gjithë të tjerët do të bllokohen nga qasja:

$ sudo vi /etc/lighttpd/lighttpd.conf

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

Gjithashtu, NDRYSHO fjalëkalimin e paracaktuar të PI! Të gjithë e dinë që parazgjedhja është pi/mjedër

$ passwd

Hapi 11: Zgjidhja e problemeve në Web Server

Zgjidhja e problemeve në Web Server
Zgjidhja e problemeve në Web Server
Zgjidhja e problemeve në Web Server
Zgjidhja e problemeve në Web Server

Duke përdorur shfletuesin tuaj shkoni në adresën IP të Raspberry, si kjo:

192.168.1.108/

Ju duhet të shihni ekranin e paracaktuar nga /var/www/html/index.html (Fig.1 më lart)

Gjithashtu sigurohuni që serveri i uebit po funksionon:

$ ps -ef | grep lighttpd

Për të verifikuar që PHP është e mirë, krijoni një skedar testi php:

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

Pastaj shkoni te

Ju duhet të shihni një ekran si Fig.2 më lart

Nëse merrni gabime ose ekran të zbrazët, kontrolloni për gabime

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

Përsëri, rifunksionimi i install.sh mund të rregullojë varësitë që mungojnë.

Hapi 12: Shtojca

Një FALEMINDERI I MADH shkon në vijim për të vënë në dispozicion një bazë të dhënash të madhe UPC.

Hap UBC Ushqimore Ushqimore

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

Hapni DB Data

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

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

Faleminderit EasyUI për uebin e thjeshtë CRUD GUI

www.jeasyui.com/index.php

Recommended: