Mündəricat:

Raspberry Pi danışan barkod oxuyucusu: 12 addım
Raspberry Pi danışan barkod oxuyucusu: 12 addım

Video: Raspberry Pi danışan barkod oxuyucusu: 12 addım

Video: Raspberry Pi danışan barkod oxuyucusu: 12 addım
Video: Danışan heyvanlar Harun Məmmədov #1 2024, Noyabr
Anonim
Raspberry Pi danışan barkod oxuyucusu
Raspberry Pi danışan barkod oxuyucusu

Şə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

USB Lazer Barkod Oxuyucusu
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

I hissə - Pi Zero -ya səs əlavə etmək
I hissə - Pi Zero -ya səs əlavə etmək
I hissə - Pi Zero -ya səs əlavə etmək
I hissə - Pi Zero -ya səs əlavə etmək
I hissə - Pi Zero -ya səs əlavə etmək
I hissə - Pi Zero -ya səs əlavə etmək

(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ı

Giderme
Giderme

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

III hissə - Veb server
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ı

Veb serverində problemlərin aradan qaldırılması
Veb serverində problemlərin aradan qaldırılması
Veb serverində problemlərin aradan qaldırılması
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ə: