Mündəricat:
- Addım 1: YENİLƏNİB
- Addım 2: Parça siyahısı
- Addım 3: USB Lazer Barkod Oxuyucusu
- Addım 4: UPC Database
- Addım 5: Mətndən Nitqə
- Addım 6: Batareya Gücü
- Addım 7: I hissə - Pi Zero -ya Audio əlavə edin
- Addım 8: II hissə - Proqram təminatının quraşdırılması
- Addım 9: Problemlərin aradan qaldırılması
- Addım 10: III hissə - Veb Server
- Addım 11: Veb serverində problemlərin aradan qaldırılması
- Addım 12: Əlavə
Video: Raspberry Pi danışan barkod oxuyucusu: 12 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Şəkil 1 DX.com -dan Barkod Skaner
Baxış
Yeniləmə: Qısa bir video demo mövcuddur
Anam artıq ərzaq mallarının üzərindəki yazıları oxuya bilmir, ona görə də həll yolları axtarmağa getdim. Korlar üçün barkod oxuyanların yüzlərlə dollar xərclədiyini gördükdən sonra, Raspberry Pi və USB Barkod oxuyucusu ilə nə edilə biləcəyini görmək istədim.
Başqa bir əsas təqlid, bunun İnternet bağlantısı olmadan işləməsi idi (məsələn, bir mağazada və ya dost evində). Buna görə də verilənlər bazası və mətndən-nitq öz-özünə olmalı idi.
Barkod oxuyucunun kamera əsaslı bir versiyasını sınadım, amma işıqlandırma və kameranın mövqeyi aydın görə bilməyən bir kəs üçün etibarlılıq problemlərinə səbəb oldu. Tətbiqi qurmaq və istifadə etmək üçün bunlar da görmə tələb edirdi. Bir USB Lazer barkod oxuyucusuna keçdim, xüsusən də indi 30 dollardan aşağı qiymətə satılır və Raspbian Jessie onları qutudan kənarda dəstəkləyir.
Yeni Amazon Dash Wand -ı da sınadım, amma skan edilmiş elementi danışmır və işləməsi üçün İnternet bağlantısı tələb olunur.
Fikir bir maddənin taranması və Raspberry sorğusunun UPC kodlarının daxili bir verilənlər bazasına sahib olması və sonra mətndən danışığa istifadə edərək məhsulun təsvirinin danışılması idi.
Cihazı mümkün qədər kiçik etmək üçün Raspberry Pi Zero istifadə etmək istədim. Mən də vahidi batareya enerjisindən çıxarmaq istədim.
Bu tələbləri yerinə yetirmək üçün bir sıra dəyişikliklər etmək lazım idi. Sıfırın xarici səs yuvası olmadığı üçün "Earthquake Pi" layihəmdəki səs dizaynını aşağı qiymətli (təxminən 6 dollar) və çox kiçik olduğu üçün yenidən istifadə etdim. Alternativ olaraq, "Pi Sıfır üçün Bir Transistorlu Səsi" əvəz etmək mümkün ola bilər.
Lazer Barkod skaneri üçün DX.com saytından birini tapdım. Raspberry USB -dən ayrılıb və qiyməti təxminən 25 dollardır. (Aşağıdakı hissələrə baxın)
Addım 1: YENİLƏNİB
Raspberry Pi Zero W -nin gəlişi ilə buna keçəcəyəm. Buradakı hər şey eynidir, ancaq Pi ilə WiFi bağlantısı qurmalısınız. Quraşdırma və istifadə üçün Zero üçün bir USB mərkəzinə ehtiyacınız olmayacağı deməkdir.
WiFi qurmaq üçün aşağıdakıları edə bilərsiniz:
thepihut.com/blogs/raspberry-pi-tutorials/…
Bilirdinizmi?
Windows PC istifadə edərək Raspbian Jessie'yi bir SD karta qurarsanız, Moruqda yükləməzdən əvvəl WiFi və SSH girişini konfiqurasiya etmək üçün kartda iki fayl yarada bilərsiniz?
Bunun üçün SD kartınızın hazırda kompüterinizdə K: olaraq quraşdırıldığını düşünün:
1) Ən son Raspbian Jessie şəklini SD -yə quraşdırın. Bu layihə üçün Jessie Lite işləməlidir.
www.raspberrypi.org/downloads/raspbian/
2) Notepad ilə yalnız "ssh" adlı bir fayl yaradın və K: / ssh -də "Bütün fayllar" olaraq Saxla istifadə edin.
Fayl hər şeyi ehtiva edə bilər. Önəmli olan fayl adıdır. "Ssh.txt" OLMAMALIDIR !!!
3) Notepad ilə aşağıdakıları olan "wpa_supplicant.conf" adlı bir fayl yaradın:
ctrl_interface = DIR =/var/run/wpa_supplicant GROUP = netdevupdate_config = 1
şəbəkə = {
ssid = "mySSID" psk = "mypassword" key_mgmt = WPA-PSK}
K: / wpa_supplicant.conf üçün "Bütün fayllar" olaraq Saxla istifadə edin Yenə Notepadın "wpa_supplicant.conf.txt" olaraq dəyişdirməsinə icazə verməyin !!
İlk dəfə Moruq açanda Jessie bunları axtaracaq və Wi -Fi -ya qoşulacaq. Avtomatik olaraq təyin edildiyindən, IP ünvanı üçün Routerinizə baxmalı olacaqsınız.
Addım 2: Parça siyahısı
- Raspberry Pi Zero (və ya hər hansı bir Raspberry Pi, ölçü problem deyilsə)
-
USB lazer barkod skaneri
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Raspi Zero üçün Adafruit I2S 3W Class D Gücləndiricisini əlavə edinhttps://www.adafruit.com/products/3006
- Kiçik dinamik. (Pi 2, 3 üçün xarici amp və dinamikdən istifadə edin.)
- USB Micro -dan USB OTG -yə adapterihttps://www.adafruit.com/products/2910
- Https://www.adafruit.com/products/1959 kimi 5V 1Amp USB batareya paketi
- Batareya dəsti üçün USB -dən mikro USB kabelinə.
- USB və Ethernet hubı (heç olmasa Zero W və ya Raspi 2, 3 üçün lazım olmayan ilkin quraşdırma işləri üçün)
- GITHUB -dan proqram:
Addım 3: USB Lazer Barkod Oxuyucusu
Lazer barkod oxuyucular, UPC etiketini tarama qabiliyyətini kameralara nisbətən daha bağışlayar. Həm də zəif işıqlandırılmış və ya zəif yerləşdirilmiş etiketlərdə də yaxşı işləyirlər.
Sıfıra bağlamaq üçün USB -dən USB -ə mikro adapterə ehtiyacınız olacaq.
Skanerin əl tutacağı və tətiyi istifadəni asanlaşdırır.
Bir etiketi uğurla taradıqda da rəy verir.
Gələcək Ediləcək İş:
Son dizaynda, konnektorun ölçüsünü və ehtimalını azaltmaq üçün kabeli qısaltmaq üçün kəsib birbaşa Sıfırdakı USB pinlərinə lehimləyərdim. Sıfır və batareya birbaşa 3D çaplı qutuda skaner tutacağının altına bağlanacaq.
Addım 4: UPC Database
Layihənin ən zəif əhatə olunmuş hissəsidir, çünki milyonlarla UPC kodu var və yükləmək üçün çox az açıq mənbə verilənlər bazası var. Təəssüf ki, əksər UPC verilənlər bazası olduqca bahalıdır və internet bağlantısı tələb edir.
Bir neçə açıq mənbə verilənlər bazasını bir araya gətirə bildim (Aşağıdakı Əlavədakı mənbələr), amma içərisində təxminən 700.000 maddə olsa da, çox sayda insan yoxdur.
Bu məqsədlə iki şey etdim; biri xüsusi olaraq ərzaq məhsullarına diqqət yetirmək, digəri isə Raspberry -ə yeni UPC kodlarını əl ilə əlavə etməyə icazə vermək üçün veb server əlavə etməkdir, buna baxmayaraq ən azından yerli şəbəkə bağlantısı tələb olunur.
Gələcək Ediləcək İş:
Yeni UPC kodları əlavə etmək üçün hər yerə qoşula biləcəyiniz üçün Zero W -ni "qaynar nöqtə" edərdim.
Addım 5: Mətndən Nitqə
Səs keyfiyyəti və sıfırdakı dönüşüm sürəti arasında ən yaxşı güzəştə malik olduğu üçün "Flite" adlı mətni danışma proqramından istifadə etdim. Digərləri bir az daha yaxşı səsləndi, amma çevirmək üçün çox yavaş idi.
Adafruit təlimatına da baxa bilərsiniz:
Diqqət yetirin ki, nitq dəyişikliyinə alışmaq üçün bir az "qulaq təlimi" lazım olacaq, amma çox da pis deyil.
Eyni maddənin yenidən taranması səs təkrarlanacaq.
Gələcək üçün ediləcək işlər
Yaşlıların səs -küylü yerlərdə səsi eşitməsini asanlaşdırmaq üçün bir qulaqlıq yuvası əlavə edə bilərsiniz.
Addım 6: Batareya Gücü
Sistem, cib telefonlarını doldurmaq üçün istifadə edilən 5V USB batareyasından işləyə bilər.
Batareyanı çıxardığınızda və ya batareyanın öldüyündə Pi -nin SD sürücüsünü korlayacağı ehtimalı ilə qəzaya uğramasıdır.
Bunu həll etmək üçün bir bağlama əmrini işlədən bir düyməyə ehtiyac var. Yəqin ki, bu kimi birini istifadə edərəm:
www.element14.com/community/docs/DOC-78055…
(Bəli… başqa bir "Gələcək İşi!")
Addım 7: I hissə - Pi Zero -ya Audio əlavə edin
(Sıfırdan istifadə etmirsinizsə bu hissəni atlayın!)
Pi Zero-da, daxili səs olmadığı üçün xarici səs əlavə etməlisiniz. Aşağı qiymətli "Adafruit I2S 3W Amplifier breakout MAX98357A" istifadə etdim
Bunun üçün Adafruit-in əla təlimatını istifadə edərək quraşdırma tələb olunur:
Dərsliyin kabel hissəsində göstərildiyi kimi, qoşulun:
• 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
Kiçik bir spikeri lövhədəki səs uclarına bağlayın.
Pi Zero Adafruit Audio Software SetupAdafruit proqram qurma dərsliyində göstərildiyi kimi aşağıdakı CURL əmrini yerinə yetirin:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Yenidən başladıqdan sonra, hoparlör testindən istifadə edərək səsi yoxlayın:
$ speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Probleminiz varsa, ümumi baxışdan başlayaraq Adafruit dərsliyi ilə geri qayıdın. Yenilənmiş bütün faylları yoxlamaq üçün dərslikdəki "Ətraflı quraşdırma" addımlarından keçməyiniz lazım ola bilər.
Sıfır və Max98357 Səs üçün vacib Tələb olunan Adımlar: Varsayılan olaraq, ALSA səsi yalnız Stereoda işləyir, Flite mətndən nitqə mono olduqda. Ayrıca, səs hər dəfə çalmağa başlayanda içərisində "pops" var.
(Bax:
Aşağıdakıları etməlisiniz:
1) /boot/config.txt ünvanına bir xətt əlavə edin
$ sudo nano /boot/config.txt
dtoverlay = i2s-mmap
2) /etc/asound.conf faylını dəyişdirin
$ sudo nano /etc/asound.conf
pcm.hifiberry {hw kartı yazın 0} pcm.! default {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" kanalları 2}} ctl.dmixer {növü hw kart 0}
3) Pi -ni yenidən başladın.
Dinamik testini yenidən sınayın. Səs testləri də daxil olmaqla quraşdırma təlimatını tamamladıqdan sonra səs hazır olmalıdır.
Unutmayın ki, bunu bir baqqal mağazasına və ya səs -küylü bir yerə apararsanız, səs üçün qulaqlıq yuvası əlavə etmək istəyə bilərsiniz.
Addım 8: II hissə - Proqram təminatının quraşdırılması
Bu, artıq Raspbian Jessie-nin quraşdırıldığını və Linux əmr satırına daxil ola biləcəyinizi güman edir. Raspbian -ın GUI versiyasına ehtiyacınız yoxdur, ancaq istifadə etmək yaxşıdır.
Ethernet və ya klaviatura/siçan üçün USB portuna ehtiyacınız olduğu halda, hazırda USB skanerinin qoşulduğuna ehtiyacınız yoxdur.
Əməliyyat sisteminizin güncel olduğundan əmin olun:
$ sudo apt-get yeniləmə $ sudo apt-get upgrade
Komanda satırından pi home qovluğuna gedin və GITHUB deposunu yükləyin:
$ cd/home/pi $ sudo apt install git $ git clone https://github.com/rgrokett/TalkingBarcodeReader….> https://github.com/rgrokett/TalkingBarcodeReader….> $ cd TalkingBarcodeReader $./install. ş
Xüsusilə bu ilk dəfədirsə və veb serverin və PHP -nin quraşdırılması və ya yenilənməsi lazımdırsa, bu bir az vaxt aparacaq. Lazım gələrsə, bunu bir dəfədən çox işlədə bilərsiniz. Başqa şeylər arasında, barkod fayllarını və UPC verilənlər bazasını yükləyir:/var/www/html/upc
Sonra, /etc/rc.local redaktə edin və "0 çıxışından" əvvəl aşağıdakı sətri əlavə edin.
$ sudo nano /etc/rc.local
fi sudo /var/www/html/upc/bin/run.sh çıxış 0
Quraşdırma başa çatdıqdan sonra Pi cihazınızı bağlayın və USB Barkod oxuyucusunu qoşun və yenidən başladın.
$ sudo indi bağlanır
Yenidən işə salın və qısa bir başlanğıc nitqi eşitməlisiniz.
Əgər belədirsə, baqqaldan barkod taramağa çalışın. Hər şey yaxşı gedirsə, bu maddənin danışdığını eşitməlisiniz (və ya "Tapılmadı" deyin). Əks təqdirdə, sonrakı problemlərin aradan qaldırılması təlimatına baxın.
Addım 9: Problemlərin aradan qaldırılması
Heç bir səs eşitmirsinizsə, aşağıdakı əmrləri sınamalısınız:
1) Səsdən mətnə işlədiyini yoxlayın:
$ sudo flite -voice awb -t "test"
Bir səhv alsanız, flite quraşdırıldığından əmin olun:
$ sudo apt install flite
Aşağıdakı xətanı alırsınızsa, yuxarıda Raspi Zero’s Audio Setup bölməsində göstərilən /boot/config.txt və /etc/asound.conf fayllarını yenilədiyinizə əmin olun: audio_open_alsa: kanal sayını 1 olaraq təyin edə bilmədi.
Səhv və səs almırsınızsa, Moruq səsinizin işlədiyinə əmin olun.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Səsi məcbur etmək məcburiyyətində qala bilərsiniz: (yuxarıdakı şəkil 1 -ə baxın)
$ sudo raspi -config -> 7 Ətraflı Seçim -> A4 Audio
2) Səs və mətndən-nitqə uyğunluğu təsdiqləndikdən sonra barkod oxuyucusunu yoxlayın:
cd/var/www/html/upc/binsudo python./test.py
Barkod skan edərkən rəqəmsal bir barkod nömrəsi görünməlidir. (Test proqramına audio çıxış və ya verilənlər bazası əlaqələri daxil deyil.)
3) Bütün bunlar yaxşıdırsa, səhv mesajları üçün "nohup.out" faylını yoxlayın:
cd/var/www/html/upc/binsudo cat nohup.out
Çox güman ki, çatışmayan paketlər və ya pis icazələr (və ya koddakı HATALAR!). Əməliyyat sisteminizin yeniləndiyinə əmin olun və install.sh -i yenidən başladın.
İnşallah indiyə qədər işləyirsən!
Addım 10: III hissə - Veb Server
MİLYONLARca UPC kodu olduğundan və ən çox açıq olan (yəni pulsuz) mövcud verilənlər bazası yalnız kiçik bir kod alt kodudur, bu layihə ərzaq məhsulları üçün UPC kodlarına yönəlib. Bura bir neçə yüz min əşya daxildir, amma çoxu tapılmayacaq.
UPC Veritabanını əlavə etməli və ya yeniləməlisinizsə, iki proqram mövcuddur; bir əmr satırı və bir veb brauzeri. (rəqəmləri UPC maddə nömrənizlə əvəz edin)
$ cd/var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 "Yeni məhsulum"
Bu verilənlər bazasına bir qeyd əlavə edəcək. Əks təqdirdə, veb brauzer DB funksiyasından istifadə etmək tövsiyə olunur.
Web Server GUI üçün moruqun IP ünvanına ehtiyacınız var.
IP ünvanını tapmaq üçün istifadə edə bilərsiniz:
$ host adı -I 192.168.1.108
Bir kompüter brauzerindən aşağıdakı ünvana keçin: https://192.168.1.108/upc/ Yuxarıdakı Şəkil 2 -də olduğu kimi bir ekran görməlisiniz.
Əgər belədirsə, qeydləri əlavə edə/yeniləyə və silə bilərsiniz. Verilənlər bazasının sonuna əlavə edildikdə ən yeni qeydlərinizi görmək üçün (‘> |’) “son qeyd” düyməsini istifadə edərək Son Səhifəyə gedin.
TƏHLÜKƏSİZLİK Bu veb xidmətinin təmin edilmədiyini (heç bir doğrulama, heç bir SSL yoxdur), buna görə də onu ən yaxşı İnternetə çıxarmayın. (Ancaq WiFi giriş nöqtəsi olaraq qurulmadığı üçün mağazaya aparmaq təhlükəsizdir.)
Şəxsi məlumatlar olmadığından, UPC məlumatlarını kiminsə əlindən alması ən pis şey ola bilər.
Başqalarının daxil ola bilməməsi üçün xüsusi IP ünvanlarına girişi də məhdudlaşdıra bilərsiniz. Yalnız icazə vermək istədikləriniz üçün IP -ləri bura daxil edin. Qalanların hamısının girişi bloklanacaq:
$ sudo vi /etc/lighttpd/lighttpd.conf
$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd yenidən başladın
Ayrıca, standart PI parolunu dəyişdirin! Hər kəs standart pi/moruq olduğunu bilir
$ passwd
Addım 11: Veb serverində problemlərin aradan qaldırılması
Brauzerinizdən istifadə edərək Raspberry -nin IP ünvanına daxil olun, məsələn:
192.168.1.108/
Varsayılan ekranı /var/www/html/index.html saytından görməlisiniz (yuxarıdakı Şəkil 1)
Veb serverinin işlədiyinə də əmin olun:
$ ps -ef | grep lighttpd
PHP -nin yaxşı olduğunu yoxlamaq üçün bir php test faylı yaradın:
$ sudo nano /var/www/html/phpinfo.php
Sonra https://192.168.1.108/phpinfo.php ünvanına daxil olun
Yuxarıdakı Şəkil 2 kimi bir ekran görməlisiniz
Səhvlər və ya boş ekranlar alsanız, səhvləri yoxlayın
$ sudo cat /var/log/lighttpd/error.log
Yenə də install.sh -in yenidən işə salınması çatışmayan asılılıqları düzəldə bilər.
Addım 12: Əlavə
Böyük bir UPC verilənlər bazasını əlçatan etmək üçün BÜYÜK TƏŞƏKKÜRLƏR aşağıdakılara gedir.
Baqqal UPC DB -ni açın
www.grocery.com/open-grocery-database-proje…
Məlumat DB -ni açın
www.grocery.com/open-grocery-database-proje…
www.upc-search.org/perl/upc-search.pl?q=84…
Sadə veb CRUD GUI üçün EasyUI sayəsində
www.jeasyui.com/index.php
Tövsiyə:
Simsiz SD Kart Oxuyucusu [ESP8266]: 10 addım (şəkillərlə)
Simsiz SD Kart Oxuyucusu [ESP8266]: USB-nin universal olması lazım idi və əsas məqsəd digər cihazlarla asanlıqla dəyişdirilə bilən bir interfeys qurmaq idi, lakin illər keçdikcə bu fikir boşa çıxdı. Bu USB portlarının çox sinir bozucu variantları var
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: 11 addım (şəkillərlə)
Barmaq izi skaneri və RFID oxuyucusu olan elektrikli qapı kilidi: Layihə, düymələrdən istifadə etmənin qarşısını almaq üçün dizayn edildi, məqsədimizə çatmaq üçün optik barmaq izi sensoru və Arduino istifadə etdik. Ancaq oxunmaz bir barmaq izi olan insanlar var və sensor onları tanımır. Sonra düşünərək
4x4 elektron şahmat taxtasının nümayişi/ Arduino Mega + RFID oxuyucusu + Hall effektli sensorlar ilə: 7 addım
4x4 Elektron Şahmat Lövhəsinin Demosu/ Arduino Mega + RFID Oxuyucusu + Zal effekti Sensorları ilə: Salam ustalar, mən Tahir Miriyevəm, Orta Doğu Texniki Universitetinin 2018 məzunu, Ankara/ Türkiyə. Tətbiqi Riyaziyyat ixtisasına yiyələnmişəm, amma həmişə elektronika, dizayn və proqramlaşdırma ilə bağlı bəzi əl işləri ilə məşğul olan şeylər etməyi çox sevirdim
USB Barkod Skaner (Raspberry Pi): 4 addım
USB Barkod Skaneri (Raspberry Pi): Raspberry Pi ilə bir USB barkod skanerinin necə qurulacağına dair əsas dərslik
PiTextReader-Görmə qabiliyyəti zəif olan istifadə üçün asan bir sənəd oxuyucusu: 8 addım (şəkillərlə)
PiTextReader-Görmə qabiliyyətinin pozulması üçün İstifadəsi asan bir Sənəd Oxuyucusu: Baxış Yeniləmə: Qısa video demo: https://youtu.be/n8-qULZp0GoPiTextReader, görmə qüsurlu birisinin zərflərdən, məktublardan və digər əşyalardan mətni "oxumasına" imkan verir. Maddənin bir görüntüsünü çəkir, OCR (Optical Char…) istifadə edərək düz mətnə çevirir