Tartalomjegyzék:

Automatikus vízadagoló a fogyasztás követéséhez: 6 lépés
Automatikus vízadagoló a fogyasztás követéséhez: 6 lépés

Videó: Automatikus vízadagoló a fogyasztás követéséhez: 6 lépés

Videó: Automatikus vízadagoló a fogyasztás követéséhez: 6 lépés
Videó: Vízautomata vs ballonos vízadagoló 2024, November
Anonim
Automatikus vízadagoló a fogyasztás nyomon követéséhez
Automatikus vízadagoló a fogyasztás nyomon követéséhez
Automatikus vízadagoló a fogyasztás nyomon követéséhez
Automatikus vízadagoló a fogyasztás nyomon követéséhez

Szia!

Pár hónapja a szobámban gondolkodtam, hogy milyen projektet szeretnék megvalósítani egy iskolai feladathoz. Valami olyat akartam készíteni, ami nekem megfelel, és ami a jövőben hasznomra válik. Hirtelen anyám belépett a szobába, és panaszkodni kezdett, hogy nem ivott elég vizet. Azonnal epifániám volt. Az ötletem az volt, hogy készítsek egy automata vízadagolót (mint a moziban), amely napi szinten követi a vízfogyasztást.

Egy Raspberry Pi -vel, néhány érzékelővel, szivattyúval és kevés tudással megpróbáltam ezt a lehető legjobban megvalósítani.

Az összes lépés végén lesz egy működő vízadagolója, amely kitölti a palackot, és amely összeköti és kölcsönhatásba lép a Raspberry Pi -vel. Nemcsak százalékos arányban követheti nyomon a vízfogyasztást, hanem megtekintheti a víztartály hőmérsékletét és vízszintjét is. Végül ellenőrizheti statisztikáit. Ha ez érdekesnek tűnik számodra, mindenképpen nézd meg és próbáld ki te is!

A GitHub adattár:

Kellékek

Mikrokontrollerek

Raspberry Pi 4

Érzékelők és modulok

4 érzékelőt használtam:

2xHC-SR04 Ultrahangos érzékelő

Az ultrahangos érzékelők ultrahangos hullámok segítségével mérik a távolságot. Az érzékelőfej ultrahangos hullámot bocsát ki, és fogadja a célból visszavert hullámot. Az ultrahangos érzékelők a kibocsátás és a vétel közötti idő mérésével méri a távolságot a céltól. Kettőt használtam annak ellenőrzésére, hogy van -e üveg a közelben, és megmértem a tartályban lévő víz távolságát.

Adatlap

1x DS18B20 hőmérséklet -érzékelő

A DS18B20 egy 1-vezetékes, programozható hőmérséklet-érzékelő a maximumból. Széles körben használják a hőmérséklet mérésére kemény környezetben, például vegyi oldatokban, bányákban vagy talajban stb. A víztartály vízhőmérsékletének mérésére használtam.

Adatlap

1x RC522 RFID modul

Az RC522 egy 13,56 MHz -es RFID modul, amely az NXP félvezetők MFRC522 vezérlőjén alapul. A modul támogatja az I2C, az SPI és az UART használatát, és általában RFID kártyával és kulcstartóval szállítják. Általában használják jelenléti rendszerekben és más személy/tárgy azonosító alkalmazásokban. Ebben a projektben azonosító/bejelentkezési rendszerként használják.

Adatlap

És 2 hajtómű:

1x 12-24V perisztaltikus szivattyú

Perisztaltikus szivattyúval vittem a vizet a tartályból egy vizespalackba. A legtöbb szivattyú túl lassú volt, ezért 24V -os változatot választottam, amelyet 24V -os hálózati adapterrel táplálok.

1x LCD kijelző

Az LCD kijelző az IP -cím és a fontos üzenetek megjelenítésére szolgál. A folyadékkristályos kijelző (LCD) egy síkképernyős kijelző vagy más elektronikusan modulált optikai eszköz, amely a polarizátorokkal kombinált folyadékkristályok fénymoduláló tulajdonságait használja fel.

Adatlap

Burkolat

Ha már a burkolatról beszélünk, barkácsolást végeztem egy Home depóból (esetemben a belga Brico). Rétegelt lemezeket használtam, amelyeket megfelelő méretűre vágtam. Egy további lépésben arról fogok beszélni, hogyan hoztam létre ügyemet, de itt van, amire szüksége lesz:

  • 3x rétegelt lemez deszka
  • 1x Kis tölcsér
  • 1x víztartály (kiválaszthatja a kívánt mennyiséget, én 10 literre mentem)
  • 1x csepegtető tálca

Az összes anyagot és árakat megtalálhatja a mellékelt BOM -ban.

Lépés: Az összes elektronika csatlakoztatása

Az összes elektronika csatlakoztatása
Az összes elektronika csatlakoztatása
Az összes elektronika csatlakoztatása
Az összes elektronika csatlakoztatása

Most, hogy összesítettük az összes elektronikát, itt az ideje, hogy összekapcsoljuk őket. Készítettem két Fritzing áramkört, egy kenyeretáblát és egy vázlatos rajzot, hogy megmutassam, hogyan és hol kell csatlakoztatni az összes elektronikát. A Fritzing letöltési linkjét itt találja: https://fritzing.org/download/. Amint azt korábban említettük, Raspberry Pi -t használtam, és RFID -szkennert, két ultrahangos érzékelőt, egy hőmérséklet -érzékelőt, egy LCD -t és egy perisztaltikus szivattyút csatlakoztattam a vízhez.

A két áramkört PDF -ben csatoltam, ha közelebbről meg akarja nézni.

2. lépés: A Raspberry Pi beállítása

A Raspberry Pi -t használjuk minden futtatásához és vezérléséhez: a háttér, az előlap és az adatbázis.

A Raspberry Pi nem fut automatikusan. A használat megkezdéséhez néhány lépést kell végrehajtanunk.

1. lépés: Raspbian

Ha vadonatúj Raspberry Pi -t használ, szüksége lesz a raspbianra. A letöltési link és az oktatóanyag itt található.

2. lépés: A kép írása SD -re

Most, hogy megvan a Raspbian -képe, szüksége lesz egy képíró szoftverre (a win32diskimager -t javaslom) a képfájl SD -kártyára írásához. A teljes oktatóanyag itt található.

3. lépés: Jelentkezzen be a Raspberry Pi -be

Nyissa meg a "Powershell" parancsot, és írja be az "ssh [email protected]" parancsot. Ha minden jól megy, jelszót kérnek tőled (az alapértelmezett jelszó mindig málna). Általában ennek be kell jelentkeznie a Raspberry Pi -be. Most módosítanunk kell a beállításainkon. Írja be a sudo raspi-config parancsot a terminálba, és nyomja meg az enter billentyűt. Keresse meg a lokalizációs beállításokat> módosítsa az időzónát, és állítsa be az időzónára. Azt is meg kell változtatnia a wi-fi országot a saját helyére. Végül menjen az interfész lehetőségekhez, és engedélyezze az SPI-t, az I2C-t és az 1-vezetékes. Ez fontos lesz az érzékelők helyes használatához.

4. lépés: Az internetkapcsolat beállítása

WiFi hálózatot fogunk használni. Otthoni hálózatát az alábbi módon adhatja hozzá:

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

A kapcsolat létrehozásához újra kell indítania a Pi -t. Ha ellenőrizni szeretné, hogy működik -e, az ifconfig segítségével ellenőrizheti, hogy van -e IP -cím.

5. lépés: A webszerver és az adatbázis beállítása

Először is, a legjobb, ha frissíti és frissíti a rendszert a következő parancsokkal:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt frissítés
  3. sudo apt frissítés
  4. sudo apt autoremove

Ha ez megtörtént, a következő csomagokra lesz szükségünk webszerverünkhöz és adatbázisunkhoz:

Apache

sudo apt install apache2 -y

PHP

sudo apt telepítse a php -t

sudo apt install phpMyAdmin -y

Ne felejtse el beállítani a biztonságos MySQL jelszót, amikor jelszót kér.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php -mysql -y

sudo systemctl indítsa újra az apache2.service szolgáltatást

6. lépés: A Python könyvtárak telepítése

A háttérrendszerhez szükségünk lesz néhány könyvtárra a Python számára. Ezeket a pip3 használatával telepítjük, mert python3 -at használunk.

pip3 telepítse a mysql-connector-python programot

pip3 telepítse a flask-socketio-t

pip3 telepítse a lombikhüvelyeket

pip3 install gevent

pip3 telepítse a gevent-websocket-et

sudo apt install python3 -mysql.connector -y

pip3 telepítse az mfrc522 -t! (erre szükségünk lesz az RFID szkenner használatához)

7. lépés: A Visual Studio kód előkészítése

A kód futtatásához javaslom a Visual Studio Code használatát a Raspberry Pi csatlakoztatásához. A letöltési link a VSC telepítéséhez itt található.

Ha még nincs telepítve a távoli fejlesztés SSH használatával, itt találhatja meg a lépéseket.

3. lépés: Az adatbázis létrehozása

Az adatbázis létrehozása
Az adatbázis létrehozása

Az összes érzékelő- és felhasználói adatot adatbázisban tároljuk.

Az adatbázisom 5 táblázatból áll:

Eszköz

A Table Device rendelkezik DeviceID -vel, amely magára az eszközre utal. A DeviceName megadja az eszköz nevét, ebben az esetben ultrahangos érzékelőt, hőmérséklet -érzékelőt,… DeviceType megadja az eszköz típusát (érzékelő vagy működtető).

Történelem

A Táblázatelőzmények tartalmazzák az összes érzékelő előzményt, valamint a dátumot (HistoryDate), az előzményeket és a történelem pillanatának értékét. Két idegen kulccsal is rendelkezik:

  • DeviceID, ha egy adott naplót egy eszközhöz szeretne kapcsolni
  • UserID, egy adott felhasználó összekapcsolása a naplóval (ez azért van, mert RFID -t használunk, és hozzá szeretnénk adni az előzménynaplót egy adott felhasználóhoz)

Felhasználó

A Table User (Felhasználói táblázat) felhasználói bejelentkezési rendszer létrehozására szolgál az RFID szkennerrel. Ez egy becenévből, keresztnévből, vezetéknévből, jelszóból és RFID -ből áll (ez egy címke RFID -száma). Minden felhasználó tárolóhoz (víztartályhoz) kapcsolódik, és a ContainerID -t idegen kulcsként hordozza.

Tartály

Az asztali konténer az összes különböző konténerből áll. Van egy azonosítója, egy ContainerLocation (ez lehet vállalkozás, otthon vagy bármi más). Végül van egy MaxLevel, amely a tartály maximális térfogatát jelenti.

Beállítások

A Táblázatbeállításoknak van egy beállításazonosítója, és nyomon követi minden felhasználó DailyGoalját, valamint azt a dátumot, amikor a felhasználó hozzáadta a DailyGoalt. Ez magyarázza az idegen kulcs felhasználói azonosítóját.

Az adatbázis kiíratása megtalálható a GitHub lerakatomban az adatbázis alatt.

4. lépés: A háttérrendszer beállítása

Nincs projekt működő háttérrendszer nélkül.

A háttérrendszer 4 különböző dologból áll:

segítők

A segédek a különböző érzékelők és állítóművek osztályai. Van egy segítő a hőmérséklet -érzékelőhöz (DS18B20), az ultrahangos érzékelőkhez (HCSR05) a távolság méréséhez és az LCD -hez, hogy üzeneteket írhasson a képernyőre.

adattárak

A lerakatok mappában 2 Python -fájlt talál:

  • Database.py, amely segít eltávolítani a sorokat az adatbázisból. Ez megkönnyíti az adatbázis végrehajtását és olvasását.
  • A DataRepository.py, amely tartalmazza az összes SQL lekérdezést, amelyek a fő kódban (app.py) használatosak. Ezeket arra használják, hogy adatokat szerezzenek be, frissítsenek vagy töröljenek az adatbázisból.

app.py

Ez a projekt fő háttérkódja. A beállítást az összes csap és üzemmód meghatározásával végzi, és tartalmazza a szivattyú működésének, a hőmérséklet beállításának, a felhasználó stb. Tartalmazza az adatbázisból és az összes socketio.on -ból származó adatok lekérésére használt útvonalakat is. Minden HTML -oldalhoz más socketio.on, hogy minden funkció a megfelelő időben működjön.

config.py

Egy fájlunk maradt: config.py. Ez a fájl tartalmazza az adatbázishoz való kapcsolódáshoz szükséges konfigurációs lehetőségeket. Ne felejtse el beállítani az adatbázis hitelesítő adatait.

A háttértár megtalálható a háttértáromban a Háttér.

5. lépés: Az előlap beállítása

A kezelőfelület beállítása
A kezelőfelület beállítása
A kezelőfelület beállítása
A kezelőfelület beállítása

A kezelőfelülethez azzal kezdtem, hogy megterveztem, hogyan kell kinéznie a webszervernek az AdobeXD -ben. A logómban szereplő színeket használtam, amelyek narancssárga és 2 különböző kék árnyalatúak. Próbáltam a tervezést a lehető legegyszerűbbé tenni, és létrehoztam egy vízcseppet, amely megmutatja, hogy hány százalékban érte el napi célját.

A GitHub tárolómban megtalálom a kezelőfelületemet a Kód> Frontend menüpont alatt. Fontos, hogy ezt illessze be a Raspberry Pi /var /html mappájába, hogy hozzáférhető legyen a webszerverről.

Pár HTML fájlból áll, amelyek a különböző oldalakhoz vezetnek. Megtalálja a screen.css fájlt is az összes olyan CSS -sel, amire szüksége lesz, hogy úgy nézzen ki, mint a projektem. Végül különböző JavaScript -fájlok lesznek a szkriptek alatt. Ezek a szkriptek kommunikálnak a háttérprogramommal, hogy adatokat jelenítsenek meg az adatbázisomból vagy a háttérprogramomból.

A háttér megtalálható a táromban a Frontend alatt.

6. lépés: A burkolat létrehozása

A burkolat létrehozása
A burkolat létrehozása
A burkolat létrehozása
A burkolat létrehozása
A burkolat létrehozása
A burkolat létrehozása

Ha az én esetemről beszélünk, két fő része van:

Külső burkolat

A házat a semmiből építettem. Rétegelt lemez deszkákat használtam, és megfelelő méretben fűrészeltem. Összecsavartam az összes deszkát, és lyukakat fúrtam az LCD -hez, a gombhoz, az ultrahangos érzékelőhöz, hogy érzékeljem, van -e vizespalack, és a tölcsért a víz elosztására. A tokomat különböző szakaszokra osztottam, hogy a víz és az elektronika elkülönüljön, és kábeltálcát használtam a kábelek vízszivárgás elleni védelmére. A mellékelt videóban láthatja a burkolatom legtöbb aspektusát és azt, hogyan készítettem. 3D -ben kinyomtattam egy gombot is, ami egy normál gombhoz van ragasztva. Végül csepegtető tálcával felfogtam az összes kiömlött vizet. Pántokat is használtam, hogy kinyithassam és bezárjam az oldalsó panelt, hogy megnézzem az elektronikámat. Mindig használhat használt adagolót, vagy más anyagokat is.

Az építésem pontos méréséhez csatoltam egy PDF -t, amely tartalmazza a tokban használt lemezek minden méretét.

Víztartály

A víztartály nem volt könnyű feladat. Kaptam egy víztartályt, lyukkal az alján, ezért ragasztani kellett, hogy megállítsam a szivárgást. Négy lyukra lesz szüksége: egy a hőmérséklet -érzékelőhöz, egy a szivattyú csöveihez. az egyik a tartály utántöltésére szolgáló csőhöz, a másik az ultrahangos érzékelőhöz. Ez utóbbihoz 3D -t nyomtattam hozzá egy tokot, amely itt található. Ez nagyobb védelmet nyújt az érzékelőnek a víz ellen. Ezt követően egy négyszöget fúrtam a tartály tetejébe, hogy rákapcsoljam az érzékelőt.

Ajánlott: