Мазмуну:
- Жабдуулар
- 1-кадам: HC-SR04 туташуу
- 2 -кадам: Mosquitto жана Paho MQTT
- 3 -кадам: Ultrasonic Sensor үчүн Python программасы
- 4-кадам: Node-RED
- 5 -кадам: маалыматтарды каттоо
- 6 -кадам: Макет
- 7 -кадам: Жыйынтык
Video: Таштанды системасы: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:39
Биз акыр -чикирди эффективдүү кылуу үчүн коңшулуктун таштандыларын толтурууну же коңшулуктагы ар бир таштандыдагы сенсорду көзөмөлдөөгө аракет кылууну чечтик. Биз жүк ташуучу унаа жыйноо үчүн эки жумада бир келип турса, мен же менин кошунам бир аз ыргытып жиберсе эмне болот деп ойлодук. Аймактын жарымы таштанды челектерин толук жөнөтпөгөн жүк ташуучу машинаны жөнөтүү натыйжасыз болбойт беле? Эгерде кошунабыздын таштандылары толуп, меники толуп, алардыкы бош болсо тескерисинче алардын таштандыларын колдоно алса сонун болмок. Биз бул долбоорду чечүүгө аракет кылуу үчүн малина пи менен бирге HC-SR04 УЗИ сенсорун колдонууну чечтик.
Жабдуулар
УЗИ сенсор (HC-SR04)
Raspberry Pi (биз Pi 4 Model B колдондук)
Breadboard
Өтмө кабелдер
Резисторлордун жуптары (3 x 1k ohm)
1-кадам: HC-SR04 туташуу
Биз Raspberry Pi колдонуп жаткандыктан, биз 3.3vге гана уруксат бергендиктен, Piнин GPIO казыктарына кирген чыңалууну жөнгө салуу үчүн чыңалуу бөлүштүргүчтү колдонушубуз керек. HC-SR04 5V колдонот, бирок аны Пи-ге туташтырууда 3.3В чейин түшүрүү керек. Тиешелүү түрдө 5V жана жер казыктарын туташтырыңыз жана программаңызга ылайык эхо жана триггер казыктарын урматтуу казыктарга тиркеңиз. Биздин программада биз тиешелүүлүгүнө жараша эхо жана триггер үчүн 23 жана 24 -пиндерди колдондук.
2 -кадам: Mosquitto жана Paho MQTT
Пи менен иштөө үчүн УЗИ сенсорун алуу үчүн Pythonдо программалоону баштоодон мурун, биз Node-RED программалык камсыздообуз менен байланышуу үчүн УЗИ сенсорун алуу үчүн бул тиркемелерди орнотушубуз керек. Mosquitto - бул MQTT брокери, сиз аны Pi боюнча колдоно аласыз, ал эми Paho MQTT - бул сенсорго MQTT брокери менен байланышуу үчүн Pythonдо код коюуга мүмкүндүк берген китепкана. Экөөнү тең орнотуу үчүн, бул буйруктарды Pi терминалыңызга териңиз
sudo apt update
sudo apt install -y mosquitto mosquitto -clients
sudo apt-get python3-pip орнотуу
sudo pip3 paho-mqtt орнотуу
3 -кадам: Ultrasonic Sensor үчүн Python программасы
Бул мен сенсордон келген маалыматтарды окуп, MQTT брокерине жарыялаган программа.
4-кадам: Node-RED
Кээ бир түйүндөр программада алдын ала орнотулган эмес, андыктан аны палитрадан орнотууңуз керек болот. Сиз орнотушуңуз керек болгон түйүн-кызыл такта жана түйүн-кызыл-түйүн-sqlite.
Бул жерде биз программалоо программабызды жана сенсорду колдоно баштайбыз. Сизге керек болгон биринчи түйүн MQTT-түйүнү жана бул программага маалыматтарды жөнөтүү үчүн жогорудагы программаны иштетүүчү сенсорубузду колдонууга мүмкүндүк берет. Биз колдонгон диапазон түйүнү биздеги баалуулуктарды бурат (б.а. программадан 5см толгон, ошондуктан биз аны 100%айландырабыз). Диапазон түйүнүнөн кийин бизде 2 функционалдык түйүн бар, алардын бири панелибизге билдирүүнү көрсөтүү үчүн, экинчиси таштанды толгонун визуалдык түрдө көрсөтүү үчүн. Функция түйүндөрүнүн программасы тиркелет.
Мүмкүн болсо, бул агымды бир нече УЗИ сенсорлору үчүн колдонууга болот. Биздин долбоор үчүн, бирок биз сенсорлорго колубузду тийгизе албагандыктан, симуляциялык маалыматтарды жасоого туура келди. Муну жасообуз абдан окшош, бирок бизде колдонуучу таштандылардын ар бирине 1-10 пайызды туш келди кошуу үчүн чыкылдата турган баскычтар бар. Биз 2 баскычты колдондук, бири таштандыга, экинчиси тазалоого. Ченегич, билдирүүлөр жана индикатор таштандыларды эсептөөнүн жана сактоонун коду дагы эле бирдей, бирок бир аз башкачараак.
5 -кадам: маалыматтарды каттоо
Жүк ташуучу унаа таштандыларды бошотуу үчүн келгенде, таштандылардын толгонун каттоону туура деп чечтик. Sqlite түйүнүнүн жардамы менен биз маалыматтарды окууга жана жазууга жөндөмдүүбүз, бул аны Pi үчүн сактайт. Бул түйүндү мен мурда айткандай орнотушуңуз керек.
Маалыматтарды түзүү жана каттоо кадамдары төмөнкүдөй жүрөт:
1. Маалыматтар базасын түзүү
2. Маалыматтарды жазыңыз
3. Биздин тактадан көрсөтүү үчүн маалыматтарды тартыңыз
4. Тазалоо жана маалыматтарды жок кылуу
SQLдин иштөө ыкмасы - бул TABLE CREATE, INSERT INO, SELECT FROM, and DELETE FROM деген теманы аткарышыңыз керек. Убакыт белгилеринин түйүндөрүн колдонуу менен биз ошол функциялардын ар бирин аткарган sqlite түйүнүнө темаларды аткара алабыз (түзүү, киргизүү, тандоо жана жок кылуу). Биз бир гана жолу маалымат базасын түзүшүбүз керек жана аны бүтүргөндөн кийин биз ага маалыматтарды каттай алабыз. Маалыматтар базасы түзүлгөндөн кийин, биз маалыматтарды каттай алабыз жана жүк ташуучу унаа келгенде, кайра кирүү үчүн колдонуучунун киргизүүсүн колдондук. Биз муну жасадык, сиз жүк ташуучу машинанын келүүсүнө уруксат берилмейинче, маалыматты каттай албайсыз, ал 80 ташый турган 5% таштанды (толгон деп эсептелет). Биз дагы диапазондогу түйүндү 500дү кайра 0-100%га чейин масштабдоо үчүн колдондук. Кааласак, бизде бардык маалыматтарды базадан жок кылуу мүмкүнчүлүгү бар. UI стол түйүнү - бул биздин таблицада столду жакшы форматта көрүүгө мүмкүнчүлүк берүүчү түйүн.
6 -кадам: Макет
Мунун баары бүткөндөн кийин сиз Node-REDдин жардамы менен каалаган макетти түзө аласыз. Капталдагы өтмөктө сиз аларды каалагандай жайгаштыра аласыз жана сизде дагы көптөгөн ыңгайлаштыруу параметрлери бар. Ошондой эле менин бүт программамдын агымы тиркелет.
7 -кадам: Жыйынтык
Бул долбоорду аяктагандан кийин, биз программаны андан ары өстүрүүнү көрө турган жерлер бар. Мен эч качан автоматтык түрдө жургузуунун жолун тапкан жокмун, анткени биз интервалда каттоону гана жасай алдык жана таштанды ташуучу унаа бир жолу келсе, бизге кайталанган сандардын кереги жок. Менимче, бул жарым -жартылай биз функционалдык түйүндөргө жана программалоого көз каранды кылууну чечкенибизден улам, анткени биз бул программалоого ыңгайлуубуз. Бүткөндөн кийин изилдеп чыккандан кийин, бардыгы үчүн жасалган түйүндөр бар экени айкын болду жана эгер биз мурда которгучтун жана rbe түйүндөрүнүн функциясын тапсак, жашоону бир топ жеңилдете алмак. Биз иштей албаган УЗИ сенсорлору үчүн жасалган түйүн да бар болчу. Бул ишти жөнөкөйлөтмөк, анткени MQTT же Python программасына муктаждык болбойт, анткени бул триггер жана жаңырык казыктары бар түйүн. Биз жогоруда көргөндөй Python программасын жасап, анын тегерегинде иштөөнү чечтик. Node-REDге чөмүлүүнү каалагандар үчүн эң чоң кеңеш-бул ар бир агым иштеп жаткандыгын жана сиз каалаган/керектүү нерсени чыгарып жаткандыгын аныктоо үчүн көптөгөн мүчүлүштүктөрдү оңдоо түйүндөрүн колдонушуңуз керек.
Сунушталууда:
ML менен Pi таштанды классификаторун жасаңыз!: 8 кадам (сүрөттөр менен)
ML менен Pi таштанды классификаторун жасаңыз!: "Каякка барат?!" & Ampquot катары белгилүү болгон Таштанды классификатору долбоору нерселерди тезирээк жана ишенимдүү ыргытуу үчүн иштелип чыккан. Бул долбоор Machine Learning (ML) моделин колдонот Лобеде үйрөтүлгөн, башталгычтарга ылайыктуу (код жок!)
Автоматтык таштанды кутусу: 7 кадам
Автоматтык таштанды кутусу: Бул таштанды челегинин автоматтык түрдө ачылышын аныктоочу кыймыл. Бул Wi -Fi байланышы бар жана ал толгондо текст кабарын жөнөтөт. Бул Массачусетс университетинде ECE -297DP үчүн жасалган - Амхерст. Бул курстун негизги максаты - тажрыйба топтоо
Түстөрдү сорттоо системасы: Arduino негизделген системасы эки кур менен: 8 кадам
Түстөрдү сорттоо системасы: Arduino негизделген эки белдемдүү система: Өнөр жай тармагындагы продукцияларды жана буюмдарды ташуу жана/же таңгактоо конвейердик линиялардын жардамы менен жүргүзүлөт. Бул курлар нерсени белгилүү бир ылдамдык менен бир чекиттен экинчи пунктка жылдырууга жардам берет. Кээ бир иштетүү же идентификациялык тапшырмалар болушу мүмкүн
Автоматтык таштанды кутусу: 6 кадам
Автоматтык таштанды челеги: Бул, балким, эң ыңгайлуу таштанды челеги, ал биз сыяктуу жалкоо адамдар үчүн иштелип чыккан. Кээде урнанын капкагы кир болушу мүмкүн, анда бизде жок бактериялар жана вирустар бар
Arduino итке каршы таштанды кутусу: 6 кадам (сүрөттөр менен)
Ардуино иттерге каршы таштанды кутусу: Бул долбоордо мен сизге күлкүлүү, бирок иштөөчү ыкманы кантип куруу керектигин көрсөтүп берем, сиздин иттериңиздин таштанды челегине киришине жол бербөө үчүн