Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pagkonekta sa Lahat ng Elektronika
- Hakbang 2: Pag-set up ng Raspberry Pi
- Hakbang 3: Paglikha ng Database
- Hakbang 4: Pag-set up ng Backend
- Hakbang 5: Pag-set up ng Frontend
- Hakbang 6: Paglikha ng Casing
Video: Awtomatikong Waterdispenser upang Subaybayan ang Pagkonsumo: 6 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:11
Kumusta!
Ilang buwan na ang nakalilipas, nasa silid ako ng pag-iisip tungkol sa kung anong uri ng proyekto ang nais kong gawin para sa isang takdang-aralin sa paaralan. Nais kong gumawa ng isang bagay na akma sa akin at na makikinabang sa akin sa hinaharap. Bigla, pumasok ang aking ina sa silid at nagsimulang magreklamo tungkol sa hindi pag-inom ng sapat na tubig. Agad akong nagkaroon ng epiphany. Ang ideya ay dumating sa akin upang gumawa ng isang awtomatikong waterdispenser (tulad ng sa sinehan) na sumusubaybay sa iyong pagkonsumo ng tubig sa araw-araw.
Sa pamamagitan ng isang Raspberry Pi, ilang sensor, isang bomba, at kaunting kaalaman, sinubukan kong gawin itong kasing ganda hangga't maaari.
Sa pagtatapos ng lahat ng mga hakbang, magkakaroon ka ng isang gumaganang waterdispenser na pumupuno sa iyong waterbottle at kumokonekta at nakikipag-ugnay sa iyong Raspberry Pi. Hindi mo lamang masusubaybayan ang iyong pagkonsumo ng tubig batay sa isang porsyento, ngunit magkakaroon ka rin ng posibilidad na tingnan ang temperatura at antas ng tubig ng iyong lalagyan ng tubig. Panghuli, magagawa mong suriin ang iyong mga istatistika. Kung nakakainteres ito sa iyo, tiyaking suriin ito at subukan ito sa iyong sarili!
Ang GitHub repository:
Mga gamit
Mga Microcontroller
Raspberry Pi 4
Mga sensor at module
Gumamit ako ng 4 na sensor:
2xHC-SR04Ultrasonic Sensor
Sinusukat ng mga sensor ng ultrasonic ang distansya sa pamamagitan ng paggamit ng mga ultrasonikong alon. Ang ulo ng sensor ay nagpapalabas ng isang ultrasonic wave at natatanggap ang alon na sumasalamin pabalik mula sa target. Sinusukat ng mga Ultrasonic Sensor ang distansya sa target sa pamamagitan ng pagsukat ng oras sa pagitan ng paglabas at pagtanggap. Ginamit ko ang dalawa sa kanila upang suriin kung mayroong isang bote sa malapit at upang sukatin ang distansya sa tubig sa tank.
Datasheet
1x DS18B20 Temperatura Sensor
Ang DS18B20 ay isang 1-wire programmable Temperature sensor mula sa pinakamataas na isinama. Malawakang ginagamit ito upang masukat ang temperatura sa matitigas na kapaligiran tulad ng mga solusyon sa kemikal, mga mina o lupa atbp. Ginamit ko ito upang masukat ang watertemperature ng tangke ng tubig.
Datasheet
1x RC522 RFID Module
Ang RC522 ay isang 13.56MHz RFID module na batay sa MFRC522 controller mula sa NXP semiconductors. Maaaring suportahan ng module ang I2C, SPI at UART at karaniwang ipinadala sa isang RFID card at key fob. Karaniwan itong ginagamit sa mga system ng pagdalo at iba pang mga aplikasyon ng pagkakakilanlan ng tao / bagay. Sa proyektong ito, ginagamit ito para sa isang pagkakakilanlan / pag-login system.
Datasheet
At 2 mga actuator:
1x Peristaltic Pump 12-24V
Gumamit ako ng peristaltic pump upang makuha ang tubig mula sa tanke sa isang bote ng tubig. Karamihan sa mga bomba ay masyadong mabagal, kaya't nagpunta ako para sa isang 24V na bersyon na pinapagana ko sa isang 24V power adapter.
1x LCD Display
Ginagamit ang LCD upang ipakita ang IP address at mahahalagang mensahe. Ang isang likidong-kristal na display (LCD) ay isang flat-panel display o iba pang electronically modulated optical device na gumagamit ng light-modulate na mga katangian ng mga likidong kristal na sinamahan ng mga polarizer.
Datasheet
Casing
Pinag-uusapan ang tungkol sa pambalot, gumawa ako ng isang DIY na may mga supply mula sa isang Home depot (sa aking kaso ang Brico sa Belgium). Gumamit ako ng playwud na pinutol ko sa tamang sukat. Pinag-uusapan ko kung paano ko nagawa ang aking kaso sa isang karagdagang hakbang, ngunit narito ang mga bagay na kakailanganin mo:
- 3x Mga tabla ng playwud
- 1x Maliit na funnel
- 1x Water tank (maaari kang pumili kung aling halaga ang gusto mo, nagpunta ako para sa 10L)
- 1x Drip tray
Maaari mong makita ang lahat ng mga materyales at pagpepresyo sa naka-attach na BOM.
Hakbang 1: Pagkonekta sa Lahat ng Elektronika
Ngayon na naayos na namin ang lahat ng electronics, oras na upang ikonekta ang mga ito. Gumawa ako ng dalawang Fritzing circuit, isang breadboard at isang eskematiko, upang maipakita sa iyo kung paano at saan dapat maiugnay ang lahat ng electronics. Mahahanap mo rito ang link sa pag-download sa Fritzing: https://fritzing.org/download/. Tulad ng nabanggit dati, gumamit ako ng isang Raspberry Pi at kumonekta sa isang RFID scanner, dalawang mga ultrasonic sensor, isang temperatura sensor, isang LCD at isang peristaltic pump para sa tubig.
Ikinabit ko ang dalawang mga circuit sa isang PDF, kung nais mong tingnan ito nang mas malapit.
Hakbang 2: Pag-set up ng Raspberry Pi
Gagamitin namin ang aming Raspberry Pi upang patakbuhin at kontrolin ang lahat: backend, frontend at database.
Ang isang Raspberry Pi ay hindi awtomatikong tatakbo. Kailangan nating dumaan sa ilang mga hakbang upang masimulang gamitin ito.
Hakbang 1: Raspbian
Kung gumagamit ka ng isang bagong Raspberry Pi, kakailanganin mo ng raspbian. Ang link sa pag-download at tutorial ay matatagpuan dito.
Hakbang 2: Pagsulat ng imahe sa SD
Ngayon na mayroon ka ng iyong imahe na Raspbian, kakailanganin mo ang isang software ng pagsulat ng imahe (inirerekumenda ko ang win32diskimager) upang isulat ang file ng imahe sa SD card. Ang buong tutorial ay matatagpuan dito.
Hakbang 3: Pag-log in sa Raspberry Pi
Buksan ang "Powershell" at i-type ang "ssh [email protected]". Kung tama ang lahat, hihilingin ka nila para sa isang password (palaging raspberry ang default na password). Karaniwan, ito ay dapat na mag-log sa iyo sa Raspberry Pi. Ngayon kakailanganin naming gumawa ng ilang mga pagbabago sa aming mga setting. I-type ang sudo raspi-config sa terminal at pindutin ang enter. Mag-navigate sa mga pagpipilian sa pag-localize> baguhin ang timezone at itakda ito sa iyong time zone. Dapat mo ring palitan ang iyong wi-fi na bansa sa iyong sariling lokasyon. Panghuli, pumunta sa mga pagpipilian sa interfacing at paganahin ang SPI, I2C at 1-wire. Mahalaga ito upang magamit nang tama ang mga sensor.
Hakbang 4: Pag-set up ng Koneksyon sa Internet
Gumagamit kami ng isang WiFi network. Maaari mong idagdag ang iyong home network sa pamamagitan ng:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Kailangan mong i-reboot ang iyong Pi upang makakonekta. Upang suriin kung ito ay gumagana, maaari mong gamitin ang ifconfig upang suriin kung mayroong isang IP address.
Hakbang 5: Pag-set up ng webserver at Database
Una, pinakamahusay na i-update at i-upgrade ang system gamit ang sumusunod na pagkakasunud-sunod ng mga utos:
- sudo apt dist-upgrade --auto-alisin -y
- sudo apt mag-upgrade
- sudo apt update
- sudo apt autoremove
Kapag tapos na ito, kakailanganin namin ang mga sumusunod na package para sa aming webserver at database:
Apache
sudo apt i-install ang apache2 -y
PHP
sudo apt install php
sudo apt i-install ang phpMyAdmin -y
Huwag kalimutang magtakda ng isang ligtas na MySQL password, kapag humiling ito na magtakda ng isang password.
MariaDB
sudo apt i-install ang mariadb-server mariadb-client -y
sudo apt i-install ang php-MySQL -y
sudo systemctl restart apache2.service
Hakbang 6: Pag-install ng mga aklatan ng Python
Para sa backend, kakailanganin namin ang ilang mga aklatan para sa Python. I-install namin ang mga ito gamit ang pip3, dahil gumagamit kami ng python3.
pip3 i-install ang MySQL-Connector-Python
pip3 i-install ang flask-socketio
pip3 i-install ang flask-cors
pip3 i-install ang gevent
pip3 i-install ang gevent-websocket
sudo apt i-install ang python3-mysql.connector -y
pip3 i-install ang mfrc522! (kakailanganin namin ito upang magamit ang RFID scanner)
Hakbang 7: Paghahanda ng Visual Studio Code
Para sa pagpapatakbo ng code, inirerekumenda ko ang paggamit ng Visual Studio Code upang ikonekta ang iyong Raspberry Pi. Ang link sa pag-download upang mai-install ang VSC ay matatagpuan dito.
Kung wala kang naka-install na Remote Development gamit ang SSH, mahahanap mo ang mga hakbang upang magawa ito dito.
Hakbang 3: Paglikha ng Database
Iimbak namin ang lahat ng aming data ng sensor at data ng gumagamit sa isang database.
Ang aking database ay binubuo ng 5 mga talahanayan:
Aparato
Ang Table Device ay mayroong DeviceID, na tumutukoy sa mismong aparato. Ibinibigay ng DeviceName ang pangalan ng aparato, sa kasong ito ang ultrasonic sensor, temperatura sensor,… Ibinibigay ng DeviceType ang uri ng aparato (sensor o actuator).
Kasaysayan
Naglalaman ang Kasaysayan ng Talahanayan ng lahat ng kasaysayan ng sensor, kasama ang de date (HistoryDate) naidagdag ang kasaysayan at ang halaga ng sandali sa kasaysayan. Mayroon din itong dalawang Foreign Keys:
- DeviceID, upang mai-link ang isang tukoy na pag-log sa isang Device
- Ang UserID, upang mai-link ang isang tukoy na gumagamit sa isang log (ito ay dahil gumagamit kami ng isang RFID, at nais naming idagdag ang log ng kasaysayan sa isang tukoy na gumagamit)
Gumagamit
Ginamit ang Talahanayan ng Gumagamit upang lumikha ng isang User Login System na may RFID scanner. Binubuo ito ng isang Palayaw, FirstName, LastName, Password at RFID (ito ang numero ng RFID ng isang tag). Ang bawat gumagamit ay naka-link sa isang Container (watertank) at dinadala ang ContainerID bilang isang Foreign Key.
Lalagyan
Ang Table Container ay binubuo ng lahat ng iba't ibang Mga lalagyan. Mayroon itong ID, isang ContainerLocation (maaari itong isang negosyo, bahay o anumang bagay). Panghuli, mayroon itong isang MaxLevel na nangangahulugang max na dami ng lalagyan.
Mga setting
Ang Mga Setting ng Talahanayan ay may isang SettingID, at sinusubaybayan ang DailyGoal ng bawat gumagamit + ang petsa na ang DailyGoal ay idinagdag ng gumagamit. Ipinapaliwanag nito ang Foreign Key UserID.
Ang isang pagtatapon ng database ay matatagpuan sa aking GitHub repository sa ilalim ng Database.
Hakbang 4: Pag-set up ng Backend
Walang isang proyekto nang walang gumaganang backend.
Ang backend ay binubuo ng 4 na magkakaibang mga bagay:
mga katulong
Ang mga tumutulong ay lahat ng mga klase na ginagamit para sa iba't ibang mga sensor at actuator. Mayroong isang helper para sa sensor ng temperatura (DS18B20), para sa mga ultrasonic sensor (HCSR05) na masusukat ang distansya at upang ang LCD ay maaaring magsulat ng mga mensahe sa screen.
mga repository
Sa folder ng mga repository, mahahanap mo ang 2 mga file ng Python:
- Database.py na kung saan ay isang helper upang makakuha ng mga hilera mula sa iyong database. Ginagawa nitong mas madali upang maipatupad at mabasa ang database.
- Ang DataRepository.py na naglalaman ng lahat ng mga query sa SQL, na magagamit sa pangunahing code (app.py). Ginagamit ang mga ito para sa pagkuha, pag-update o pagtanggal ng data mula sa database.
app.py
Ito ang pangunahing backend code ng proyekto. Ginagawa nito ang pag-setup sa pamamagitan ng pagtukoy sa lahat ng mga pin at mode at naglalaman ng code para sa paggana ng pump, pagkuha ng temperatura, pagkuha ng gumagamit at iba pa. Naglalaman din ito ng mga ruta na ginagamit upang makuha ang data mula sa Database at lahat ng socketio.on's. Para sa bawat pahina ng HTML ay isang iba't ibang socketio.on upang matiyak na ang bawat pagpapaandar ay gumagana sa tamang oras.
config.py
Mayroon kaming natitirang isang file: config.py. Ito ang file na may mga pagpipilian sa pagsasaayos upang kumonekta sa iyong Database. Huwag kalimutang itakda ang iyong mga kredensyal sa Database.
Ang backend ay matatagpuan sa aking imbakan sa ilalim ng Backend.
Hakbang 5: Pag-set up ng Frontend
Para sa Frontend, nagsimula ako sa pamamagitan ng paggawa ng isang disenyo ng kung ano ang dapat hitsura ng aking webserver sa AdobeXD. Ginamit ko ang mga kulay sa aking Logo, na kulay kahel at 2 magkakaibang mga kulay ng asul. Sinubukan kong panatilihing simple ang disenyo hangga't maaari at lumikha ng isang patak ng tubig na nagpapakita ng porsyento sa kung hanggang saan mo nakamit ang iyong hangarin ng araw.
Sa aking GitHub repository, mahahanap mo ang aking Frontend sa ilalim ng Code> Frontend. Mahalagang i-paste mo ito sa iyong / var / html folder ng iyong Raspberry Pi upang gawin itong accesible mula sa webserver.
Binubuo ito ng isang pares ng mga HTML file, na humahantong sa iba't ibang mga pahina. Mahahanap mo rin ang aking screen.css kasama ang lahat ng CSS na kakailanganin mo upang gawin itong hitsura ng aking proyekto. Panghuli, magkakaroon ka ng iba't ibang mga JavaScript file sa ilalim ng mga script. Ang mga script na ito ay nakikipag-usap sa aking backend upang ipakita ang data mula sa aking Database o backend.
Ang backend ay matatagpuan sa aking lalagyan sa ilalim ng Frontend.
Hakbang 6: Paglikha ng Casing
Kung pinag-uusapan natin ang tungkol sa aking kaso, mayroong dalawang pangunahing bahagi:
Sa labas ng pambalot
Itinayo ko ang kaso mula sa simula. Gumamit ako ng mga tabla ng playwud at pinaglalagari ang mga ito sa tamang sukat. Pinagsama ko ang lahat ng mga tabla at nag-drill ng mga butas para sa LCD, ang pindutan, ang sensor ng ultrasonic upang makita kung mayroong isang watter na bote na naroroon at ang funnel upang ipamahagi ang tubig. Inilahad ko ang aking kaso sa iba't ibang mga seksyon upang mapanatili ang pagkakahiwalay ng tubig at electronics at gumamit ako ng isang tray ng cable upang protektahan ang mga kable mula sa pagtulo ng tubig. Sa kalakip na video, makikita mo ang karamihan sa mga aspeto ng aking pambalot at kung paano ko ito nagawa. Nag-print din ako ng 3D ng isang pindutan, na nakadikit sa isang normal na pindutan. Sa wakas, gumamit ako ng drip tray upang mahabol ang lahat ng nabuhos na tubig. Gumamit din ako ng mga bisagra upang mabuksan at maisara ang isang panel ng gilid upang tingnan ang aking electronics. Maaari mong palaging gumamit ng pangalawang-dispenser o maaari mo ring gamitin ang iba pang mga materyales.
Para sa eksaktong sukat ng aking built, nakakabit ako ng isang PDF na may lahat ng laki ng mga plate na ginamit sa kaso.
Tangke ng tubig
Ang tangke ng tubig ay hindi isang madaling trabaho. Nakuha ko ang isang watertank na may butas sa ilalim, kaya kailangan kong i-tape ito upang matigil ang pagtulo. Kakailanganin mo ang apat na butas: isa para sa sensor ng temperatura, isa para sa tubing ng iyong bomba. isa para sa tubing upang muling punan ang tangke at isa para sa ultrasonic sensor. Para sa huling ito, nag-print ako ng 3D ng isang kaso para dito, na maaaring matagpuan dito. Nagbibigay ito sa sensor ng higit na proteksyon laban sa tubig. Pagkatapos ay nag-drill ako ng isang rektanggulo sa tuktok ng tangke, upang mapahinga ang sensor.
Inirerekumendang:
Subaybayan at subaybayan para sa Mga Maliit na Tindahan: 9 Mga Hakbang (na may Mga Larawan)
Subaybayan at subaybayan ang para sa Mga Maliit na Tindahan: Ito ay isang sistema na ginawa para sa maliliit na tindahan na dapat na mai-mount sa mga e-bike o e-scooter para sa maihatid na saklaw, halimbawa isang panaderya na nais maghatid ng mga pastry. Ano ang ibig sabihin ng Track and Trace? Ang track at trace ay isang sistema na ginamit ng ca
Ang Head ni G. Wallplate ay Lumiliko upang Subaybayan ka: 9 Mga Hakbang (na may Mga Larawan)
Ang Ulo ni G. Wallplate ay Lumiliko upang Subaybayan ka: Ito ay isang mas advanced na bersyon ng Mr Wallplate's Eye Illusion Robot https://www.instructables.com/id/Mr-Wallplates-Eye-Illusion. Pinapayagan ng isang ultrasonic sensor ang ulo ni G. Wallplate na subaybayan ka habang naglalakad ka sa harap niya. Maaaring buod ang proseso
Paano Wastong Sukatin ang Pagkonsumo ng Lakas ng Mga Wireless na Module ng Komunikasyon sa Era ng Mababang Pagkonsumo ng Kuryente ?: 6 Mga Hakbang
Paano Wastong Sukatin ang Pagkonsumo ng Lakas ng Mga Wireless na Module ng Komunikasyon sa Panahon ng Mababang Pagkonsumo ng Power?: Ang mababang paggamit ng kuryente ay isang napakahalagang konsepto sa Internet ng Mga Bagay. Karamihan sa mga IoT node ay kailangang pinalakas ng mga baterya. Sa pamamagitan lamang ng wastong pagsukat ng pagkonsumo ng kuryente ng module ng wireless maaari nating tumpak na matantya kung magkano ang baterya i
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at
Ang Floger: isang Device upang Subaybayan ang Parameter ng Panahon: 6 na Hakbang
Ang Floger: isang Device upang Subaybayan ang Parameter ng Panahon: Isang maliit na konektado at AUTONOMUS na aparato upang subaybayan ang maraming mga kapaki-pakinabang na varaible upang matulungan kang paghahardin Ang aparatong ito ay dinisenyo upang masukat ang iba't ibang mga parameter ng panahon: Ang temperatura sa sahig at hangin Lantai at kahalumigmigan ng hangin Luminosity ipakita ito sa