Мазмуну:
- 1 -кадам: UPDATE
- 2 -кадам: Бөлүктөрдүн тизмеси
- 3 -кадам: USB Laser Bar Code Reader
- 4 -кадам: UPC маалымат базасы
- 5-кадам: Тексттен сүйлөөгө
- 6 -кадам: Батарея кубаты
- 7 -кадам: I бөлүм - Pi Zeroго аудио кошуу
- 8 -кадам: II бөлүм - Программаны орнотуу
- 9 -кадам: Мүчүлүштүктөрдү оңдоо
- 10 -кадам: III бөлүм - Веб -сервер
- 11 -кадам: Веб -сервердеги көйгөйлөрдү чечүү
- 12 -кадам: Тиркеме
Video: Raspberry Pi Talking Barcode Reader: 12 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Fig.1 DX.com штрих -код сканери
Обзор
Жаңыртуу: Кыска видео демо жеткиликтүү
Апам мындан ары азык -түлүктөрдүн этикеткаларын окуй албайт, ошондуктан мен чечүүнүн жолдорун издедим. Сокурлар үчүн штрих -код окурмандар жүздөгөн долларларды иштеткенин көргөндөн кийин, мен Raspberry Pi жана USB штрих -кодун окуучу аркылуу эмне кылса болорун көргүм келди.
Дагы бир негизги имитация бул Интернет байланышы жок иштеши керек болчу (мисалы, дүкөндө же досунун үйүндө). Ошентип, маалымат базасы жана тексттен сүйлөө өзүнчө болушу керек болчу.
Мен штрих коддун окурманынын камерага негизделген версиясын сынап көрдүм, бирок жарык жана камеранын позициясы так көрө албаган бирөө үчүн ишенимдүүлүк көйгөйлөрүн жаратты. Булар да колдонмону орнотуу жана колдонуу үчүн көрүүнү талап кылган. Ошентип, мен USB Лазердик штрих -кодду окуучуга өттүм, айрыкча алар азыр 30 доллардан төмөн болгондо жана Raspbian Jessie аларды кутунун сыртында колдойт.
Мен ошондой эле жаңы Amazon Dash таякчасын сынап көрдүм, бирок ал сканерленген нерсени сүйлөбөйт жана иштөө үчүн интернет байланышы талап кылынат.
Идея бир нерсени сканерлеп, Raspberryден UPC коддорунун ички маалымат базасын сурап алуу жана андан кийин текстти сүйлөө аркылуу продукттун сүрөттөмөсүн айтуу болчу.
Бирдикти мүмкүн болушунча кичине кылуу үчүн, мен Raspberry Pi Zero колдонууну кааладым. Мен ошондой эле батарейканын кубатын өчүргүм келди.
Бул талаптарга жооп берүү үчүн кээ бир алмаштыруу керек болчу. Zeroдо тышкы аудио уячасы жок болгондуктан, мен "Earthquake Pi" долбоорунун аудио дизайнын кайра колдондум, анткени ал арзан (болжол менен $ 6) жана өтө кичинекей. Же болбосо, "Pi Zero үчүн бир транзистордун аудиосун" алмаштыруу мүмкүн болушу мүмкүн.
Лазердик штрих -код сканери үчүн мен DX.com сайтынан таптым. Бул Raspberry USB өчүрүлгөн жана болжол менен $ 25 турат. (төмөндөгү бөлүктөрдү караңыз)
1 -кадам: UPDATE
Raspberry Pi Zero W келиши менен, мен ага өтөйүн деп жатам. Бул жерде баары бирдей, бирок сиз Pi менен WiFi байланышын орнотушуңуз керек. Бул орнотуу жана колдонуу үчүн Zero үчүн USB хабдын кереги жок дегенди билдирет.
Сиз WiFi орното аласыз:
thepihut.com/blogs/raspberry-pi-tutorials/…
Сиз билесизби?
Эгерде сиз Windows PC аркылуу Raspbian Jessie'ни SD картага орнотсоңуз, анда аны Raspberryге жүктөө алдында WiFi жана SSH мүмкүнчүлүгүн конфигурациялоо үчүн картада эки файл түзө аласызбы?
Бул үчүн, сиздин SD картаңыз учурда сиздин компьютериңизде K: деп орнотулган деп ойлоңуз.
1) SDге акыркы Raspbian Jessie сүрөтүн орнотуңуз. Бул долбоор үчүн Jessie Lite иштеши керек.
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}
"Баардык файлдар" катары К колдонуңуз:
Малинаны биринчи жолу жүктөгөндө, Джесси буларды издеп, Wifiга туташат. IP дарегин роутериңизден издөө керек, бирок анын автоматтык түрдө дайындалганынан.
2 -кадам: Бөлүктөрдүн тизмеси
- Raspberry Pi Zero (же кандайдыр бир Raspberry Pi, эгер өлчөмү көйгөй болбосо)
-
USB лазер штрих -код сканери
www.dx.com/p/ls-4209-laser-bar-code-scanner…
- Raspi Zero үчүн Adafruit I2S 3W Class D күчөткүчүн кошуңуз
- Чакан спикер. (Pi 2, 3 үчүн, тышкы амп жана динамикти колдонуңуз.)
- USB Microдон USB OTG адаптеринеhttps://www.adafruit.com/products/2910
- 5V 1Amp USB батарейка пакети, мисалы:
- Батарея пакети үчүн USBден микро USB кабелине.
- USB & Ethernet хабы (жок дегенде баштапкы орнотуу иштери үчүн, Zero W же Raspi 2, 3 үчүн кереги жок)
- GITHUB программасы:
3 -кадам: USB Laser Bar Code Reader
Лазердик штрих кодду окугандар UPC энбелгисин сканерлөө жөндөмдүүлүгүн камераларга караганда кечиримдүү. Алар ошондой эле начар жарыктандырылган же начар коюлган энбелгилерде да жакшы иштешет.
Сизди нөлгө туташтыруу үчүн USBден USBге микро адаптер керек болот.
Сканердин кол кармагычы жана триггери аны колдонууну жеңилдетет.
Ал ошондой эле этикетканы ийгиликтүү сканерлегенде пикир берет.
Future ToDo:
Акыркы дизайнда, мен кыскартуу үчүн кабелди кесип салып, туташтыргычтын иштебей калышын жана ыктымалдуулугун азайтуу үчүн нөлгө USB казыктарына түз ээрчитим. Нөл жана батарея 3D принтерде сканер туткасынын түбүнө түз тиркелет.
4 -кадам: UPC маалымат базасы
Бул долбоордун эң начар камтылган бөлүгү, анткени миллиондогон UPC коддору жана жүктөө үчүн ачык булактардын маалымат базалары өтө аз. Тилекке каршы, UPC маалымат базаларынын көпчүлүгү абдан кымбат жана интернетке туташууну талап кылат.
Мен бир нече ачык булак маалымат базаларын чогулта алгам (төмөндөгү Тиркемедеги булактар), бирок анын ичинде 700 000ге жакын заттар болсо дагы, алардын көбү жок болуп жатат.
Ушул максатта мен эки нерсени кылдым; Бири азык -түлүк товарларына өзгөчө көңүл буруу, экинчиси Raspberryге жаңы UPC коддорун кол менен кошууга уруксат берүү үчүн веб -серверди кошуу, бирок бул жок дегенде жергиликтүү тармак байланышын талап кылат.
Future ToDo:
Мен жаңы UPC коддорун кошуу үчүн каалаган жерге туташуу үчүн Zero Wди "чекит" кылып коймокмун.
5-кадам: Тексттен сүйлөөгө
Мен "Flite" деп аталган текстти сүйлөө программасын колдондум, анткени ал нөлдүн үнүнүн сапаты менен конверсия ылдамдыгынын ортосунда эң жакшы компромисске ээ болчу. Башкалары бир аз жакшыраак угулду, бирок конвертациялоо үчүн өтө жай болушту.
Сиз ошондой эле Adafruitтин окуу куралын текшере аласыз:
Көңүл буруңуз, сүйлөө бурулушуна көнүү үчүн бир аз "кулак тренинги" талап кылынат, бирок бул өтө деле жаман эмес.
Ошол эле нерсени кайра сканерлегенде, аудио кайталанат.
Future ToDo
Балким, гарнитуранын уячасын кошуп, карыларга ызы -чуу болгон жерлерде үндү угууну жеңилдетүү үчүн.
6 -кадам: Батарея кубаты
Система уюлдук телефондорду толтуруу үчүн колдонулуучу 5В USB батареясынан иштей алат.
Батареяны сууруп салганыңызда же батарейкасы өлгөндө, Пи SD дискти бузуп алышы мүмкүн.
Муну чечүү үчүн, өчүрүү буйругун аткарган баскыч керек. Мен, балким, мындай бирөөнү колдоном:
www.element14.com/community/docs/DOC-78055…
(Ооба… дагы бир "Future ToDo!")
7 -кадам: I бөлүм - Pi Zeroго аудио кошуу
(Zero колдонулбаса, бул бөлүктү өткөрүп жибериңиз!)
Pi Zeroдо тышкы аудио кошуу керек болот, анткени ал орнотулбаган. Мен арзан баада "Adafruit I2S 3W Amplifier breakout MAX98357A" колдондум
Бул үчүн Adafruitтин эң сонун окуу куралын колдонуу менен орнотуу керек:
Окутуунун зым бөлүгүндө көрсөтүлгөндөй, туташыңыз:
• 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
Тактадагы аудио сымдарга кичине динамикти туташтырыңыз.
Pi Zero Adafruit Аудио Программасын Орнотуу Adafruit программалык камсыздоону орнотуу үйрөткүчүндө көрсөтүлгөндөй, төмөнкү CURL буйругун аткарыңыз:
$ curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash
Кайра жүктөөдөн кийин, спикер-тесттин жардамы менен аудиону текшериңиз:
$ Speaker -test -c2 --test = wav -w /usr/share/sounds/alsa/Front_Center.wav
Эгерде сизде көйгөйлөр болсо, Adafruit окуу куралы аркылуу кайра карап чыгыңыз. Жаңыртылган бардык файлдарды текшерүү үчүн үйрөткүчтөгү "Деталдуу орнотуу" кадамдарынан өтүшүңүз керек болушу мүмкүн.
Zero & Max98357 Аудио үчүн зарыл болгон маанилүү кадамдар: Демейки боюнча, 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 {hw card 0} pcm.! демейки {type plug slave.pcm "dmixer"} pcm.dmixer {type dmix ipc_key 1024 slave {pcm "hifiberry" channels 2}} ctl.dmixer {hw card 0}
3) Пиңизди кайра жүктөңүз.
Динамикти кайра сынап көрүңүз. Бул жакшыраак угулушу керек. Сиз аудио тесттерди кошкондо, орнотуу боюнча окуу куралын бүтүргөндөн кийин, үн даяр болушу керек.
Эске алыңыз, эгер сиз муну азык -түлүк дүкөнүнө же ызы -чуу болгон чөйрөгө алып барсаңыз, аудио үчүн гарнитура уячасын кошкуңуз келиши мүмкүн.
8 -кадам: II бөлүм - Программаны орнотуу
Бул сизде Raspbian Jessie орнотулган жана Linuxтун буйрук сабына кире алат деп болжолдонот. Сизге Raspbianнын GUI версиясынын кереги жок, бирок колдонууга жарайт.
USB Ethernet же клавиатура/чычкан үчүн USB портуна муктаж болсоңуз, учурда USB сканерин туташтыруунун кажети жок.
Сиздин OS жаңыртылганын текшериңиз:
$ sudo apt-get update $ sudo apt-get upgrade
Буйрук сабынан 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
Орнотуу аяктагандан кийин, Пиңизди өчүрүп, USB штрихкод окурманы туташтырып, кайра баштаңыз.
$ sudo азыр жабылат
Аны кайра күйгүзүңүз жана сиз кыска башталыш сөзүн угушуңуз керек.
Андай болсо, азык -түлүктөн штрих -кодду сканерлеп көрүңүз. Эгер баары ойдогудай болсо, анда сиз бул нерсени сүйлөп жатканын угушуңуз керек (же "Табылган жок" деп айтуу керек). Болбосо, кийинки мүчүлүштүктөрдү оңдоо көрсөтмөсүн караңыз.
9 -кадам: Мүчүлүштүктөрдү оңдоо
Эгерде сиз эч кандай үндөрдү укпасаңыз, анда төмөнкү буйруктарды аткарышыңыз керек болот:
1) Тексттен сөзгө аудио иштеп жатканын текшериңиз:
$ sudo flite -voice awb -t "тестирлөө"
Эгер ката кетсе, flite орнотулганын тактаңыз:
$ sudo apt flite орнотуу
Эгерде сиз төмөнкү катаны алсаңыз, жогоруда Raspi Zero’до Audio Setup бөлүмүндө көрсөтүлгөн /boot/config.txt жана /etc/asound.conf файлдарын жаңыртканыңызды текшериңиз: audio_open_alsa: каналдардын санын 1. Жараксыз аргументке койгон жок.
Эгер сиз ката жана үн албасаңыз, анда Raspberry аудиоңуз иштеп жатканына ишениңиз.
sudo aplay /usr/share/sounds/alsa/Front_Center.wav
1) Аудиону аудио уячасынан мажбурлап чыгаруу керек болушу мүмкүн: (жогоруда 1 -сүрөттү караңыз)
$ sudo raspi -config -> 7 Advanced Options -> 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 бөлүм - Веб -сервер
Миллиондогон UPC коддору болгондуктан жана көпчүлүк үчүн ачык (башкача айтканда бекер) маалымат базалары коддордун кичинекей гана бөлүгү болгондуктан, бул долбоор азык -түлүк үчүн UPC коддоруна багытталган. Ал бир нече жүз миң нерселерди камтыйт, бирок көптөрү табылбайт.
UPC маалымат базасын кошуу же жаңыртуу керек болсо, эки программа бар; бир буйрук сабы жана бир веб браузер. (сандарды UPC пунктуңуздун номери менен алмаштырыңыз)
$ cd/var/www/html/upc/bin
$ sudo./addDB.sh 01234567890 "Менин жаңы нерсем"
Бул маалымат базасына рекорд кошот. Болбосо, веб -браузер DB функциясын колдонуу сунушталат.
Web Server GUI үчүн, сиз малинанын IP дарегин керек.
IP дарегин табуу үчүн, сиз колдоно аласыз:
$ hostname -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/малина экенин билет
$ passwd
11 -кадам: Веб -сервердеги көйгөйлөрдү чечүү
Браузериңизди колдонуп, Raspberryдин IP дарегине өтүңүз, мисалы:
192.168.1.108/
Сиз /var/www/html/index.html баштапкы экранды көрүшүңүз керек (1 -сүрөт)
Ошондой эле веб -сервер иштеп жатканына ишениңиз:
$ ps -ef | grep lighttpd
PHP жакшы экенин текшерүү үчүн, php тест файлын түзүңүз:
$ sudo nano /var/www/html/phpinfo.php
Андан кийин https://192.168.1.108/phpinfo.php дарегине өтүңүз
Сиз жогоруда Fig.2 сыяктуу экранды көрүшүңүз керек
Эгерде сиз каталарды же бош экрандарды алсаңыз, каталарды текшериңиз
$ sudo cat /var/log/lighttpd/error.log
Дагы, install.shти кайра иштетүү жетишпеген көз карандылыктарды оңдой алат.
12 -кадам: Тиркеме
Чоң РАХМАТ чоң UPC маалымат базасын жеткиликтүү кылуу үчүн төмөнкүлөргө барат.
Азык -түлүк UPC DB ачыңыз
www.grocery.com/open-grocery-database-proje…
Маалымат ДБ ачуу
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
Сунушталууда:
Wireless SD Card Reader [ESP8266]: 10 кадам (сүрөттөр менен)
Wireless SD Card Reader [ESP8266]: USB универсалдуу болушу керек болчу, жана негизги максат-башка түзмөктөр менен интерфейсти оңой алмаштыруу, бирок көп жылдар бою бул идея талкаланган. Бул USB портторунун ар кандай варианттары бар, алар абдан капалантат
Apple Barcode Engraver (Photonics Hackathon Phablabs): 3 кадам
Apple Barcode Engraver (Photonics Hackathon Phablabs): Саламатсыздарбы, биздин Phablabs Photonics чакырыгынын бир бөлүгү катары, биз жемиштерге стикерлерди алмаштырууга жөндөмдүү түзүлүштү түзүүнү суранышты. Жана экологиялык жактан өзгөрүүнү каалайсызбы? Анда биз киргибиз келет
ScanUp NFC Reader/жазуучу жана азиздер, көрүүсү начарлар жана башкалар үчүн аудио жазгыч: 4 кадам (сүрөттөр менен)
ScanUp NFC Reader/жазуучу жана азиздер, көрүүсү начарлар жана башкалар үчүн аудио жазгыч: Мен өнөр жай дизайнын окуйм жана бул долбоор менин семестримдин иши. Максаты - көрүү жөндөмдүүлүгү начар жана азиз адамдарды SD картага WAV форматында жаздырууга жана ал маалыматты NFC теги менен чакырууга мүмкүндүк берген аппарат менен колдоо. Ошентип
TFT дисплейи бар Arduino RFID Reader: 7 кадам
TFT дисплейи бар Arduino RFID окурманы: Мен сизге TFT дисплейи менен дубалга орнотуу үчүн жакшы көрүнгөн RFID окурманын кантип жасоо керектигин көрсөтөм. Сиз тандаган MKR жана биздин Ар
Game Boy Reader Controller: 17 кадам (Сүрөттөр менен)
Game Boy Reader Controller: Бул Нускамада мен түзмөктү кантип жасаганымды түшүндүрүүгө аракет кылам. Бул Game Boy картридж окурманы катары иштейт, ал ROMду окуй алат жана Game Boy оюндун ОЗУсун окуй алат/жаза алат. автоматтык түрдө жүктөлөт, ошондо сиз аны ойной аласыз