Агуулгын хүснэгт:
- Хангамж
- Алхам 1: Цахилгаан хэлхээг угсрах
- Алхам 2: Манай RaspberryPi -ийг тохируулах
- Алхам 3: Арын хэсгийг тохируулах
- Алхам 4: Frontend -ийг тохируулах
- Алхам 5: Манай төслийн мэдээллийн санг импортлох
- Алхам 6: Манай төслийг эхлүүлэх
- Алхам 7: Кейс
- Алхам 8: Эцсийн бүтээгдэхүүнийг бишир
- Алхам 9: Асуудал
Видео: Холбоо барихгүй усан оргилуур: 9 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:01
MCT -ийн оюутан болсон эхний жилийнхээ төгсгөлд жилийн турш курсээс олж авсан бүх ур чадвараа агуулсан төсөл зохиох даалгаврыг надад өгсөн.
Би багш нарын тавьсан бүх шаардлагыг шалгаж, миний хувьд хөгжилтэй байх төслийг хайж байсан. Сэдвийг хайж байхдаа Ковид-19-ээс урам зориг авахаас өөр аргагүй байв (Энэ нь дэлхий даяар дэгдэхээс өмнөхөн байсан юм.) Би усан оргилуур/диспенсер багатай холбоо барих замыг сонгосон. ус гарахаас өмнө зарим товчлуурыг даралгүйгээр ус уух.
Энэхүү төсөл нь усны гаралтын доор аяга, шил байрлуулсан эсэхийг тодорхойлохын тулд зайны мэдрэгчийг ашигладаг бөгөөд усан оргилуур нь 60 секундын турш (100 мл / минут) ус гаргах болно. Энэ нь илүү тууштай болгохын тулд юм, учир нь шилийг сугалсан эсэхийг илрүүлэх нь хэтэрхий хэцүү/удаашралтай байсан тул таймерыг байрлуулсан болно. Шилээ 100 мл усаар дүүргэсний дараа та 5 секунд хүлээх хэрэгтэй бөгөөд хэрэв шил нь зайны мэдрэгчийн өмнө хэвээр байвал дахин дүүргэх болно (энэ нь хоёр өөр дүүргэх хооронд 5 секундын завсарлага байна гэсэн үг юм). зүйлс).
Хангамж
Бүрэлдэхүүн хэсгүүд
- 1x RaspberryPi (би 4-р хувилбарыг ашигласан боловч хуучин хувилбарууд бас ажиллах боломжтой)- 1х S8050 транзистор эсвэл 1х PN2222 транзистор бас ажиллах боломжтой- 1х фоторезистор- 1x HC-SR04 (хэт авианы зайн мэдрэгч)- 1х RFID-RC522- 3х ялгаатай өнгө LED (цэнхэр, шар, улаан)- 1x LCD1602- 1x Идэвхтэй баззер- 1х PCF8574- 1х MCP3008- 1х Усны насос (12в перисталтик насос ашигласан, энэ зүйлийн линк)
- 1х тогтмол гүйдлийн цахилгаан хангамж (12в, 600мАч)- 3 цэг бүхий 1х цахилгаан тоосго- 3х талхны самбар (та бага хэрэглэж магадгүй)- RaspberryPi GPIO тээглүүрийн T-гутал- Т гутлын кабель (pi ба гутлын хооронд холбох зориулалттай)
Ашигласан материал, багаж хэрэгсэл
- Дараах өрмийн бит бүхий өрөм:
- 4мм (боолтыг урьдчилан өрөмдөх) - 15мм (зайны мэдрэгчийн цооног өрөмдөх)
- Аливаа халив- 45мм урттай 30 эрэг- 20мм-ийн 6 эрэг- хаалганы 2 нугас- БСХС-ийн хавтан 130см-аас 80см орчим хэмжээтэй хавтан
Алхам 1: Цахилгаан хэлхээг угсрах
Хэлхээний хувьд бидэнд 2 мэдрэгч, зайны мэдрэгч, фоторезистор байдаг. Усны оргилуурт аяга тавьсан эсэхийг тодорхойлохын тулд зайны мэдрэгчийг ашигладаг бөгөөд хэрэв хүсвэл би фоторезистор нэмж оруулсан бөгөөд энэ нь бүрхүүлийг нээх ёсгүй хүн нээсэн эсэхийг тодорхойлоход ашиглагддаг. Дээрээс нь бидэнд RFID уншигч байгаа бөгөөд энэ нь усны нөөцийг дүүргэх эсвэл бусад механик асуудлын хувьд хэргийг онгойлгох шаардлагатай механикчдыг баталгаажуулахад ашиглаж болно.
Идэвхтэй элементүүдийн хувьд бидэнд LCD1602, идэвхтэй дуугаруулагч, перисталтик насос байгаа бол LCD нь хэргийг онгойлгох эсвэл насос ажиллаж байх үед төхөөрөмжийн IP хаягийг харуулах болно. хэргийг хэн нэгэн зөвшөөрөлгүйгээр нээсэн байхад түгшүүртэй дуу гаргахад ашигладаг байсан.
Би доорх хэлхээний талх болон схемийн үзэл бодлыг нэмсэн.
Алхам 2: Манай RaspberryPi -ийг тохируулах
Манай RaspberryPi -ийг тохируулахын тулд бид Raspberry сайтаас дүрс бичлэг хийх програмыг татаж авах бөгөөд үүгээр та хүссэн Raspbian -ийн хувилбарыг татаж аваад SDCARD -ээ дүрслэх боломжтой болно. Энэ хэрэгсэл нь ажлаа хийсний дараа та Windows Explorer дээр SDCARD -ийг нээж болно, та RaspberryPi -ийн ачаалах хуваалтыг харах боломжтой болно. Энд бид cmdline.txt нэртэй файлыг олох болно (энэ файлыг notepad дээр бүү нээ, Notepad ++ эсвэл бусад IDE дээр нээнэ үү). Бид энэ файлын төгсгөлд ip = 169.254.10.1 -ийг нэмж, төхөөрөмжөө ethernet -ээр холбож чадах эсэхээ баталгаажуулах болно (файлынхаа төгсгөлд ENTERS оруулахгүй байх, эс тэгвээс танд асуудал гарах болно).
Одоо та SDCARD -ийг RaspberryPi -д суулгаж, ачаалж, Pi -г компьютерт холбож, Putty ашиглан SSH -ээр дамжуулан Pi -тэйгээ холбогдох боломжтой боллоо. Би Putty ашиглахын оронд өөрийн Pi -тэй холбогдохын тулд дараах тушаалыг ашигладаг. "ssh [email protected]" энэ нь хугацаа нь дууссан байж магадгүй тул тэвчээртэй байж, Pi -г ачаалахыг хүлээнэ үү. Нууц үг асуусны дараа бид "бөөрөлзгөнө" гэсэн үндсэн нууц үгийг бөглөх болно. Муу санаатай хэн нэгэн таны Raspberry Pi руу нэвтрэхээс урьдчилан сэргийлэхийн тулд нэвтэрснийхээ дараа энэ нууц үгээ солихоо мартуузай.
Бид одоо кодоо шаардлагатай функцээр хангахын тулд Pi-гээ тохируулах болно. "Sudo raspi-config" -г ашиглан тохиргооны цэсийг нээгээд эндээс Interfacing Options руу орно.
Энд бид дараах сонголтуудыг идэвхжүүлэх болно:- SPI- I2C
Энэхүү гарын авлагыг дагаж Pi дээрээ утасгүй интернет холболт тохируулаарай, үүнийг амжилттай хийсний дараа бид шаардлагатай багцуудаа суулгах боломжтой болно.
Багцууд: (тушаалуудыг энд дурдсан дарааллаар ажиллуулна уу)
Манай Pi- sudo apt update && apt upgrade -y -ийн хамгийн сүүлийн үеийн шинэчлэлтүүдийг авахын тулд дараахь зүйлийг авна уу
Манай MySQL сервер болон вэб серверийг суулгаарай- sudo apt install mariadb-server apache2
Би MySQL Workbench -ийг ашиглан энэ гарын авлагад өгөгдлийн санг тохируулах болно, хэрвээ та үүнийг ашиглаагүй бөгөөд phpmyadmin -ийг сонговол та дараах тушаалыг ашиглан үүнийг суулгаж болно, та бусад MySQL клиентийг ашиглах боломжтой мэдээллийн санг зөв импортлох боломжтой.- sudo apt install phpmyadmin
Дээрх бүгдийг хийсний дараа бид мэдээллийн баазынхаа хэрэглэгчийг бий болгох хэрэгтэй. "Sudo mysql -u root" -г ашиглан MySQL серверт нэвтэрнэ үү, энд бид db_admin нэртэй хэрэглэгчийг нууц үгээрээ үүсгэх болно. Энэ нууц үгийг дараа нь зааврын дагуу хаа нэгтээ тэмдэглэсэн болно. БҮХ ДАВУУДЛАГУУДЫГ АВААРАЙ *. * TO "db_admin"@"%" IDPIEDIY "yourPasswordHere" ГРАНТ СОНГОЛТоор;
MySQL терминалаас гарахын тулд "\ q" командыг ашиглана уу.
Python багцууд: Үргэлжлүүлэхийн өмнө бид зарим python багцуудыг суулгах шаардлагатай хэвээр байгаа бөгөөд өө сэвгүй туршлага олж авахын тулд доорх тушаалыг ажиллуулна уу.
sudo pip3 Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev-ийг суулгаарай
Дараах MySQL нь python багцуудыг холбохоос гадна python3 -mysql.connector -y суулгадаг.
Хэрэв бүх зүйл зөв хийгдсэн бол та дараах хаягаар https:// 169.254.10.1/ вэб хөтөч дээрээ Pi рүүгээ зочилж болно.
Алхам 3: Арын хэсгийг тохируулах
Энд би арын дэвсгэрийг өөрөө хэрхэн тохируулах талаар тайлбарлах гэж байна, эхлээд rar файлыг доороос татаж аваад түр директор руу задлаарай. RaspberryPi -тэй FileZilla эсвэл WinSCP ашиглан дараах итгэмжлэлийг ашиглан холбогдоно уу.
IP: 169.254.10.1 Хэрэглэгч: piPassword: бөөрөлзгөнө (хэрэв та нууц үгээ өөрчилсөн бол энд бас хийгээрэй)
Та дараа нь тайлсан файлуудаа pi хэрэглэгчийн гэрийн лавлах хэсэгт хүссэн директор руу шилжүүлэх ажлыг үргэлжлүүлж болно. Энгийн хялбар болгох үүднээс энэхүү тохиргоонд бид бүх файлуудаа баримт бичгийн лавлах хэсэгт байршуулсан гэж үзэх болно.
Дараагийн алхамд FTP програмаа нээлттэй байлгаарай!
SSH холболтын тусламжтайгаар тушаалын мөрийг дахин нээнэ үү, учир нь бид вэб серверт зарим өөрчлөлт оруулах шаардлагатай болно, ингэснээр урд талын арын хэсэг нь харилцах боломжтой болно. Бид анхдагч Apache2 тохиргооны файлыг нээж, бага зэрэг өөрчлөх болно: sudo нано /etc/apache2/sites-available/000-default.conf
Дөнгөж нээсэн тохиргооны файлд DocumentRoot -ийн доорх мөрүүдийг нэмнэ үү: ProxyPass/api/https://127.0.0.1:5000/api/ProxyPassReverse/api/https://127.0.0.1:5000/api/
Та жишээ болгон хавсаргасан зургийг үзэж болно.
Алхам 4: Frontend -ийг тохируулах
Файлуудаа дамжуулахын өмнө бид урд талын файлуудаа дамжуулж эхлэхээсээ өмнө ямар нэгэн зүйл хийх хэрэгтэй болно. Өмнө нь хийсэн SSH холболтын тусламжтайгаар командын мөрийг нээгээд доорх тушаалыг ашиглан манай RaspberryPi -ийн үндсэн хэрэглэгч рүү шилжих болно: "sudo su -"
Үүний дараа бид root хэрэглэгчийнхээ нууц үгийг дараах тушаалыг ашиглан өөрчилж болно: "passwd" Энэ нь танаас шинэ нууц үг оруулахыг шаардах бөгөөд үүнийг хийсний дараа та өөрийн FTP програм руугаа буцаж ороод өөрийн итгэмжлэлээр нэвтрэх боломжтой болно.
IP: 169.254.10.1 Хэрэглэгч: rootPassword:
Rar файлыг доороос татаж аваад түр фолдерт задалсны дараа та эдгээр файлуудыг өөрийн RaspberryPi руу дараах лавлах руу зөөж болно/var/www/html/, үүнийг хийсний дараа та http: /169.254.10.1, та хараахан ажиллахгүй байгаа тул та хараахан харилцаж чадахгүй байгаа тул үүнийг хэрхэн яаж хийхийг энэ гарын авлагад дараа харуулах болно.
Алхам 5: Манай төслийн мэдээллийн санг импортлох
Өөрийн дуртай MySQL серверийн менежментийн програмыг нээж, 2 -р алхам дээр бидний үүсгэсэн итгэмжлэлийг ашиглан Raspberry Pi -тай холбогдоно уу.
Өгөгдлийн сангийн хогийн цэгийг доороос татаж аваад импортлодог шигээ MySQL ажлын ширээ рүүгээ очоод File> Open SQL Script -ийг сонгоод татаж авсан мэдээллийн баазын овоолгыг сонгоно уу. мэдээллийн санг бий болгох ёстой.
Би доорх жишээ болгон RaspberryPi -д ашиглаж байсан итгэмжлэлүүд болон өгөгдлийн сангийн бүтцийн хэд хэдэн зургийг нэмсэн бөгөөд үүнийг хараад бүх зүйл хэрхэн ажилладаг талаар ерөнхий ойлголттой болох боломжтой.
Алхам 6: Манай төслийг эхлүүлэх
Төслөө эхлүүлэхийн өмнө бид config.py файл дахь мэдээллийн баазын итгэмжлэлийг өөрчлөх шаардлагатай бөгөөд хэрэв та энэ гарын авлагад заасан зааврын дагуу хийсэн бол тэдгээрийг /home/pi/Documents/Backend/src/config.py доороос олж болно. Энд та db_config хувьсагчийн итгэмжлэлийг манай мэдээллийн санд зориулж өмнө нь үүсгэсэн зүйлтэй тохируулахын тулд өөрчлөх хэрэгтэй. Би доорх энэ файлд юу харахыг жишээ нэмсэн.
Үүний дараа бид.service файлыг энэ файлд нэмж оруулах нь RaspberryPi эхлэхэд манай төсөл эхлэх болно, арын файлуудыг суулгасан газрынхаа лавлахыг зохих ёсоор өөрчилсөн эсэхийг шалгаарай. Үйлчилгээний файл үүсгэхийн тулд дараах тушаалыг ашиглана уу: sudo nano /etc/systemd/system/dispenser.service Энэ нь үйлчилгээний файл үүсгэж, доорх кодыг энэ файлд хуулж өгнө.
[Нэгж] Тодорхойлолт = Усны диспенсерAfter = mysql.service
[Үйлчилгээ] Төрөл = simpleRestart = alwaysRestartSec = 1User = piExecStart =/usr/bin/python3 /home/pi/Documents/Backend/index.py
[Суулгах] WantedBy = multi-user.target
/Home/pi/Documents/Backend/index.py гэсэн мөрийг өөрчилсөн файлуудаа суулгасан газар болгон өөрчил, хэрэв та үүнийг зөв хийхгүй бол төслийг зөв эхлүүлэхгүй болно! Би доор жишээ файл нэмж оруулах болно.
Та үүнийг хийж, текст засварлагчаас гарсны дараа бид дараах тушаалуудыг ашиглан үйлчилгээг идэвхжүүлэх боломжтой болно:- sudo systemctl демон-дахин ачаалах- sudo systemctl диспенсерийг идэвхжүүлэх
Нэмэлт байдлаар бид ажиллуулж болно: sudo systemctl status dispenserЭнэ нь идэвхтэй байгаа эсэхээс үл хамааран манай үйлчилгээний талаархи зарим мэдээллийг харуулах болно.
Алхам 7: Кейс
Баяр хүргэе, бид бараг тэнд байна, би өөрийн төсөлд ашигласан хэмжээсийг нарийвчлан харуулах зургуудыг нэмж оруулах болно, би 18 мм зузаантай БСХС -ийн хавтанг ашигласан, та өөр зузаан ашиглаж болно. Миний бүрхүүлийг таны загварыг гаргахад удирдамж болгон ашиглаж болно, эсвэл та миний хийсэн зүйлийг дахин бүтээж болно. (Хэрэв та БСХС-ийн өөр зузаантай бол миний зургууд миний дизайныг хийх боломжгүй болно, үүнийг тохируулахаа мартуузай!) Миний хийсэн хавтан:- 32см-ээс 42см хэмжээтэй 2 самбар (хажуугийн хавтан)- 24см хэмжээтэй 1 самбар 32см (доод хавтан)- 16см-аас 24см хэмжээтэй 2 самбар (урд талд нь LCD дэлгэц байрладаг ба хажуугийн хавтан)- 28см-24см хэмжээтэй 1 самбар (урдаас харсан дунд хавтан)- 30см-аас 24см хэмжээтэй 1 самбар (дээд хавтан)
Алхам 8: Эцсийн бүтээгдэхүүнийг бишир
Та эцэс хүртэл хүрч, одоо хүртэл бүх зүйлийг бодит болгож чадсан гэж найдаж байна. Хэрэв та зүгээр л хажуугаар өнгөрч байгаа хүн уншиж байгаа бол тавтай морилно уу, сүүлчийн алхам хүртэл уншсан танд баярлалаа!
Би энэ төсөлд маш их цус, хөлс, нулимс зарцуулсан тул хэрэв та сэтгэгдэл үлдээвэл үүнийг үнэлэх болно.
Алхам 9: Асуудал
Би төслийг илүү олон сайжруулалтыг харах боломжтой ажлын прототип болгон одоогийн байдалд оруулах болно.
Арын хэсгийн кодын суурь нь нэг усан оргилуур нь үндсэн урд талын үүргийг гүйцэтгэх бөгөөд бусад бүх усан оргилуурууд нь мастерын REST api дээр өгөгдөл, өөрчлөлт оруулах үед мастер боолын харилцааг төгс хийх боломжтой байдлаар бүтээгдсэн болно. Кодонд API жетоны системийн үлдэгдэл байдаг бөгөөд үүнийг хэрэгжүүлэхээр төлөвлөж байсан боловч цаг хугацааны хязгаарлалтын улмаас хожим нь хассан болно.
Би кодоо Gitlab сервер дээрээ байршуулсан бөгөөд та кодыг бүхэлд нь үзэх боломжтой:
Зөвлөмж болгож буй:
Холбоо барихгүй Midi хянагч: 6 алхам (зурагтай)
Холбоо барихгүй Midi хянагч: Холбоо барихгүй байх нь орчин үеийн чиг хандлага болжээ. Би Arduino Pro micro болон IR-д ойрхон детекторын самбарыг ашиглан энгийн midi хянагч бүтээсэн бөгөөд үүнийг харьцуулсан харьцуулагчтай бөгөөд энэ нь харьцангуй хялбар бөгөөд хямд байх ёстой. Энэхүү төсөл нь
Холбоо барихгүй IR термометр: 8 алхам (зурагтай)
Холбоо барихгүй IR термометр: Миний орон нутгийн Эрүүл мэндийн газар 2020 оны Ковид-19 хямралын үеэр ажилчдынхаа биеийн температурыг өдөр бүр хянах арга хэрэгтэй байсан тул надтай холбоо барьсан. Хэвийн үед тавиур дээрээс IR термометр ховордож эхлэв
Бүжиглэх усан оргилуур: MSGEQ7 спектрийн анализатортой Arduino: 8 алхам
Бүжиглэх усан оргилуур: MSGEQ7 спектрийн анализатортой Arduino: Аудио дохиог хүлээн авч харааны болон механик урвал болгон хувиргах нь маш сонирхолтой юм. Энэхүү төсөлд бид Arduino Mega -ийг ашиглан оролтын аудио дохиог хүлээн авч, хамтлаг гүйцэтгэдэг MSGEQ7 спектр анализатортой холбогдоно
Холбоо барихгүй хүчдэл илрүүлэгч: 5 алхам (зурагтай)
Холбоо барихгүй хүчдэлийн детектор: Энэхүү зааварчилгаанд би цахилгаан гүйдэл дамжуулах утсыг шалгахын тулд контактгүй хүчдэлийн детекторыг хэрхэн яаж бүтээхийг танд үзүүлэх болно. Хэрэглэсэн хэрэгсэл, материал (түншлэлийн линкүүд): Транзистор http://s.click.aliexpress.com /e/bWomecjILEDs http://s.click.aliexpress.com/e
Холбоо барихгүй хүчдэл илрүүлэгч: 15 алхам (зурагтай)
Холбоо барихгүй хүчдэлийн детектор: Доллараас бага үнээр контактгүй хүчдэл илрүүлэгчийг өөрийн гараар бүтээх 3 арга Оршил ------------ Цахилгаан эрчим хүчийг зохих ёсоор ашиглахгүй байх нь цахилгаан цочролд хүргэж, муухай туршлагатай болно. Тиймээс ажиллахдаа аюулгүй байдлыг нэн тэргүүнд тавих ёстой