Orodha ya maudhui:

Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi: Hatua 6
Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi: Hatua 6

Video: Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi: Hatua 6

Video: Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi: Hatua 6
Video: Ujauzito usiokuwa na mtoto (Mimba Hewa) inawezekanaje? Tazama Medicounter 2024, Julai
Anonim
Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi
Utoaji wa Maji Moja kwa Moja Kufuatilia Matumizi
Otomatiki Maji ya Kufuatilia Matumizi
Otomatiki Maji ya Kufuatilia Matumizi

Habari!

Miezi michache iliyopita, nilikuwa kwenye chumba changu nikifikiria ni aina gani ya mradi ambao nilitaka kufanya kwa mgawo wa shule. Nilitaka kutengeneza kitu ambacho kinanifaa na ambacho kitanifaidi baadaye. Ghafla, mama yangu aliingia ndani ya chumba na kuanza kulalamika juu ya kutokunywa maji ya kutosha. Mara moja nilikuwa na epiphany. Wazo lilinijia kutengeneza kipato cha maji kiatomati (kama kwenye ukumbi wa sinema) ambayo hufuatilia matumizi yako ya maji kila siku.

Na Raspberry Pi, sensorer chache, pampu, na maarifa kidogo, nilijaribu kuifanya iwe nzuri iwezekanavyo.

Mwisho wa hatua zote, utakuwa na bomba la maji linalofanya kazi ambalo hujaza chupa yako ya maji na inayounganisha na kuingiliana na Raspberry Pi yako. Sio tu utaweza kufuatilia matumizi yako ya maji kwa msingi wa asilimia, lakini pia utakuwa na uwezekano wa kutazama kiwango cha joto na maji ya chombo chako cha maji. Mwishowe, utaweza kuangalia takwimu zako. Ikiwa hii inasikika kuwa ya kupendeza kwako, hakikisha ukiangalia na ujaribu mwenyewe!

Hifadhi ya GitHub:

Vifaa

Udhibiti mdogo

Raspberry Pi 4

Sensorer na moduli

Nilitumia sensorer 4:

2xHC-SR04 Sensorer ya Ultrasonic

Sensorer za Ultrasonic hupima umbali kwa kutumia mawimbi ya ultrasonic. Kichwa cha sensorer hutoa wimbi la ultrasonic na hupokea wimbi lililojitokeza nyuma kutoka kwa lengo. Sensorer za Ultrasonic hupima umbali kwa lengo kwa kupima wakati kati ya chafu na mapokezi. Nilitumia wawili wao kuangalia ikiwa kuna chupa karibu na kupima umbali wa maji kwenye tanki.

Karatasi ya data

Sensor ya Joto la 1x DS18B20

DS18B20 ni waya-1 inayoweza kupangiliwa sensor ya joto kutoka kwa kiwango kilichojumuishwa. Inatumika sana kupima joto katika mazingira magumu kama vile suluhisho za kemikali, migodi au mchanga n.k nilitumia kupima joto la maji ya tanki la maji.

Karatasi ya data

Moduli ya 1x RC522 RFID

RC522 ni moduli ya RFID ya 13.56MHz ambayo inategemea mtawala wa MFRC522 kutoka kwa semiconductors ya NXP. Moduli inaweza kusaidia I2C, SPI na UART na kawaida husafirishwa na kadi ya RFID na fob muhimu. Inatumiwa sana katika mifumo ya mahudhurio na matumizi mengine ya kitambulisho cha mtu / kitu. Katika mradi huu, hutumiwa kwa mfumo wa kitambulisho / kuingia.

Karatasi ya data

Na watendaji 2:

Pampu ya Peristaltic 12-24V

Nilitumia pampu ya kupitisha maji kutoka kwenye tanki hadi kwenye chupa ya maji. Pampu nyingi zilikuwa polepole sana, kwa hivyo nilienda kwa toleo la 24V ambalo ninaweka nguvu na adapta ya umeme ya 24V.

Onyesho la LCD la 1x

LCD hutumiwa kuonyesha anwani ya IP na ujumbe muhimu. Onyesho la glasi-kioevu (LCD) ni onyesho la gorofa-gorofa au kifaa kingine cha macho kinachotumia elektroniki ambacho hutumia mali ya kudhibiti mwangaza wa fuwele za kioevu pamoja na polarizers.

Karatasi ya data

Kesi

Kuzungumza juu ya kabati, nilifanya DIY na vifaa kutoka kwa bohari ya Nyumbani (kwa upande wangu Brico nchini Ubelgiji). Nilitumia plywood ambayo nilikata kwa saizi sahihi. Nitazungumza juu ya jinsi nilivyotoa kesi yangu kwa hatua zaidi, lakini hapa kuna vitu utakavyohitaji:

  • 3x mbao za Plywood
  • Faneli ndogo ndogo ya 1x
  • Tangi la maji la 1x (unaweza kuchagua kiasi unachotaka, nilikwenda kwa 10L)
  • Treyi ya 1x

Unaweza kupata vifaa vyote na bei katika BOM iliyoambatanishwa.

Hatua ya 1: Kuunganisha Elektroniki Zote

Kuunganisha Elektroniki Zote
Kuunganisha Elektroniki Zote
Kuunganisha Elektroniki Zote
Kuunganisha Elektroniki Zote

Sasa kwa kuwa tumehitimisha umeme wote, ni wakati wa kuziunganisha. Nilitengeneza nyaya mbili za Fritzing, moja ya mkate na moja ya skimu, kukuonyesha jinsi na wapi umeme wote unapaswa kushikamana. Unaweza kupata kiunga cha kupakua kwa Fritzing hapa: https://fritzing.org/download/. Kama nilivyosema hapo awali, nilitumia Raspberry Pi na niliunganisha skana ya RFID, sensorer mbili za ultrasonic, sensorer moja ya joto, LCD na pampu ya maji kwa maji.

Niliunganisha nyaya mbili kwenye PDF, ikiwa unataka kuiangalia kwa karibu.

Hatua ya 2: Kuweka Raspberry Pi

Tutatumia Raspberry yetu Pi kuendesha na kudhibiti kila kitu: backend, frontend na hifadhidata.

Pi ya Raspberry haifanyi kazi kiatomati. Tutalazimika kupitia hatua kadhaa kuanza kuitumia.

Hatua ya 1: Raspbian

Ikiwa unatumia Raspberry Pi mpya kabisa, utahitaji raspbian. Kiungo cha kupakua na mafunzo yanaweza kupatikana hapa.

Hatua ya 2: Kuandika picha hiyo kwa SD

Sasa kwa kuwa una picha yako ya Raspbian, utahitaji programu ya uandishi wa picha (ninapendekeza win32diskimager) kuandika faili ya picha kwenye kadi ya SD. Mafunzo kamili yanaweza kupatikana hapa.

Hatua ya 3: Kuingia kwenye Raspberry Pi

Fungua "Powershell" na andika "ssh [email protected]". Ikiwa kila kitu kitaenda sawa, watakuuliza nywila (nenosiri la kawaida ni rasipiberi kila wakati). Kwa kawaida, hii inapaswa kukuingiza kwenye Raspberry Pi. Sasa tutahitaji kufanya mabadiliko kwenye mipangilio yetu. Andika sudo raspi-config kwenye terminal na bonyeza ingiza. Nenda kwenye chaguzi za ujanibishaji> badilisha saa za eneo na uiweke kwenye eneo lako. Unapaswa pia kubadilisha nchi yako ya wi-fi kuwa eneo lako mwenyewe. Mwishowe, nenda kwenye chaguzi za kuingiliana na uwezeshe SPI, I2C na 1-waya. Hii itakuwa muhimu kutumia sensorer kwa usahihi.

Hatua ya 4: Kuanzisha Uunganisho wa Mtandao

Tutatumia mtandao wa WiFi. Unaweza kuongeza mtandao wako wa nyumbani kupitia:

wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf

Itabidi uwashe tena Pi yako ili uunganishe. Kuangalia ikiwa ilifanya kazi, unaweza kutumia ifconfig kuangalia ikiwa kuna anwani ya IP.

Hatua ya 5: Kuweka seva ya wavuti na Hifadhidata

Kwanza, ni bora kusasisha na kuboresha mfumo na mlolongo ufuatao wa amri:

  1. Sudo apt-kuboresha -auto-kuondoa -y
  2. Sudo apt kuboresha
  3. sasisho la sudo apt
  4. Sudo apt autoremove

Mara hii ikimaliza, tutahitaji vifurushi vifuatavyo kwa seva yetu ya wavuti na hifadhidata:

Apache

Sudo apt kufunga apache2 -y

PHP

Sudo apt kufunga php

Sudo apt kufunga phpMyAdmin -y

Usisahau kuweka nywila salama ya MySQL, wakati inauliza kuweka nywila.

MariaDB

Sudo apt kufunga mariadb-server mariadb-mteja -y

Sudo apt kufunga php-mysql -y

kuanzisha upya systemctl apache2.service

Hatua ya 6: Kufunga maktaba za chatu

Kwa backend, tutahitaji maktaba kadhaa ya Python. Tutasakinisha hizi kutumia pip3, kwa sababu tunatumia python3.

pip3 sakinisha mysql-kontakt-chatu

pip3 kufunga chupa-socketio

pip3 kufunga chupa-cors

pip3 kufunga gevent

pip3 kufunga gevent-websocket

Sudo apt kufunga python3-mysql.connector -y

pip3 sakinisha mfrc522! (tutahitaji hii kutumia skana ya RFID)

Hatua ya 7: Kuandaa Nambari ya Studio ya Visual

Kwa kuendesha nambari, ninapendekeza utumie Nambari ya Studio ya Kuunganisha kuungana na Raspberry Pi yako. Kiungo cha kupakua kusakinisha VSC kinaweza kupatikana hapa.

Ikiwa hauna Maendeleo ya Kijijini iliyosanikishwa kwa kutumia SSH bado, unaweza kupata hatua za kufanya hivi hapa.

Hatua ya 3: Kuunda Hifadhidata

Kuunda Hifadhidata
Kuunda Hifadhidata

Tutahifadhi data yetu yote ya sensa na data ya mtumiaji kwenye hifadhidata.

Hifadhidata yangu ina meza 5:

Kifaa

Kifaa cha Jedwali kina DeviceID, ambayo inarejelea kifaa yenyewe. Jina la Kifaa linatoa jina la kifaa, katika hali hii sensa ya ultrasonic, sensa ya joto,… Aina ya Kifaa hutoa aina ya kifaa (sensa au kitendakazi).

Historia

Historia ya Jedwali ina historia yote ya sensorer, pamoja na tarehe ya tarehe (HistoryDate) historia iliongezwa na thamani ya wakati huo katika historia. Pia ina Funguo mbili za Kigeni:

  • KifaaID, kuunganisha logi maalum na Kifaa
  • UserID, kuunganisha mtumiaji fulani na logi (hii ni kwa sababu tunatumia RFID, na tunataka kuongeza kumbukumbu ya historia kwa mtumiaji mmoja maalum)

Mtumiaji

Mtumiaji wa Jedwali hutumiwa kuunda Mfumo wa Kuingia kwa Mtumiaji na skana ya RFID. Inayo jina la utani, Jina la Kwanza, Jina la Mwisho, Nenosiri na RFID (hii ni nambari ya tag ya tag). Kila mtumiaji ameunganishwa na Kontena (watertank) na pia hubeba ContainerID kama Ufunguo wa Kigeni.

Chombo

Kontena la Jedwali lina Vyombo vyote tofauti. Inayo kitambulisho, eneo la Kontena (hii inaweza kuwa biashara, nyumba au kitu kingine chochote). Mwishowe, ina MaxLevel ambayo inasimama kwa kiwango cha juu cha chombo.

Mipangilio

Mipangilio ya Jedwali ina SettingsID, na inafuatilia DailyGoal ya kila mtumiaji + tarehe ambayo DailyGoal iliongezwa na mtumiaji. Hii inaelezea UserID ya Ufunguo wa Kigeni.

Dampo la hifadhidata linaweza kupatikana kwenye ghala langu la GitHub chini ya Hifadhidata.

Hatua ya 4: Kuweka Mpangilio wa Nyuma

Hakuna mradi bila backend inayofanya kazi.

Backend ina vitu 4 tofauti:

wasaidizi

Wasaidizi ni darasa zote zinazotumiwa kwa sensorer tofauti na watendaji. Kuna msaidizi wa sensorer ya joto (DS18B20), kwa sensorer za ultrasonic (HCSR05) kuweza kupima umbali na LCD iweze kuandika ujumbe kwenye skrini.

hazina

Katika folda ya hazina, utapata faili 2 za chatu:

  • Database.py ambayo ni msaidizi kupata safu kutoka kwa hifadhidata yako. Inafanya iwe rahisi kutekeleza na kusoma hifadhidata.
  • DataRepository.py ambayo ina maswali yote ya SQL, ambayo hutumiwa katika nambari kuu (app.py). Zinatumika kupata, kusasisha au kufuta data kutoka hifadhidata.

programu.py

Hii ndio nambari kuu ya kurudi nyuma ya mradi. Inafanya usanidi kwa kufafanua pini na njia zote na ina nambari ya kufanya pampu ifanye kazi, kupata joto, kupata mtumiaji na kadhalika. Pia ina njia zinazotumiwa kupata data kutoka kwa Hifadhidata na socketio.on zote. Kwa kila ukurasa wa HTML ni socketio.on tofauti ili kuhakikisha kila kazi inafanya kazi kwa wakati sahihi.

usanidi.py

Tuna faili moja kushoto: config.py. Hii ndio faili iliyo na chaguzi za usanidi wa kuungana na Hifadhidata yako. Usisahau kuweka hati zako za Hifadhidata.

Backend inaweza kupatikana katika hazina yangu chini ya Backend.

Hatua ya 5: Kuweka Mbele

Kuweka Mbele
Kuweka Mbele
Kuweka Mbele
Kuweka Mbele

Kwa Frontend, nilianza kwa kutengeneza muundo wa kile webserver yangu inapaswa kuonekana katika AdobeXD. Nilitumia rangi kwenye Rangi yangu, ambayo ni ya machungwa na vivuli 2 tofauti vya hudhurungi. Nilijaribu kuweka muundo rahisi iwezekanavyo na kuunda eneo la maji ambalo linaonyesha asilimia kwa kiwango gani umefikia lengo lako la siku.

Katika hazina yangu ya GitHub, utapata Frontend yangu chini ya Kanuni> Mbele. Ni muhimu kwamba ubandike hii kwenye folda yako / var / html yako Raspberry Pi kuifanya iwe rahisi kutoka kwa seva ya wavuti.

Inayo faili kadhaa za HTML, ambazo husababisha kurasa tofauti. Utapata pia skrini yangu.css na CSS yote utahitaji kuifanya ionekane kama mradi wangu. Mwishowe, Utakuwa na faili tofauti za JavaScript chini ya hati. Hati hizi zinawasiliana na backend yangu kuonyesha data kutoka kwa Hifadhidata yangu au nyuma.

Backend inaweza kupatikana katika hazina yangu chini ya Frontend.

Hatua ya 6: Kuunda Kesi

Kuunda Casing
Kuunda Casing
Kuunda Casing
Kuunda Casing
Kuunda Casing
Kuunda Casing

Ikiwa tunazungumza juu ya kesi yangu, kuna sehemu kuu mbili:

Nje ya casing

Nilijenga kesi hiyo kutoka mwanzo. Nilitumia mbao za plywood na kuzichora kwa saizi sahihi. Niliunganisha mbao zote pamoja na kuchimba mashimo kwa LCD, kitufe, sensor ya ultrasonic kugundua ikiwa kuna chupa ya watter iliyopo na faneli kusambaza maji. Niligawanya kesi yangu katika sehemu tofauti kuweka maji na vifaa vya elektroniki vimetenganishwa na nilitumia tray ya kebo kulinda nyaya kutokana na kuvuja kwa maji. Kwenye video iliyoambatishwa, unaweza kuona mambo mengi ya kuweka yangu na jinsi nilivyotengeneza. Pia nilichapisha kitufe cha 3D, ambacho kimefungwa kwa kitufe cha kawaida. Mwishowe, nilitumia tray ya matone kuchukua maji yote yaliyomwagika. Nilitumia pia bawaba kuweza kufungua na kufunga jopo la pembeni kutazama umeme wangu. Daima unaweza kutumia mtoaji wa mitumba au unaweza pia kutumia vifaa vingine.

Kwa vipimo halisi vya kujengwa kwangu, niliambatanisha PDF na saizi zote za sahani zilizotumiwa katika kesi hiyo.

Tangi la maji

Tangi la maji haikuwa kazi rahisi. Nilipata tanki la maji na shimo chini, kwa hivyo ilibidi niipige mkanda kukomesha kuvuja. Utahitaji mashimo manne: moja kwa sensorer ya joto, moja kwa neli ya pampu yako. moja kwa neli kujaza tank na moja kwa sensor ya ultrasonic. Kwa hii ya mwisho, mimi 3D nilichapisha kesi kwa hiyo, ambayo inaweza kupatikana hapa. Hii inatoa sensor zaidi ulinzi dhidi ya maji. Kisha nikachimba mstatili juu ya tangi, ili kupumzisha kitambuzi.

Ilipendekeza: