Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Kytke kaikki elektroniikka
- Vaihe 2: Asenna Raspberry Pi
- Vaihe 3: Tietokannan luominen
- Vaihe 4: Taustaohjelman määrittäminen
- Vaihe 5: Käyttöliittymän asentaminen
- Vaihe 6: Kotelon luominen
Video: Automaattinen vesiannostelija kulutuksen seurantaan: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
Hei siellä!
Pari kuukautta sitten olin huoneessani ja mietin, millaisen projektin halusin tehdä koulutehtävää varten. Halusin tehdä jotain, joka sopii minulle ja josta on hyötyä tulevaisuudessa. Yhtäkkiä äitini tuli huoneeseen ja alkoi valittaa, ettei juonut tarpeeksi vettä. Minulla oli heti epiphany. Minulle tuli idea tehdä automaattinen vedenjakelulaite (kuten elokuvateatterissa), joka seuraa vedenkulutustasi päivittäin.
Raspberry Pi, muutama anturi, pumppu ja vähän tietoa yritin tehdä tästä mahdollisimman hyvän.
Kaikkien vaiheiden lopussa sinulla on toimiva vesiannostelija, joka täyttää vesipullosi ja joka yhdistää ja on vuorovaikutuksessa Raspberry Pi -laitteesi kanssa. Sen lisäksi, että voit seurata vedenkulutustasi prosenttiosuuden perusteella, voit myös tarkastella vesisäiliön lämpötilaa ja vedenpintaa. Lopuksi voit tarkistaa tilastosi. Jos tämä kuulostaa mielenkiintoiselta, muista tarkistaa se ja kokeilla itse!
GitHub -arkisto:
Tarvikkeet
Mikro -ohjaimet
Raspberry Pi 4
Anturit ja moduulit
Käytin 4 anturia:
2xHC-SR04Ultraäänianturi
Ultraäänianturit mittaavat etäisyyttä ultraääniaaltojen avulla. Anturipää lähettää ultraääni -aallon ja vastaanottaa aallon, joka heijastuu takaisin kohteesta. Ultraääni -anturit mittaavat etäisyyden kohteeseen mittaamalla päästöjen ja vastaanoton välisen ajan. Käytin kahta niistä tarkistaakseni, onko lähellä pulloa ja mitannut etäisyyden säiliössä olevaan veteen.
Tuotetiedot
1x DS18B20 lämpötila -anturi
DS18B20 on 1-johtiminen ohjelmoitava lämpötila-anturi maksimi-integroidusta. Sitä käytetään laajalti lämpötilan mittaamiseen kovissa ympäristöissä, kuten kemiallisissa liuoksissa, kaivoksissa tai maaperässä jne. Käytin sitä vesisäiliön vesilämpötilan mittaamiseen.
Tuotetiedot
1x RC522 RFID -moduuli
RC522 on 13,56 MHz: n RFID -moduuli, joka perustuu NXP -puolijohteiden MFRC522 -ohjaimeen. Moduuli tukee I2C: tä, SPI: tä ja UARTia ja toimitetaan normaalisti RFID -kortin ja avaimenperän mukana. Sitä käytetään yleisesti läsnäolojärjestelmissä ja muissa henkilöiden/esineiden tunnistussovelluksissa. Tässä projektissa sitä käytetään tunnistus-/kirjautumisjärjestelmään.
Tuotetiedot
Ja 2 toimilaitetta:
1x peristalttinen pumppu 12-24V
Käytin peristalttista pumppua veden saamiseksi säiliöstä vesipulloon. Useimmat pumput olivat liian hitaita, joten valitsin 24 V: n version, jota käytän 24 V: n verkkolaitteella.
1x LCD -näyttö
Nestekidenäytössä näytetään IP -osoite ja tärkeät viestit. Nestekidenäyttö (LCD) on litteänäyttö tai muu elektronisesti moduloitu optinen laite, joka käyttää nestekiteiden valoa moduloivia ominaisuuksia yhdistettynä polarisaattoreihin.
Tuotetiedot
Kotelo
Puhuttaessa kotelosta, tein DIY -tarvikkeita Home -varastosta (minun tapauksessani Brico Belgiassa). Käytin vaneria, jonka leikkasin oikean kokoiseksi. Puhun siitä, miten tein tapaukseni seuraavassa vaiheessa, mutta tässä on tarvitsemasi asiat:
- 3x vanerilaudat
- 1x pieni suppilo
- 1x vesisäiliö (voit valita haluamasi määrän, menin 10 litraan)
- 1x tippa -alusta
Löydät kaikki materiaalit ja hinnat liitteenä olevasta tuoteselosteesta.
Vaihe 1: Kytke kaikki elektroniikka
Nyt kun olemme tiivistäneet kaiken elektroniikan, on aika yhdistää ne. Tein kaksi Fritzing -piiriä, yhden leipälevyn ja yhden kaavion, näyttääkseni kuinka ja missä kaikki elektroniikka tulisi kytkeä. Löydät Fritzingin latauslinkin täältä: https://fritzing.org/download/. Kuten aiemmin mainittiin, käytin Raspberry Pi -laitetta ja liitin vedelle RFID -skannerin, kaksi ultraäänianturia, yhden lämpötila -anturin, nestekidenäytön ja peristalttisen pumpun.
Liitin kaksi piiriä PDF -tiedostoon, jos haluat tarkastella sitä tarkemmin.
Vaihe 2: Asenna Raspberry Pi
Käytämme Raspberry Pi -laitettamme ajamaan ja hallitsemaan kaikkea: taustajärjestelmää, käyttöliittymää ja tietokantaa.
Raspberry Pi ei toimi automaattisesti. Meidän on käytävä läpi joitakin vaiheita, jotta voimme käyttää sitä.
Vaihe 1: Raspbian
Jos käytät uutta Raspberry Pi: tä, tarvitset raspbianin. Latauslinkki ja opetusohjelma löytyvät täältä.
Vaihe 2: Kirjoita kuva SD -levylle
Nyt kun sinulla on Raspbian -kuvasi, tarvitset kuvankirjoitusohjelmiston (suosittelen win32diskimager) kirjoittaaksesi kuvatiedoston SD -kortille. Koko opetusohjelma löytyy täältä.
Vaihe 3: Kirjautuminen Raspberry Pi: hen
Avaa "Powershell" ja kirjoita "ssh [email protected]". Jos kaikki menee oikein, he pyytävät sinulta salasanaa (oletussalasana on aina vadelma). Normaalisti tämän pitäisi kirjata sinut Raspberry Pi: hen. Nyt meidän on tehtävä joitain muutoksia asetuksiimme. Kirjoita päätelaitteeseen sudo raspi-config ja paina enter. Siirry lokalisointiasetuksiin> muuta aikavyöhykettä ja aseta se aikavyöhykkeesi. Sinun tulisi myös vaihtaa wi-fi-maa omaan sijaintiisi. Siirry lopuksi liitäntävaihtoehtoihin ja ota käyttöön SPI, I2C ja 1-johdin. Tämä on tärkeää, jotta antureita käytetään oikein.
Vaihe 4: Internet -yhteyden määrittäminen
Käytämme WiFi -verkkoa. Voit lisätä kotiverkkosi seuraavasti:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Sinun on käynnistettävä Pi uudelleen, jotta voit muodostaa yhteyden. Jos haluat tarkistaa, toimiiko se, voit tarkistaa ifconfigin avulla, onko IP -osoite olemassa.
Vaihe 5: Verkkopalvelimen ja tietokannan määrittäminen
Ensinnäkin on parasta päivittää ja päivittää järjestelmä seuraavalla komentojonolla:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt -päivitys
- sudo apt päivitys
- sudo apt autoremove
Kun tämä on tehty, tarvitsemme verkkopalvelimellemme ja tietokantaamme seuraavat paketit:
Apache
sudo apt install apache2 -y
PHP
sudo apt asenna php
sudo apt install phpMyAdmin -y
Älä unohda asettaa suojattua MySQL -salasanaa, kun se pyytää salasanan asettamista.
MariaDB
sudo apt install mariadb-server mariadb-client -y
sudo apt asentaa php -mysql -y
sudo systemctl käynnistä apache2.service uudelleen
Vaihe 6: Python -kirjastojen asennus
Taustaohjelmaa varten tarvitsemme joitain Python -kirjastoja. Asennamme ne käyttämällä pip3: ta, koska käytämme python3: ta.
pip3 asenna mysql-connector-python
pip3 asentaa flask-socketio
pip3 asenna kolvipurkit
pip3 asennus gevent
pip3 asenna gevent-websocket
sudo apt asentaa python3 -mysql.connector -y
pip3 asenna mfrc522! (tarvitsemme tätä RFID -skannerin hyödyntämiseksi)
Vaihe 7: Visual Studio -koodin valmistelu
Koodin suorittamiseksi suosittelen käyttämään Visual Studio Codea Raspberry Pi -laitteen yhdistämiseen. Latauslinkki VSC: n asentamiseen löytyy täältä.
Jos et ole vielä asentanut etäkehitystä SSH: n avulla, löydät ohjeet tämän tekemiseen täältä.
Vaihe 3: Tietokannan luominen
Tallennamme kaikki anturitiedot ja käyttäjätiedot tietokantaan.
Tietokanta koostuu viidestä taulukosta:
Laite
Taulukkolaitteessa on DeviceID, joka viittaa itse laitteeseen. Laitteen nimi antaa laitteen nimen, tässä tapauksessa ultraäänianturin, lämpötila -anturin,… DeviceType kertoo laitteen tyypin (anturi tai toimilaite).
Historia
Taulukkohistoria sisältää kaiken anturihistorian sekä de date (HistoryDate) historian lisäyksen ja historian hetken arvon. Siinä on myös kaksi vierasta avainta:
- DeviceID, jos haluat linkittää tietyn lokin laitteeseen
- UserID, linkittää tietty käyttäjä lokiin (tämä johtuu siitä, että käytämme RFID: tä ja haluamme lisätä historialokin yhdelle tietylle käyttäjälle)
Käyttäjä
Taulukon käyttäjää käytetään luomaan käyttäjän kirjautumisjärjestelmä RFID -skannerilla. Se koostuu lempinimestä, etunimestä, sukunimestä, salasanasta ja RFID: stä (tämä on tunnisteen RFID -numero). Jokainen käyttäjä on linkitetty säiliöön (vesisäiliö) ja hänellä on myös ContainerID -tunnus vieraana avaimena.
Säiliö
Pöytäsäiliö koostuu kaikista erilaisista säiliöistä. Siinä on tunnus, ContainerLocation (tämä voi olla yritys, koti tai mikä tahansa muu). Lopuksi siinä on MaxLevel, joka tarkoittaa säiliön enimmäistilavuutta.
asetukset
Taulukkoasetuksilla on SettingsID, ja se seuraa jokaisen käyttäjän DailyGoal -arvoa + päivämäärää, jolloin käyttäjä lisäsi DailyGoalin. Tämä selittää vieraan avaimen käyttäjätunnuksen.
Tietokannan kaatopaikka löytyy GitHub -arkistostani tietokannasta.
Vaihe 4: Taustaohjelman määrittäminen
Ei ole projektia ilman toimivaa taustajärjestelmää.
Taustaohjelma koostuu 4 eri asiasta:
auttajia
Avustajat ovat kaikkia luokkia, joita käytetään eri antureille ja toimilaitteille. Lämpötila -anturille (DS18B20), ultraäänianturille (HCSR05) on apulainen etäisyyden mittaamiseen ja nestekidenäytölle voidaan kirjoittaa viestejä näytölle.
arkistot
Varastojen kansiosta löydät 2 Python -tiedostoa:
- Database.py, joka auttaa rivejä poistamaan tietokannastasi. Se helpottaa tietokannan suorittamista ja lukemista.
- DataRepository.py joka sisältää kaikki SQL -kyselyt, joita käytetään pääkoodissa (app.py). Niitä käytetään tietojen hakemiseen, päivittämiseen tai poistamiseen tietokannasta.
app.py
Tämä on projektin tärkein taustakoodi. Se tekee asennuksen määrittelemällä kaikki nastat ja tilat ja sisältää koodin pumpun toimimiseksi, lämpötilan saamiseksi, käyttäjän saamiseksi ja niin edelleen. Se sisältää myös reitit, joita käytetään tietojen noutamiseen tietokannasta ja kaikista socketio.on -osoitteista. Jokaisella HTML -sivulla on eri socketio.on, joka varmistaa, että jokainen toiminto toimii oikeaan aikaan.
config.py
Meillä on yksi tiedosto jäljellä: config.py. Tässä tiedostossa on määritysvaihtoehdot, joiden avulla voit muodostaa yhteyden tietokantaasi. Muista asettaa tietokantatietosi.
Taustaohjelma löytyy arkistostani Backend.
Vaihe 5: Käyttöliittymän asentaminen
Käyttöliittymää varten aloitin suunnittelulla siitä, miltä verkkopalvelimeni pitäisi näyttää AdobeXD: ssä. Käytin logon värejä, jotka ovat oranssi ja 2 eri sävyä sinistä. Yritin pitää suunnittelun mahdollisimman yksinkertaisena ja loin vesipisaran, joka näyttää prosenttiosuuden siitä, missä määrin olet saavuttanut päivän tavoitteesi.
GitHub -arkistostani löydät käyttöliittymäni kohdasta Koodi> Käyttöliittymä. On tärkeää, että liität tämän Raspberry Pi -kansiosi /var /html -kansioon, jotta se on saatavilla verkkopalvelimelta.
Se koostuu parista HTML -tiedostosta, jotka johtavat eri sivuille. Löydät myös screen.css: n, jossa on kaikki CSS -tiedostot, joita tarvitset, jotta se näyttää projektiltani. Lopuksi sinulla on erilaisia JavaScript -tiedostoja skriptien alla. Nämä komentosarjat kommunikoivat taustaohjelmani kanssa näyttääkseen tietoja tietokannastani tai taustajärjestelmästäni.
Taustaosa löytyy arkistostani Frontendistä.
Vaihe 6: Kotelon luominen
Jos puhumme tapauksestani, siinä on kaksi pääosaa:
Kotelon ulkopuolella
Rakensin kotelon alusta. Käytin vanerilautoja ja sahasin ne oikeassa koossa. Ruuvasin kaikki lankut yhteen ja porasin reikiä nestekidenäytölle, painikkeelle, ultraäänianturille havaitsemaan, onko läsnä vesipulloa ja suppilo veden jakamiseksi. Jaoin koteloni eri osiin veden ja elektroniikan erottamiseksi toisistaan ja käytin kaapelialustaa suojaamaan kaapeleita vesivuodolta. Oheisesta videosta näet koteloni useimmat piirteet ja miten tein sen. Tulostin myös 3D -painikkeen, joka on liimattu normaaliin painikkeeseen. Lopuksi otin tippa -alustalla kiinni kaiken roiskuneen veden. Käytin myös saranoja voidakseni avata ja sulkea sivupaneelin katsoakseni elektroniikkaani. Voit aina käyttää käytettyä annostelijaa tai muita materiaaleja.
Rakenteeni tarkkoja mittauksia varten liitin PDF -tiedoston, jossa on kaikki kotelossa käytettyjen levyjen koot.
Vesisäiliö
Vesisäiliö ei ollut helppo tehtävä. Minulla oli vesisäiliö, jonka pohjassa oli reikä, joten minun piti teipata se vuotojen estämiseksi. Tarvitset neljä reikää: yksi lämpötila -anturia varten ja toinen pumpun letkua varten. toinen letkulle säiliön täyttämiseksi ja toinen ultraäänianturille. Tätä viimeistä varten 3D -tulostin sille kotelon, joka löytyy täältä. Tämä antaa anturille paremman suojan vettä vastaan. Porasin sitten suorakulmion säiliön yläosaan anturin lepäämiseksi.
Suositeltava:
Automaattinen käsidesi: 8 vaihetta
Automaattinen käsidesi: COVID-19-pandemiasta on tullut asia, jonka yleisö on kuullut hyvin usein vuoden 2020 aikana. Jokainen kansalainen, joka kuulee sanan”COVID-19”, ajattelee heti sanan”Vaarallinen”, “Tappava”,”Pidä puhtaana” "Ja muita sanoja. Tämä COVID-19 on myös
DIY automaattinen käsidesin annostelija: 6 vaihetta
DIY automaattinen käsidesin annostelija: Tässä projektissa rakennamme automaattisen käsidesin annostelijan. Tässä projektissa käytetään Arduinoa, ultraäänianturia, vesipumppua ja käsidesiä. Ultraäänianturia käytetään käsien läsnäolon tarkistamiseen desinfiointikoneen ulostulon alla
Lasten neloset hakkerointi itse ajamiseen, linjan seurantaan ja esteiden havaitsemiseen tarkoitettuun ajoneuvoon: 4 vaihetta
Kid's Quad hakkerointi itse ajavaan, linjanseurantaan ja esteiden havaitsemiseen tarkoitettuun ajoneuvoon: Tämän päivän opetusohjelmassa muutamme 1000 watin (kyllä, tiedän sen paljon!) Electric Kid's quadin itseajavaksi, linjanseurannaksi ja esteiden välttämiseksi. Esittelyvideo: https: //youtu.be/bVIsolkEP1kTämä projekti edellyttää seuraavia materiaaleja
Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaan Ratkaisu: 9 vaihetta (kuvilla)
Arduino -projekti: Testialueen LoRa -moduuli RF1276 GPS -seurantaa varten Ratkaisu: Liitäntä: USB - sarjaTarve: Chrome -selaintarve: 1 X Arduino Mega -tarve: 1 X GPS -tarve: 1 X SD -kortin tarve: 2 X LoRa -modeemi RF1276 Toiminto: Arduino Lähetä GPS -arvo pääkannalle - Päätietokanta tallentaa dataa Dataino Server Lora -moduulissa: Erittäin pitkä kantama
Poljinohjattu 5 gallonan vesiannostelija: 3 vaihetta
Jalkapoljinohjattu 5 gallonan vesiannostelija: Joissakin maissa, kuten asun (Turkki), olemme huolissamme käsipumpuista veden toimittamiseksi astiasta. Jotkut käsipumput ovat hankalia ja pienillä lapsilla on ongelmia tarvittavan tehon tuottamisessa. Joten ajattelin käyttää jalkaa