Obsah:
- Zásoby
- Krok 1: Pripojenie všetkej elektroniky
- Krok 2: Nastavenie Raspberry Pi
- Krok 3: Vytvorenie databázy
- Krok 4: Nastavenie backendu
- Krok 5: Nastavenie frontendu
- Krok 6: Vytvorenie puzdra
Video: Automatický dávkovač vody na sledovanie spotreby: 6 krokov
2024 Autor: John Day | [email protected]. Naposledy zmenené: 2024-01-30 11:57
Ahoj!
Pred niekoľkými mesiacmi som bol vo svojej izbe a premýšľal som, aký projekt by som chcel urobiť pre školskú úlohu. Chcel som urobiť niečo, čo by mi vyhovovalo a čo by mi v budúcnosti prospelo. Moja mama zrazu vošla do miestnosti a začala sa sťažovať, že nepije dosť vody. Hneď som mal zjavenie. Dostal som nápad vyrobiť automatický rozprašovač vody (ako v kine), ktorý by denne sledoval vašu spotrebu vody.
S Raspberry Pi, niekoľkými senzormi, čerpadlom a malými znalosťami som sa snažil, aby to bolo čo najlepšie.
Na konci všetkých krokov budete mať funkčný rozprašovač vody, ktorý naplní vašu fľašu s vodou a ktorý sa spojí a spolupracuje s vašim Raspberry Pi. Nielenže budete môcť sledovať svoju spotrebu vody na základe percenta, ale budete mať tiež možnosť zobraziť teplotu a hladinu vody vo svojej nádobe na vodu. Nakoniec si budete môcť skontrolovať svoje štatistiky. Ak vám to znie zaujímavo, určite to vyskúšajte a vyskúšajte sami!
Úložisko GitHub:
Zásoby
Mikrokontroléry
Raspberry Pi 4
Senzory a moduly
Použil som 4 senzory:
2xHC-SR04 Ultrazvukový senzor
Ultrazvukové senzory merajú vzdialenosť pomocou ultrazvukových vĺn. Hlava senzora vysiela ultrazvukové vlny a prijíma vlnu odrazenú späť od cieľa. Ultrazvukové snímače merajú vzdialenosť k cieľu meraním času medzi emisiou a príjmom. Použil som dva z nich, aby som skontroloval, či je v blízkosti fľaša, a zmeral som vzdialenosť od vody v nádrži.
Dátový hárok
1x snímač teploty DS18B20
DS18B20 je 1-vodičový programovateľný snímač teploty z maxima integrovaný. Je široko používaný na meranie teploty v tvrdom prostredí, ako sú chemické roztoky, bane alebo pôda atď. Použil som ho na meranie teploty vody v nádrži na vodu.
Dátový hárok
1x RC522 RFID modul
RC522 je 13,56 MHz modul RFID, ktorý je založený na radiči MFRC522 od polovodičov NXP. Modul podporuje I2C, SPI a UART a bežne sa dodáva s kartou RFID a kľúčenkou. Bežne sa používa v dochádzkových systémoch a iných aplikáciách na identifikáciu osôb/predmetov. V tomto projekte sa používa na identifikačný/prihlasovací systém.
Dátový hárok
A 2 pohony:
1x peristaltické čerpadlo 12-24V
Peristaltickým čerpadlom som dostal vodu z nádrže do fľaše s vodou. Väčšina čerpadiel bola príliš pomalá, a tak som siahol po 24V verzii, ktorú napájam 24V napájacím adaptérom.
1x LCD displej
LCD displej slúži na zobrazenie IP adresy a dôležitých správ. Displej s tekutými kryštálmi (LCD) je displej s plochým panelom alebo iné elektronicky modulované optické zariadenie, ktoré využíva vlastnosti tekutých kryštálov modulujúce svetlo kombinované s polarizátormi.
Dátový hárok
Plášť
Keď už hovoríme o kryte, urobil som si kutilstvo so zásobami z domáceho depa (v mojom prípade Brico v Belgicku). Použil som preglejku, ktorú som narezal na správnu veľkosť. V ďalšom kroku budem hovoriť o tom, ako som predložil svoj prípad, ale tu sú veci, ktoré budete potrebovať:
- 3x preglejkové dosky
- 1x Malý lievik
- 1x nádrž na vodu (môžete si vybrať, aké množstvo chcete, ja som išiel na 10 l)
- 1x Odkvapkávacia tácka
Všetky materiály a ceny nájdete v priloženom kusovníku.
Krok 1: Pripojenie všetkej elektroniky
Teraz, keď sme zhrnuli všetku elektroniku, je čas ich pripojiť. Vyrobil som dva obvody Fritzing, jeden nepájivý a jeden schematický, aby som vám ukázal, ako a kde by mala byť pripojená všetka elektronika. Odkaz na stiahnutie Fritzing nájdete tu: https://fritzing.org/download/. Ako som už spomenul, použil som Raspberry Pi a pripojil skener RFID, dva ultrazvukové snímače, jeden snímač teploty, LCD a peristaltické čerpadlo na vodu.
Oba obvody som pripojil v PDF, ak sa na to chcete pozrieť bližšie.
Krok 2: Nastavenie Raspberry Pi
Náš Raspberry Pi použijeme na spustenie a ovládanie všetkého: backendu, frontendu a databázy.
Raspberry Pi sa nespustí automaticky. Aby sme ho mohli začať používať, budeme musieť prejsť niekoľkými krokmi.
Krok 1: Raspbian
Ak používate úplne nový Raspberry Pi, budete potrebovať raspbian. Odkaz na stiahnutie a návod nájdete tu.
Krok 2: Zapisovanie obrázku na SD
Teraz, keď máte svoj obrázok Raspbian, budete potrebovať softvér na písanie obrázkov (odporúčam win32diskimager) na zápis súboru s obrázkom na kartu SD. Celý návod nájdete tu.
Krok 3: Prihlásenie sa do Raspberry Pi
Otvorte „Powershell“a zadajte „ssh [email protected]“. Ak je všetko v poriadku, požiada vás o heslo (predvolené heslo je vždy malinové). Normálne by vás to malo prihlásiť do Raspberry Pi. Teraz budeme musieť urobiť nejaké zmeny v našich nastaveniach. Do terminálu napíšte sudo raspi-config a stlačte Enter. Prejdite na možnosti lokalizácie> zmeňte časové pásmo a nastavte ho na svoje časové pásmo. Mali by ste tiež zmeniť svoju krajinu Wi-Fi na svoje vlastné miesto. Nakoniec prejdite na možnosti rozhrania a povoľte SPI, I2C a 1-vodičový. Toto bude dôležité pre správne používanie senzorov.
Krok 4: Nastavenie internetového pripojenia
Budeme používať WiFi sieť. Domácu sieť môžete pridať pomocou:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
Na nadviazanie spojenia budete musieť reštartovať svoj Pi. Ak chcete skontrolovať, či to funguje, môžete pomocou ifconfig skontrolovať, či existuje IP adresa.
Krok 5: Nastavenie webového servera a databázy
Najprv je najlepšie aktualizovať a aktualizovať systém pomocou nasledujúceho príkazu:
- sudo apt dist-upgrade --auto-remove -y
- sudo apt upgrade
- sudo apt aktualizácia
- sudo apt autoremove
Akonáhle to urobíme, budeme pre náš webový server a databázu potrebovať nasledujúce balíky:
Apache
sudo apt nainštalovať apache2 -y
PHP
sudo apt nainštalovať php
sudo apt install phpMyAdmin -y
Keď sa zobrazí výzva na nastavenie hesla, nezabudnite nastaviť bezpečné heslo MySQL.
MariaDB
sudo apt nainštalovať mariadb-server mariadb-klient -y
sudo apt install php -mysql -y
sudo systemctl reštartujte službu apache2.service
Krok 6: Inštalácia knižníc Pythonu
Na backend budeme potrebovať nejaké knižnice pre Python. Nainštalujeme ich pomocou pip3, pretože používame python3.
pip3 nainštalujte mysql-connector-python
pip3 nainštalujte flask-socketio
pip3 nainštalujte flask-cors
pip3 install gevent
pip3 nainštalujte gevent-websocket
sudo apt install python3 -mysql.connector -y
pip3 nainštalujte mfrc522! (budeme to potrebovať na používanie skenera RFID)
Krok 7: Príprava kódu Visual Studio
Na spustenie kódu odporúčam použiť Visual Studio Code na pripojenie vášho Raspberry Pi. Odkaz na stiahnutie inštalácie VSC nájdete tu.
Ak ešte nemáte nainštalovaný vzdialený vývoj pomocou SSH, kroky, ako to urobiť, nájdete tu.
Krok 3: Vytvorenie databázy
Všetky naše údaje zo senzorov a údaje o používateľoch uložíme do databázy.
Moja databáza sa skladá z 5 tabuliek:
Zariadenie
Tabuľkové zariadenie má ID zariadenia, ktoré odkazuje na samotné zariadenie. DeviceName uvádza názov zariadenia, v tomto prípade ultrazvukový snímač, teplotný snímač, … DeviceType udáva typ zariadenia (snímač alebo akčný člen).
História
História tabuliek obsahuje celú históriu senzorov, spolu s dátumom de (HistoryDate) bola história pridaná a hodnota momentu v histórii. Má tiež dva cudzie kľúče:
- DeviceID, ak chcete prepojiť konkrétny protokol so zariadením
- UserID na prepojenie konkrétneho používateľa s protokolom (pretože používame RFID a chceme pridať protokol histórie k jednému konkrétnemu používateľovi)
Používateľ
Tabuľkový používateľ sa používa na vytvorenie systému prihlásenia používateľa pomocou skenera RFID. Skladá sa z prezývky, krstného mena, priezviska, hesla a RFID (toto je číslo RFID tagu). Každý používateľ je prepojený s kontajnerom (vodnou nádržou) a ako cudzí kľúč nesie aj identifikátor kontajnera.
Kontajner
Stolový kontajner pozostáva zo všetkých rôznych kontajnerov. Má ID, ContainerLocation (môže to byť podnik, domov alebo čokoľvek iné). Nakoniec má MaxLevel, čo znamená maximálny objem, ktorý kontajner má.
nastavenie
Tabuľkové nastavenia majú ID nastavenia a sledujú dennú bránu každého používateľa + dátum, kedy užívateľ DailyGoal pridal. Toto vysvetľuje ID používateľa cudzieho kľúča.
Dump of the database can be found in my GitHub repository under Database.
Krok 4: Nastavenie backendu
Neexistuje projekt bez funkčného backendu.
Backend pozostáva zo 4 rôznych vecí:
pomocníci
Pomocníci sú všetky triedy používané pre rôzne snímače a akčné členy. K dispozícii je pomocník pre snímač teploty (DS18B20), pre ultrazvukové snímače (HCSR05), ktorý dokáže merať vzdialenosť, a pre displej LCD, ktorý dokáže písať správy na obrazovku.
úložiská
V priečinku archívy nájdete 2 súbory Pythonu:
- Database.py, ktorý je pomocníkom pri získavaní riadkov z databázy. Uľahčuje spustenie a čítanie databázy.
- DataRepository.py, ktorý obsahuje všetky dotazy SQL, ktoré sa používajú v hlavnom kóde (app.py). Používajú sa na získavanie, aktualizáciu alebo odstraňovanie údajov z databázy.
app.py
Toto je hlavný backendový kód projektu. Vykonáva nastavenie definovaním všetkých kolíkov a režimov a obsahuje kód na zaistenie funkčnosti čerpadla, na získanie teploty, na získanie používateľa a podobne. Obsahuje tiež trasy, ktoré sa používajú na načítanie údajov z databázy a všetkých soketov.on. Pre každú stránku HTML je iné socketio.on, aby sa zaistilo, že každá funkcia funguje v správnom čase.
config.py
Zostal nám jeden súbor: config.py. Toto je súbor s možnosťami konfigurácie na prepojenie s vašou databázou. Nezabudnite nastaviť prihlasovacie údaje do databázy.
Backend nájdete v mojom úložisku v časti Backend.
Krok 5: Nastavenie frontendu
V prípade frontendu som začal návrhom toho, ako by mal môj webový server vyzerať v programe AdobeXD. Vo svojom logu som použil farby, ktorými sú oranžová a 2 rôzne odtiene modrej. Snažil som sa udržať dizajn čo najjednoduchší a vytvoril som vodnú kvapku, ktorá ukazuje percento, do akej miery ste dosiahli svoj cieľ dňa.
V mojom úložisku GitHub nájdete môj frontend v časti Kód> Frontend. Je dôležité, aby ste to vložili do priečinka /var /html svojho Raspberry Pi, aby bol prístupný z webového servera.
Skladá sa z niekoľkých súborov HTML, ktoré vedú na rôzne stránky. Nájdete tu aj môj screen.css so všetkými CSS, ktoré potrebujete, aby vyzeral ako môj projekt. Nakoniec budete mať pod skriptmi rôzne súbory JavaScript. Tieto skripty komunikujú s mojím backendom a zobrazujú údaje z mojej databázy alebo backendu.
Backend nájdete v mojom úložisku pod Frontendom.
Krok 6: Vytvorenie puzdra
Ak hovoríme o mojom prípade, existujú dve hlavné časti:
Vonkajší plášť
Puzdro som postavil od nuly. Použil som preglejkové dosky a napílil ich v správnych veľkostiach. Zaskrutkoval som všetky dosky a vyvŕtal otvory pre LCD, tlačidlo, ultrazvukový senzor, aby som zistil, či je prítomná fľaša na vodu, a lievik na distribúciu vody. Rozdelil som svoj prípad na rôzne sekcie, aby bola voda a elektronika oddelené, a na ochranu káblov pred únikom vody som použil káblový žľab. V priloženom videu môžete vidieť väčšinu aspektov môjho puzdra a ako som ho vyrobil. Tiež som 3D vytlačil gombík, ktorý je prilepený k normálnemu tlačidlu. Nakoniec som pomocou odkvapkávača zachytil všetku rozliatu vodu. Tiež som použil pánty, aby som mohol otvoriť a zavrieť bočný panel, aby som sa mohol pozrieť na svoju elektroniku. Vždy môžete použiť dávkovač z druhej ruky alebo môžete použiť aj iný materiál.
Na presné meranie mojej zostavy som pripojil PDF so všetkými veľkosťami dosiek použitých v puzdre.
Nádrž na vodu
Nádrž na vodu nebola jednoduchá práca. Dostal som vodnú nádrž s otvorom na dne, takže som ju musel zalepiť páskou, aby sa zastavil únik. Budete potrebovať štyri otvory: jeden pre snímač teploty a jeden pre potrubie vašej pumpy. jeden pre hadičky na doplnenie nádrže a jeden pre ultrazvukový senzor. K tomuto poslednému som naň 3D vytlačil puzdro, ktoré nájdete tu. Vďaka tomu má senzor väčšiu ochranu pred vodou. Potom som vyvŕtal do hornej časti nádrže obdĺžnik, aby som nechal snímač zapnutý.
Odporúča:
Automatický gélový dávkovač alkoholu s Esp32: 9 krokov
Automatický dávkovač gélového alkoholu s Esp32: V tutoriále uvidíme, ako vytvoriť kompletný prototyp, ako zostaviť automatický dávkovač gélového alkoholu s esp32, ktorý bude zahŕňať montáž krok za krokom, elektronický obvod a tiež zdrojový kód, ktorý všetky krok za krokom vysvetlí. krok
ATtiny85 Nositeľné zariadenie na sledovanie vibrácií, sledovanie a programovanie ATtiny85 s Arduino Uno: 4 kroky (s obrázkami)
ATtiny85 Nositeľné hodinky na sledovanie vibrácií a programovanie ATtiny85 s Arduino Uno: Ako vyrobiť hodinky na sledovanie nositeľnej aktivity? Toto je nositeľný gadget navrhnutý tak, aby vibroval, keď zistí stagnáciu. Trávite väčšinu času pri počítači ako ja? Sedíte hodiny bez toho, aby ste si to uvedomovali? Potom je toto zariadenie
Sledovanie a sledovanie malých obchodov: 9 krokov (s obrázkami)
Track & trace pre malé obchody: Jedná sa o systém, ktorý je vytvorený pre malé obchody a ktorý sa má montovať na e-bicykle alebo e-skútre pri dodávkach na krátku vzdialenosť, napríklad v pekárni, ktorá chce dodávať pečivo. Čo znamená Track and Trace? Track and Trace je systém, ktorý používa približne
Alarmový systém pitia vody /monitor príjmu vody: 6 krokov
Alarmový systém pitia vody /Monitor príjmu vody: Mali by sme denne piť dostatočné množstvo vody, aby sme boli zdraví. Existuje tiež veľa pacientov, ktorí majú predpis piť každý deň určité množstvo vody. Harmonogram sme však bohužiaľ zmeškali takmer každý deň. Preto navrhujem
Inatel - SmartHome - SH2Y - Sledovanie systému a sledovanie okolitého prostredia: 6 krokov
Inatel - SmartHome - SH2Y - Sledovanie systému a okolité prostredie: Zobrazenie monitora a systém monitora a systému Ambiente " para Smart Homes, intuitívne monitorujúce aktuálny stav a teplotu "Temperatura", "Luminosidade" e " Senzor