Obsah:

Automatický dávkovač vody na sledovanie spotreby: 6 krokov
Automatický dávkovač vody na sledovanie spotreby: 6 krokov

Video: Automatický dávkovač vody na sledovanie spotreby: 6 krokov

Video: Automatický dávkovač vody na sledovanie spotreby: 6 krokov
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, November
Anonim
Automatický rozprašovač vody na sledovanie spotreby
Automatický rozprašovač vody na sledovanie spotreby
Automatický rozprašovač vody na sledovanie spotreby
Automatický rozprašovač vody na sledovanie spotreby

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

Pripojenie všetkej elektroniky
Pripojenie všetkej elektroniky
Pripojenie všetkej elektroniky
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:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt upgrade
  3. sudo apt aktualizácia
  4. 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

Vytvorenie databázy
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

Nastavenie frontendu
Nastavenie frontendu
Nastavenie frontendu
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

Vytvorenie puzdra
Vytvorenie puzdra
Vytvorenie puzdra
Vytvorenie puzdra
Vytvorenie puzdra
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: