Sisällysluettelo:

Automaattinen vesiannostelija kulutuksen seurantaan: 6 vaihetta
Automaattinen vesiannostelija kulutuksen seurantaan: 6 vaihetta

Video: Automaattinen vesiannostelija kulutuksen seurantaan: 6 vaihetta

Video: Automaattinen vesiannostelija kulutuksen seurantaan: 6 vaihetta
Video: Отопление частного дома автоматическим пеллетным твердотопливным котлом. Какой расход пеллет? 2024, Marraskuu
Anonim
Automaattinen vesiannostelija kulutuksen seurantaan
Automaattinen vesiannostelija kulutuksen seurantaan
Automaattinen vesiannostelija kulutuksen seurantaan
Automaattinen vesiannostelija kulutuksen seurantaan

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

Kaiken elektroniikan liittäminen
Kaiken elektroniikan liittäminen
Kaiken elektroniikan kytkeminen
Kaiken elektroniikan kytkeminen

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:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt -päivitys
  3. sudo apt päivitys
  4. 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

Tietokannan luominen
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än asentaminen
Käyttöliittymän asentaminen
Käyttöliittymän asentaminen
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

Kotelon luominen
Kotelon luominen
Kotelon luominen
Kotelon luominen
Kotelon luominen
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: