Съдържание:

Raspberry Pi Talking Barcode Reader: 12 стъпки
Raspberry Pi Talking Barcode Reader: 12 стъпки

Видео: Raspberry Pi Talking Barcode Reader: 12 стъпки

Видео: Raspberry Pi Talking Barcode Reader: 12 стъпки
Видео: RASPBERRY PI TALKING BARCODE READER 2024, Ноември
Anonim
Говорещ четец на баркод Raspberry Pi
Говорещ четец на баркод Raspberry Pi

Фиг.1 Скенер за баркод от DX.com

Общ преглед

Актуализация: Налична е кратка видео демонстрация

Майка ми вече не може да чете етикети върху хранителни стоки, затова отидох да търся решения. След като видях, че четците на баркод за незрящи струват много стотици долари, исках да видя какво може да се направи с помощта на Raspberry Pi и USB четец за баркод.

Друга ключова имитация беше, че това трябва да работи БЕЗ интернет връзка (например в магазин или къща на приятел). Така че базата данни и текст в реч трябваше да бъдат самостоятелни.

Опитах базирана на камера версия на четец на баркодове, но осветлението и позицията на камерата предизвикаха проблеми с надеждността за някой, който не вижда ясно. Те също изискват зрение за настройване и използване на приложението. Затова преминах към USB лазерен четец на баркодове, особено след като сега те са достъпни за под 30 долара и Raspbian Jessie ги поддържа веднага.

Изпробвах и новата Amazon Dash Wand, но тя не говори сканирания елемент и изисква работа с интернет.

Идеята беше да се сканира елемент и Raspberry да запита вътрешна база данни с UPC кодове и след това да произнесе описанието на продукта с помощта на текст в реч.

За да направя устройството възможно най -малко, исках да използвам Raspberry Pi Zero. Исках също да захранвам устройството от батерията.

За да се изпълнят тези изисквания, бяха необходими някои компромиси. Тъй като Zero няма външен аудио жак, използвах повторно аудио дизайна от моя проект „Earthquake Pi“, тъй като беше на ниска цена (около 6 долара) и много малък. Като алтернатива може да бъде възможно заместването на „Един транзисторен аудио за Pi Zero“.

За лазерния скенер за баркод намерих такъв от DX.com. Захранва се от Raspberry USB и струва около 25 долара. (вижте части по -долу)

Стъпка 1: АКТУАЛИЗИРАНЕ

С пристигането на Raspberry Pi Zero W ще премина към него. Всичко тук е същото, освен че трябва да настроите WiFi връзката към Pi. Това означава, че няма да се нуждаете от USB хъб за Zero за настройка и използване.

Можете да настроите WiFi, като използвате:

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

Знаеше ли?

Ако инсталирате Raspbian Jessie на SD карта с помощта на компютър с Windows, можете да създадете два файла на картата, за да конфигурирате WiFi и SSH достъп, преди да го стартирате на Raspberry?

За това приемете, че вашата SD карта в момента е монтирана като K: на вашия компютър:

1) Инсталирайте най -новото изображение на Raspbian Jessie на SD. За този проект Джеси Лайт трябва да работи.

www.raspberrypi.org/downloads/raspbian/

2) С бележник създайте файл, наречен просто „ssh“и използвайте Запазване като „Всички файлове“в K: / ssh

Файлът може да съдържа всичко. Името на файла е важно. НЕ трябва да бъде „ssh.txt“!!!

3) С бележник създайте файл, наречен „wpa_supplicant.conf“със следното:

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

мрежа = {

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

Използвайте Запазване като „Всички файлове“на K: / wpa_supplicant.conf Отново не позволявайте на Notepad да го променя на „wpa_supplicant.conf.txt“!!

Когато стартирате малината за първи път, Джеси ще ги потърси и ще се свърже с вашия Wifi. Ще трябва да потърсите на вашия рутер IP адреса, тъй като той е автоматично присвоен.

Стъпка 2: Списък на частите

  • Raspberry Pi Zero (или който и да е Raspberry Pi, ако размерът не е проблем)
  • USB лазерен скенер за баркод

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

  • За Raspi Zero добавете Adafruit I2S 3W усилвател клас D
  • Малък високоговорител. (За Pi 2, 3 използвайте външен усилвател и високоговорител.)
  • USB Micro към USB OTG адаптер
  • 5V 1Amp USB батерия като
  • USB към micro USB кабел за батерия.
  • USB и Ethernet хъб (поне за първоначална настройка, не е необходим за Zero W или Raspi 2, 3)
  • Софтуер от GITHUB:

Стъпка 3: USB лазерен четец на баркодове

USB лазерен четец на баркодове
USB лазерен четец на баркодове

Лазерните четци на баркод са по -прощаващи в способността си да сканират UPC етикет, отколкото камерите. Те също работят добре дори при лошо осветени или лошо поставени етикети.

Ще ви е необходим USB към USB микро адаптер, за да го включите в Zero.

Ръкохватката и спусъкът на скенера го правят лесен за използване.

Той също така дава обратна връзка, когато успешно сканира етикет.

Бъдещи задачи:

В окончателния дизайн бих отрязал кабела, за да го скъся и да запоя директно към USB пиновете на нулата, за да намаля размера и вероятността от повреда на конектора. Нулата и батерията ще бъдат прикрепени директно към долната част на дръжката на скенера в 3D печатна кутия.

Стъпка 4: UPC база данни

Това е най-слабо покритата част от проекта, тъй като има буквално милиони UPC кодове и много малко бази данни с отворен код, достъпни за изтегляне. За съжаление, повечето бази данни UPC са доста скъпи и изискват интернет връзка.

Успях да събера няколко бази данни с отворен код (източници в Приложението по-долу), но дори и с близо 700 000 елемента в него, огромен брой липсват.

За тази цел съм направил две неща; единият е да се съсредоточим върху артикулите за хранителни стоки, а другият е да добавим уеб сървър към Raspberry, за да позволим ръчно добавяне на нови UPC кодове, но това изисква поне свързаност с локална мрежа.

Бъдещи задачи:

Бих направил Zero W „гореща точка“, така че да можете да се свържете с него навсякъде, за да добавите нови UPC кодове.

Стъпка 5: Текст в реч

Използвах програмата за преобразуване на текст в реч, наречена „Flite“, тъй като тя имаше най -добрия компромис между качеството на гласа и скоростта на преобразуване на Zero. Други звучаха малко по -добре, но бяха твърде бавни за преобразуване.

Можете също да разгледате урока на Adafruit:

Имайте предвид, че ще отнеме малко „обучение на ушите“, за да свикнете с флексията на речта, но това не е толкова лошо.

Сканирането на същия елемент отново ще повтори звука.

Бъдеще ToDo

Може би добавете жак за слушалки, за да улесните възрастните хора да чуват гласа на шумни места.

Стъпка 6: Захранване на батерията

Системата може да работи от 5V USB батерия, например използвана за презареждане на мобилни телефони.

Уловката е, че когато изключите батерията или батерията умре, Pi ще се срине с шанс да повреди SD устройството.

За да се реши това, е необходим бутон, който изпълнява команда за изключване. Вероятно ще използвам такъв:

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

(Да … още едно „Бъдеще ToDo!“)

Стъпка 7: Част I - Добавяне на аудио към Pi Zero

Част I - Добавяне на аудио към Pi Zero
Част I - Добавяне на аудио към Pi Zero
Част I - Добавяне на аудио към Pi Zero
Част I - Добавяне на аудио към Pi Zero
Част I - Добавяне на аудио към Pi Zero
Част I - Добавяне на аудио към Pi Zero

(Пропуснете тази част, ако не използвате нула!)

На Pi Zero ще трябва да добавите външно аудио, тъй като не е вградено. Използвах евтиния „Adafruit I2S 3W усилвател MAX98357A“

Това изисква настройка с помощта на отличния урок на Adafruit на адрес:

Както е показано в частта за окабеляване на урока, свържете:

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

Свържете малък високоговорител към аудио кабелите на дъската.

Pi Zero Adafruit Audio Software Setup Също така е показано в урока за настройка на софтуера Adafruit, изпълнете командата CURL по -долу:

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

След рестартирането тествайте аудиото с помощта на тест на високоговорителите:

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

Ако имате проблеми, върнете се през урока Adafruit, започвайки от прегледа. Може да се наложи да преминете през стъпките „Подробна инсталация“в урока, за да проверите всички актуализирани файлове.

Важни задължителни стъпки за Zero & Max98357 Audio: По подразбиране звукът ALSA работи само в стерео, докато Flite текст в говор е моно. Също така, аудиото има „пукане“в него всеки път, когато започне да се възпроизвежда.

(Вижте:

Трябва да направите следното:

1) Добавете ред към /boot/config.txt

$ sudo nano /boot/config.txt

dtoverlay = i2s-mmap

2) Заменете /etc/asound.conf

$ 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" канали 2}} ctl.dmixer {type hw card 0}

3) Рестартирайте Pi.

Опитайте отново Speaker-test. Сега трябва да звучи по -добре. След като завършите урока по настройка, включително аудио тестове, звукът трябва да е готов.

Обърнете внимание, че може да искате да добавите жак за слушалки за аудио, ако го занесете в магазин за хранителни стоки или в шумна среда.

Стъпка 8: Част II - Инсталиране на софтуер

Това предполага, че вече имате инсталиран Raspbian Jessie и имате достъп до командния ред на Linux. Не се нуждаете от GUI версията на Raspbian, но е добре да използвате.

В момента НЕ се нуждаете от включен USB скенер, в случай че имате нужда от USB порта за Ethernet или клавиатура/мишка.

Уверете се, че вашата ОС е актуална:

$ sudo apt-get update $ sudo apt-get надстройка

От командния ред отидете в началната директория на pi и изтеглете хранилището GITHUB:

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

Това ще отнеме известно време, особено ако това е първият път и уеб сървърът и PHP трябва да бъдат инсталирани или актуализирани. Ако е необходимо, можете да стартирате това повече от веднъж. Наред с други неща, това инсталира баркод файловете и UPC базата данни на:/var/www/html/upc

След това редактирайте /etc/rc.local и добавете следния ред преди „изход 0“

$ sudo nano /etc/rc.local

fi sudo /var/www/html/upc/bin/run.sh изход 0

След като инсталацията приключи, изключете Pi и включете USB четеца за баркод и рестартирайте.

$ sudo изключване сега

Включете го отново и трябва да чуете кратка реч за стартиране.

Ако е така, опитайте да сканирате баркод от хранителен продукт. Ако всичко е наред, трябва да го чуете да говори елемента (или да каже „Не е намерен“). В противен случай вижте следващото ръководство за отстраняване на неизправности.

Стъпка 9: Отстраняване на неизправности

Отстраняване на неизправности
Отстраняване на неизправности

Ако не чувате никакви звуци, ще трябва да опитате следните команди:

1) Проверете дали звукът от текст в реч работи:

$ sudo flite -voice awb -t "тестване"

Ако получите грешка, уверете се, че е инсталиран flite:

$ sudo apt install flite

Ако получите следната грешка, уверете се, че сте актуализирали /boot/config.txt и /etc/asound.conf, показани в секцията за аудио настройка по -горе на Raspi Zero's: audio_open_alsa: не успя да зададе броя на каналите на 1. Невалиден аргумент.

Ако не получите грешка и звук, уверете се, че вашият малинов звук работи.

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

1) Може да се наложи да извадите звука от аудио жака: (вижте фиг.1 по -горе)

$ sudo raspi -config -> 7 Разширени опции -> A4 Audio

2) След като сте проверили качеството на аудио и текст в реч, проверете четеца на баркод:

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

Когато сканирате баркод, трябва да видите цифров номер на баркод. (Тестовата програма НЕ включва аудио изход или връзки към база данни.)

3) Ако всичко това е добре, проверете файла „nohup.out“за съобщения за грешка:

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

Вероятно проблемите са липсващи пакети или лоши разрешения (или грешки в кода!). Уверете се, че вашата операционна система е актуална и стартирайте отново install.sh.

Надяваме се, че вече работите!

Стъпка 10: Част III - Уеб сървър

Част III - Уеб сървър
Част III - Уеб сървър

Тъй като има МИЛИОНИ UPC кодове и повечето публично достъпни (т.е. безплатни) бази данни са само малка подгрупа кодове, този проект се фокусира върху UPC кодове за хранителни стоки. Той включва няколкостотин хиляди артикула, но много, много няма да бъдат намерени.

Ако трябва да добавите или актуализирате UPC базата данни, има две налични програми; един от командния ред и уеб браузър. (заменете цифрите с вашия UPC номер на артикула)

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

$ sudo./addDB.sh 01234567890 „Моят нов елемент“

Това ще добави запис към базата данни. В противен случай се предлага използването на функцията за уеб браузър DB.

За GUI на уеб сървъра се нуждаете от IP адреса на вашата малинка.

За да намерите IP адреса, можете да използвате:

$ име на хост -I 192.168.1.108

От браузър на компютър отидете на: https://192.168.1.108/upc/ Трябва да видите екран, подобен на този на фиг.2 по -горе.

Ако е така, можете да добавяте/актуализирате и изтривате записи. Придвижете се до последната страница, като използвате бутона („> |“) „последен запис“, за да видите най -новите си записи, докато са добавени към края на базата данни.

СИГУРНОСТ ЗАБЕЛЕЖКА, че тази уеб услуга не е защитена, (без удостоверяване, без SSL), така че най -добре не я излагайте на публичен Интернет. (Но тъй като не е настроен като WiFi точка за достъп, е безопасно да се носи до магазина.)

Въпреки това, тъй като няма лични данни за него, най -лошото, което може да се случи, е някой да манипулира UPC данните.

Можете също така да ограничите достъпа до конкретни IP адреси, така че никой друг да не може да влезе. Просто заменете IP (ите) тук с тези, които искате да разрешите. Всички останали ще бъдат блокирани за достъп:

$ sudo vi /etc/lighttpd/lighttpd.conf

$ HTTP ["remoteip"] = ~ "127.0.0.1 | 192.168.1.108" {url.access-deny = ("")} $ sudo /etc/init.d/lighttpd рестартиране

Също така, ПРОМЕНЕТЕ стандартната PI парола! Всеки знае, че по подразбиране е pi/raspberry

$ passwd

Стъпка 11: Отстраняване на неизправности в уеб сървъра

Отстраняване на неизправности в уеб сървъра
Отстраняване на неизправности в уеб сървъра
Отстраняване на неизправности в уеб сървъра
Отстраняване на неизправности в уеб сървъра

Използвайки браузъра си, отидете на IP адреса на Raspberry, например:

192.168.1.108/

Трябва да видите екрана по подразбиране от /var/www/html/index.html (Фиг.1 по -горе)

Уверете се също, че уеб сървърът работи:

$ ps -ef | grep lighttpd

За да проверите дали PHP е добър, създайте php тестов файл:

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

След това отидете на

Трябва да видите екран като Фиг.2 по -горе

Ако получите грешки или празни екрани, проверете за грешки в

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

Отново повторното стартиране на install.sh може да коригира липсващите зависимости.

Стъпка 12: Приложение

ГОЛЯМО БЛАГОДАРЯ отива на следното за предоставянето на голяма UPC база данни.

Отворете UPC DB за хранителни стоки

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

Отворете DB Data

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

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

Благодарение на EasyUI за простия уеб CRUD GUI

www.jeasyui.com/index.php

Препоръчано: