Tartalomjegyzék:

Raspberry Pi Talking Barcode Reader: 12 lépés
Raspberry Pi Talking Barcode Reader: 12 lépés

Videó: Raspberry Pi Talking Barcode Reader: 12 lépés

Videó: Raspberry Pi Talking Barcode Reader: 12 lépés
Videó: RASPBERRY PI TALKING BARCODE READER 2024, November
Anonim
Raspberry Pi Beszélő vonalkód -olvasó
Raspberry Pi Beszélő vonalkód -olvasó

1. ábra Vonalkódolvasó a DX.com webhelyről

Áttekintés

Frissítés: Rövid videó demó elérhető

Édesanyám már nem tudja olvasni az élelmiszerek címkéit, ezért kerestem a megoldásokat. Miután láttam, hogy a vakok vonalkód -olvasói sok száz dollárt fizetnek, meg akartam nézni, mit lehet tenni egy Raspberry Pi és egy USB vonalkód -olvasó segítségével.

Egy másik kulcsfontosságú utánzat az volt, hogy ennek internetkapcsolat NÉLKÜL (például boltban vagy barátja házában) kell működnie. Tehát az adatbázisnak és a szövegfelolvasónak önállónak kellett lennie.

Kipróbáltam a vonalkód -olvasó kamera alapú verzióját, de a világítás és a kamera helyzete megbízhatósági problémákat okozott azok számára, akik nem látnak tisztán. Ezekhez látásra is szükség volt az alkalmazás beállításához és használatához. Így USB Laser vonalkód -olvasóra váltottam, főleg, hogy most már 30 dollár alatt kaphatók, és a Raspbian Jessie támogatja őket a dobozból.

Kipróbáltam az új Amazon Dash Wand pálcát is, de nem beszéli a beolvasott elemet, és működéséhez internetkapcsolat szükséges.

Az ötlet az volt, hogy szkenneljen egy elemet, és a Raspberry lekérdezéshez hozzon létre egy belső adatbázist a UPC-kódokról, majd mondja el a termékleírást szövegfelolvasó segítségével.

Annak érdekében, hogy a készülék a lehető legkisebb legyen, Raspberry Pi Zero -t akartam használni. Azt is ki akartam kapcsolni az egységből, hogy az akkumulátorról lemerüljön.

Ezen követelmények teljesítéséhez bizonyos kompromisszumokra volt szükség. Mivel a Zero -nak nincs külső audiocsatlakozója, újra felhasználtam a „Earthquake Pi” projekt hangfelvételét, mivel olcsó volt (kb. 6 USD) és nagyon kicsi. Alternatív megoldásként lehetséges az "One Transistor Audio Pi Pi Zero" helyettesítése.

A lézeres vonalkód -szkennerhez találtam egyet a DX.com -ról. A Raspberry USB ki van kapcsolva, és körülbelül 25 dollárba kerül. (lásd az alábbi részeket)

1. lépés: FRISSÍTÉS

A Raspberry Pi Zero W érkezésével arra fogok váltani. Itt minden ugyanaz, kivéve, hogy be kell állítania a WiFi kapcsolatot a Pi -vel. Ez azt jelenti, hogy a beállításhoz és használathoz nem lesz szüksége USB hubra a Zero számára.

A Wi -Fi -t a következő módon állíthatja be:

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

Tudtad?

Ha Raspbian Jessie -t telepít egy SD -kártyára Windows PC -n, akkor létrehozhat két fájlt a kártyán a WiFi és az SSH -hozzáférés konfigurálásához, mielőtt elindítja a Raspberry -n?

Ehhez tegyük fel, hogy az SD -kártya jelenleg K:ként van felszerelve a számítógépen:

1) Telepítse a legújabb Raspbian Jessie képet az SD -re. Ehhez a projekthez a Jessie Lite -nak működnie kell.

www.raspberrypi.org/downloads/raspbian/

2) Jegyzettömb segítségével hozzon létre egy „ssh” nevű fájlt, és használja a Mentés másként „Minden fájl” parancsot a K: / ssh fájlba

A fájl bármit tartalmazhat. A fájlnév a fontos. NEM lehet „ssh.txt” !!!

3) Jegyzettömb segítségével hozzon létre egy „wpa_supplicant.conf” nevű fájlt a következőkkel:

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

hálózat = {

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

Használja a Mentés „Minden fájl” mappát a K: / wpa_supplicant.conf fájlba. Ismét ne hagyja, hogy a Jegyzettömb „wpa_supplicant.conf.txt” fájlra változtassa !!

Amikor először indítja el a Málnát, Jessie megkeresi ezeket, és csatlakozik a Wifi -hez. Az útválasztón azonban meg kell keresnie az IP -címet, mivel az automatikusan hozzá van rendelve.

2. lépés: Alkatrészlista

  • Raspberry Pi Zero (vagy bármely Raspberry Pi, ha a méret nem probléma)
  • USB lézeres vonalkódolvasó

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

  • A Raspi Zero esetében adjon hozzá Adafruit I2S 3W D osztályú erősítőthttps://www.adafruit.com/products/3006
  • Kis hangszóró. (Pi 2, 3 esetén használjon külső erősítőt és hangszórót.)
  • USB Micro -USB OTG adapterhttps://www.adafruit.com/products/2910
  • 5V 1Amp USB akkumulátor, például
  • USB -micro USB kábel az akkumulátorhoz.
  • USB és Ethernet hub (legalábbis a kezdeti beállításhoz, nem szükséges a Zero W vagy a Raspi 2, 3 esetén)
  • A GITHUB szoftvere:

3. lépés: USB lézeres vonalkód -olvasó

USB lézeres vonalkód -olvasó
USB lézeres vonalkód -olvasó

A lézeres vonalkód -olvasók elnézőbbek a UPC címke beolvasásában, mint a kamerák. Jól működnek még rosszul megvilágított vagy rosszul elhelyezett címkéknél is.

Szüksége lesz az USB -USB mikroadapterre a Zero csatlakoztatásához.

A szkenner markolata és kioldója megkönnyíti a használatát.

Ezenkívül visszajelzést ad a címke sikeres beolvasásakor.

A jövőbeli teendők:

A végső kialakításban levágnám a kábelt, hogy lerövidítsem, és közvetlenül a Zero USB -tűire forraszthassam, hogy csökkentsem a csatlakozó meghibásodásának méretét és valószínűségét. A nullát és az akkumulátort közvetlenül a lapolvasó fogantyújának aljára kell rögzíteni egy 3D nyomtatott tokban.

4. lépés: UPC adatbázis

Ez a projekt legrosszabbul lefedett része, mivel szó szerint milliónyi UPC-kód és nagyon kevés nyílt forráskódú adatbázis letölthető. Sajnos a legtöbb UPC adatbázis meglehetősen drága, és internetkapcsolatot igényel.

Sikerült néhány nyílt forráskódú adatbázist összeállítanom (források az alábbi függelékben), de még közel 700 000 elem ellenére is hatalmas szám hiányzik.

Ennek érdekében két dolgot tettem; az egyik, hogy kifejezetten az élelmiszerekre összpontosítson, a másik pedig egy webszerver hozzáadása a Raspberry -hez, amely lehetővé teszi az új UPC -kódok manuális hozzáadását, bár ehhez legalább helyi hálózati kapcsolat szükséges.

A jövőbeli teendők:

A Zero W -t "hotspot" -nak tenném, hogy bárhová csatlakozhasson hozzá, és új UPC -kódokat adhasson hozzá.

5. lépés: Szövegfelolvasó

A szöveg -beszéd programot a „Flite” nevű programmal használtam, mivel a legjobb kompromisszum volt a hangminőség és a konverziós sebesség között a Zero -n. Mások kicsit jobban hangzottak, de túl lassúak voltak a megtéréshez.

Az Adafruit oktatóanyagát is megtekintheti:

Ne feledje, hogy egy kis „fülképzés” szükséges ahhoz, hogy megszokja a beszédflexiót, de nem túl rossz.

Ugyanazon elem ismételt beolvasása megismétli a hangot.

A jövőbeli teendők

Esetleg tegyen hozzá fejhallgató -csatlakozót, hogy az idősek könnyebben hallhassák a hangot zajos helyeken.

6. lépés: Akkumulátor

A rendszer 5 V -os USB elemről működtethető, például mobiltelefonok feltöltésére.

A probléma az, hogy amikor kihúzza az akkumulátort a konnektorból, vagy ha az akkumulátor lemerül, a Pi összeomlik, és valószínű, hogy megrongálja az SD -meghajtót.

Ennek megoldásához szükség van egy leállítási parancsot futtató gombra. Valószínűleg ilyet fogok használni:

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

(Igen… egy másik „jövőbeli teendő!”)

7. lépés: I. rész - Hang hozzáadása a Pi Zero -hoz

I. rész - Hang hozzáadása a Pi Zero -hoz
I. rész - Hang hozzáadása a Pi Zero -hoz
I. rész - Hang hozzáadása a Pi Zero -hoz
I. rész - Hang hozzáadása a Pi Zero -hoz
I. rész - Hang hozzáadása a Pi Zero -hoz
I. rész - Hang hozzáadása a Pi Zero -hoz

(Ha nem nullát használ, hagyja ki ezt a részt!)

A Pi Zero esetén külső hangot kell hozzáadnia, mivel az nincs beépítve. Az alacsony költségű „Adafruit I2S 3W erősítő MAX98357A” -t használtam

Ehhez beállításra van szükség az Adafruit kiváló oktatóanyagának használatával:

Az oktatóanyag bekötési részében látható módon csatlakoztassa:

• 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 to Raspi Zero Pi #19

Csatlakoztasson egy kis hangszórót az alaplapon található hangvezetékekhez.

Pi Zero Adafruit audio szoftver beállítása Az Adafruit szoftver telepítési oktatóanyagában is látható, hajtsa végre az alábbi CURL parancsot:

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

Az újraindítás után tesztelje a hangot hangszóróteszt segítségével:

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

Ha problémái vannak, menjen vissza az Adafruit oktatóanyaghoz, kezdve az áttekintéstől. Az összes frissített fájl ellenőrzéséhez előfordulhat, hogy végig kell mennie az oktatóanyag „Részletes telepítés” lépésein.

Fontos, szükséges lépések a Zero & Max98357 audióhoz: Alapértelmezés szerint az ALSA hang csak sztereóban működik, míg a Flite szövegfelolvasó mono. Ezenkívül a hang „felpattan” minden alkalommal, amikor elkezdi lejátszani.

(Lásd:

A következőket kell tennie:

1) Adjon hozzá egy sort a /boot/config.txt fájlhoz

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Cserélje ki az /etc/asound.conf fájlt

$ sudo nano /etc/asound.conf

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

3) Indítsa újra a Pi -t.

Próbálja újra a hangszórótesztet. Most jobban kell hangzania. Miután elvégezte a beállítási útmutatót, beleértve az audioteszteket, a hangnak készen kell állnia.

Vegye figyelembe, hogy érdemes egy fülhallgató -csatlakozót is hozzáadni a hanghoz, ha ezt élelmiszerboltba vagy zajos környezetbe viszi.

8. lépés: II. Rész - Szoftver telepítése

Ez feltételezi, hogy már telepítette a Raspbian Jessie-t, és el tudja érni a Linux parancssorát. Nincs szüksége a Raspbian GUI verziójára, de használható.

Jelenleg NEM kell csatlakoztatnia az USB -szkennert, ha USB -portra van szüksége Ethernethez vagy billentyűzethez/egérhez.

Győződjön meg arról, hogy az operációs rendszere naprakész:

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

A parancssorból nyissa meg a pi home könyvtárat, és töltse le a GITHUB adattárat:

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

Ez eltart egy ideig, különösen, ha ez az első alkalom, és a webszervert és a PHP -t telepíteni vagy frissíteni kell. Ha szükséges, ezt többször is futtathatja. Többek között ez telepíti a vonalkódfájlokat és a UPC adatbázist:/var/www/html/upc

Ezután szerkessze az /etc/rc.local fájlt, és fűzze hozzá a következő sort a "exit 0" előtt

$ sudo nano /etc/rc.local

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

A telepítés befejezése után kapcsolja ki a Pi -t, és csatlakoztassa az USB vonalkód -olvasót, majd indítsa újra.

$ sudo most leáll

Kapcsolja vissza a készüléket, és rövid indítási beszédet kell hallania.

Ha igen, próbáljon beolvasni egy vonalkódot egy élelmiszerboltból. Ha minden jól ment, akkor hallani kell a tétel beszédét (vagy a „Not Found” szót). Ellenkező esetben olvassa el a hibaelhárítási útmutatót.

9. lépés: Hibaelhárítás

Hibaelhárítás
Hibaelhárítás

Ha nem hall hangot, akkor a következő parancsokat kell kipróbálnia:

1) Ellenőrizze, hogy a szövegfelolvasó hang működik-e:

$ sudo flite -voice awb -t "tesztelés"

Ha hibaüzenetet kap, győződjön meg arról, hogy a flite telepítve volt:

$ sudo apt install flite

Ha a következő hibaüzenetet kapja, győződjön meg róla, hogy frissítette a /boot/config.txt és /etc/asound.conf fájlokat, amelyek a Raspi Zero Audio beállítása szakaszában láthatók: audio_open_alsa: nem sikerült a csatornák számát 1 -re állítani. Érvénytelen argumentum.

Ha nem kap hibát és hangot, győződjön meg arról, hogy a Raspberry audio működik.

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

1) Lehet, hogy kényszerítenie kell az audio kimenetet az audio csatlakozóról: (lásd a fenti 1. ábrát)

$ sudo raspi -config -> 7 Speciális beállítások -> A4 -es hang

2) Ha az audio és a szövegfelolvasó ellenőrzése jó, ellenőrizze a vonalkód-olvasót:

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

A vonalkód beolvasásakor egy numerikus vonalkód számot kell megjelenítenie. (A tesztprogram NEM tartalmaz audio kimenetet vagy adatbázis -kapcsolatokat.)

3) Ha mindez jó, akkor ellenőrizze a „nohup.out” fájlt, hogy nincsenek -e hibaüzenetek:

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

Valószínűleg hiányzó csomagok vagy rossz engedélyek (vagy hibák a kódban!). Győződjön meg arról, hogy az operációs rendszere naprakész, és futtassa újra az install.sh fájlt.

Remélhetőleg már dolgozol!

10. lépés: III. Rész - Webszerver

III. Rész - Webszerver
III. Rész - Webszerver

Mivel több millió UPC -kód létezik, és a legtöbb nyilvánosan (azaz ingyenes) elérhető adatbázis csak egy kis részhalmaza a kódnak, ez a projekt az élelmiszerek UPC -kódjaira összpontosított. Több százezer elemet tartalmaz, de sok -sok nem lesz megtalálható.

Ha hozzá kell adnia vagy frissítenie kell a UPC adatbázist, két program áll rendelkezésre; egy parancssori és egy webböngésző. (cserélje ki a számjegyeket a UPC cikkszámára)

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

$ sudo./addDB.sh 01234567890 „Új elemem”

Ez rekordot ad hozzá az adatbázishoz. Ellenkező esetben a webböngésző DB funkciójának használata javasolt.

A webszerver grafikus felhasználói felületéhez szüksége van a málna IP -címére.

Az IP -cím megkereséséhez használhatja:

$ hosztnév -I 192.168.1.108

PC böngészőben lépjen a következőre: https://192.168.1.108/upc/A fenti 2. ábrán láthatóhoz hasonló képernyőt kell látnia.

Ha igen, hozzáadhat/frissíthet és törölhet rekordokat. Navigáljon az Utolsó oldalra a (’> |’) „utolsó rekord” gombbal, és tekintse meg legújabb rekordjait az adatbázis végéhez fűzve.

BIZTONSÁGI MEGJEGYZÉS, hogy ez a webszolgáltatás nem biztonságos (nincs hitelesítés, nincs SSL), ezért a legjobb, ha nem teszi ki a nyilvános internetnek. (De mivel nem WiFi hozzáférési pontként van beállítva, biztonságosan vihető az üzletbe.)

Bár mivel nincsenek magán adatok, a legrosszabb, ami történhet, ha valaki manipulálja a UPC adatait.

A hozzáférést bizonyos IP -címekre is korlátozhatja, hogy mások ne férhessenek hozzá. Csak cserélje le az IP -címet az engedélyezettre. A többiek nem férhetnek hozzá a következőkhöz:

$ 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

Továbbá VÁLTOZZA az alapértelmezett PI jelszót! Mindenki tudja, hogy az alapértelmezett beállítás a pi/málna

$ passwd

11. lépés: A webszerver hibaelhárítása

A webszerver hibaelhárítása
A webszerver hibaelhárítása
A webszerver hibaelhárítása
A webszerver hibaelhárítása

A böngésző használatával lépjen a Raspberry IP -címére, így:

192.168.1.108/

Látnia kell a /var/www/html/index.html oldal alapértelmezett képernyőjét (1. ábra fent)

Győződjön meg arról is, hogy a webszerver fut:

$ ps -ef | grep lighttpd

A PHP jó működésének ellenőrzéséhez hozzon létre egy php tesztfájlt:

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

Ezután lépjen a https://192.168.1.108/phpinfo.php oldalra

A fenti 2. ábrához hasonló képernyőt kell látnia

Ha hibákat vagy üres képernyőket kap, ellenőrizze a hibákat

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

Ismételten, az install.sh futtatása javíthatja a hiányzó függőségeket.

12. lépés: Függelék

NAGY KÖSZÖNET az alábbiakért egy nagy UPC adatbázis rendelkezésre bocsátásáért.

Nyissa meg a Grocery UPC DB -t

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

Nyissa meg a Data DB -t

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

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

Köszönjük az EasyUI -nak az egyszerű webes CRUD GUI -t

www.jeasyui.com/index.php

Ajánlott: