Obsah:

Automatický dávkovač vody ke sledování spotřeby: 6 kroků
Automatický dávkovač vody ke sledování spotřeby: 6 kroků

Video: Automatický dávkovač vody ke sledování spotřeby: 6 kroků

Video: Automatický dávkovač vody ke sledování spotřeby: 6 kroků
Video: Startovat auto se spojkou, nebo bez? Martin Vaculík vysvětlí, proč je jen jedna možnost správně 2024, Červenec
Anonim
Automatický dávkovač vody ke sledování spotřeby
Automatický dávkovač vody ke sledování spotřeby
Automatický dávkovač vody ke sledování spotřeby
Automatický dávkovač vody ke sledování spotřeby

Ahoj!

Před pár měsíci jsem byl ve svém pokoji a přemýšlel o tom, jaký projekt bych chtěl udělat pro školní úkol. Chtěl jsem udělat něco, co by mi vyhovovalo a co by mi do budoucna prospělo. Najednou do místnosti vešla moje matka a začala si stěžovat, že nepije dost vody. Okamžitě jsem měl zjevení. Napadlo mě vyrobit automatický rozprašovač vody (jako v kině), který by denně sledoval vaši spotřebu vody.

S Raspberry Pi, několika senzory, pumpou a malými znalostmi jsem se snažil, aby to bylo co nejlepší.

Na konci všech kroků budete mít pracovní dávkovač vody, který naplní vaši vodní láhev a který se propojí a bude komunikovat s vaším Raspberry Pi. Nejen, že budete moci sledovat svou spotřebu vody na základě procenta, ale budete mít také možnost zobrazit teplotu a hladinu vody v nádrži na vodu. Nakonec si budete moci zkontrolovat své statistiky. Pokud vám to zní zajímavě, nezapomeňte to vyzkoušet a vyzkoušet sami!

Úložiště GitHub:

Zásoby

Mikrokontroléry

Raspberry Pi 4

Senzory a moduly

Použil jsem 4 senzory:

2xHC-SR04 Ultrazvukový senzor

Ultrazvukové senzory měří vzdálenost pomocí ultrazvukových vln. Hlava senzoru vysílá ultrazvukovou vlnu a přijímá vlnu odraženou zpět od cíle. Ultrazvukové senzory měří vzdálenost k cíli měřením času mezi emisí a příjmem. Použil jsem dva z nich, abych zkontroloval, zda je poblíž láhev, a změřil vzdálenost k vodě v nádrži.

Datový list

1x teplotní senzor DS18B20

DS18B20 je 1vodičový programovatelný teplotní senzor od maxima integrovaný. Je široce používán k měření teploty v tvrdém prostředí, jako jsou chemické roztoky, doly nebo půda atd. Použil jsem ho k měření teploty vody v nádrži na vodu.

Datový list

1x RF5 modul RC522

RC522 je 13,56 MHz modul RFID, který je založen na řadiči MFRC522 od polovodičů NXP. Modul podporuje I2C, SPI a UART a obvykle se dodává s kartou RFID a klíčenkou. Běžně se používá v docházkových systémech a dalších aplikacích identifikace osob/předmětů. V tomto projektu se používá pro identifikační/přihlašovací systém.

Datový list

A 2 akční členy:

1x peristaltické čerpadlo 12-24V

Pomocí peristaltického čerpadla jsem dostal vodu z nádrže do láhve s vodou. Většina čerpadel byla příliš pomalá, takže jsem šel pro 24V verzi, kterou napájím 24V napájecím adaptérem.

1x LCD displej

LCD displej slouží k zobrazení IP adresy a důležitých zpráv. Displej z tekutých krystalů (LCD) je plochý displej nebo jiné elektronicky modulované optické zařízení, které využívá vlastnosti modulující světlo tekutých krystalů v kombinaci s polarizátory.

Datový list

Kryt

Když už mluvíme o plášti, udělal jsem si kutilství se zásobami z Home depa (v mém případě Brico v Belgii). Použil jsem překližku, kterou jsem nařezal na správnou velikost. Budu mluvit o tom, jak jsem svůj případ vytvořil v dalším kroku, ale tady jsou věci, které budete potřebovat:

  • 3x překližková prkna
  • 1x malý trychtýř
  • 1x nádrž na vodu (můžete si vybrat, jaké množství chcete, já jsem šel na 10 l)
  • 1x odkapávací miska

Všechny materiály a ceny najdete v přiloženém kusovníku.

Krok 1: Připojení veškeré elektroniky

Připojení veškeré elektroniky
Připojení veškeré elektroniky
Připojení veškeré elektroniky
Připojení veškeré elektroniky

Nyní, když jsme shrnuli veškerou elektroniku, je čas je připojit. Vytvořil jsem dva obvody Fritzing, jeden prkénko a jedno schéma, abych vám ukázal, jak a kam by měla být připojena veškerá elektronika. Odkaz ke stažení na Fritzing najdete zde: https://fritzing.org/download/. Jak již bylo zmíněno dříve, použil jsem Raspberry Pi a připojil skener RFID, dva ultrazvukové senzory, jeden teplotní senzor, LCD a peristaltické čerpadlo na vodu.

Oba obvody jsem připojil v PDF, pokud se na něj chcete podívat blíže.

Krok 2: Nastavení Raspberry Pi

Náš Raspberry Pi použijeme ke spuštění a ovládání všeho: backendu, frontendu a databáze.

Raspberry Pi se nespustí automaticky. Abychom jej mohli začít používat, budeme muset projít několika kroky.

Krok 1: Raspbian

Pokud používáte zcela nový Raspberry Pi, budete potřebovat raspbian. Odkaz na stažení a návod najdete zde.

Krok 2: Zápis obrázku na SD

Nyní, když máte obrázek Raspbian, budete potřebovat software pro psaní obrázků (doporučuji win32diskimager) pro zápis souboru obrázku na kartu SD. Celý návod najdete zde.

Krok 3: Přihlášení k Raspberry Pi

Otevřete „Powershell“a zadejte „ssh [email protected]“. Pokud je vše v pořádku, požádají vás o heslo (výchozí heslo je vždy malinové). Normálně by vás to mělo přihlásit k Raspberry Pi. Nyní budeme muset provést nějaké změny v našich nastaveních. Do terminálu zadejte sudo raspi-config a stiskněte Enter. Přejděte na možnosti lokalizace> změnit časové pásmo a nastavte ho na své časové pásmo. Měli byste také změnit svou zemi wi-fi na své vlastní místo. Nakonec přejděte na možnosti rozhraní a povolte SPI, I2C a 1vodič. To bude důležité pro správné použití senzorů.

Krok 4: Nastavení připojení k internetu

Budeme používat WiFi síť. Svou domácí síť můžete přidat pomocí:

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

Chcete -li se připojit, budete muset restartovat Pi. Chcete -li zkontrolovat, zda to funguje, můžete pomocí ifconfig zkontrolovat, zda existuje IP adresa.

Krok 5: Nastavení webového serveru a databáze

Nejprve je nejlepší aktualizovat a upgradovat systém pomocí následující posloupnosti příkazů:

  1. sudo apt dist-upgrade --auto-remove -y
  2. sudo apt upgrade
  3. sudo apt aktualizace
  4. sudo apt autoremove

Jakmile to bude hotové, budeme pro náš webový server a databázi potřebovat následující balíčky:

Apache

sudo apt install apache2 -y

PHP

sudo apt nainstalovat php

sudo apt install phpMyAdmin -y

Když se zobrazí výzva k nastavení hesla, nezapomeňte nastavit zabezpečené heslo MySQL.

MariaDB

sudo apt install mariadb-server mariadb-client -y

sudo apt install php -mysql -y

sudo systemctl restartovat službu apache2.service

Krok 6: Instalace knihoven Pythonu

Pro backend budeme potřebovat nějaké knihovny pro Python. Nainstalujeme je pomocí pip3, protože používáme python3.

pip3 nainstalujte mysql-connector-python

pip3 install flask-socketio

pip3 nainstalujte flask-cors

pip3 install gevent

pip3 nainstalujte gevent-websocket

sudo apt install python3 -mysql.connector -y

pip3 nainstalujte mfrc522! (budeme to potřebovat k použití skeneru RFID)

Krok 7: Příprava kódu Visual Studio

Ke spuštění kódu doporučuji použít k připojení vašeho Raspberry Pi kód Visual Studio Code. Odkaz ke stažení pro instalaci VSC najdete zde.

Pokud ještě nemáte vzdálený vývoj nainstalovaný pomocí SSH, kroky, jak to provést, najdete zde.

Krok 3: Vytvoření databáze

Vytvoření databáze
Vytvoření databáze

Uložíme všechna naše data ze senzorů a uživatelská data do databáze.

Moje databáze se skládá z 5 tabulek:

přístroj

Tabulka Zařízení má ID zařízení, které odkazuje na samotné zařízení. DeviceName udává název zařízení, v tomto případě ultrazvukový senzor, teplotní senzor,… DeviceType udává typ zařízení (senzor nebo akční člen).

Dějiny

Historie tabulek obsahuje veškerou historii senzorů, spolu s datem de (HistoryDate) byla přidána historie a hodnota okamžiku v historii. Má také dva cizí klíče:

  • DeviceID, k propojení konkrétního protokolu se zařízením
  • ID uživatele, pro propojení konkrétního uživatele s protokolem (je to proto, že používáme RFID a chceme přidat protokol historie k jednomu konkrétnímu uživateli)

Uživatel

Tabulka Uživatel se používá k vytvoření systému pro přihlášení uživatele pomocí skeneru RFID. Skládá se z přezdívky, jména, příjmení, hesla a RFID (toto je číslo RFID tagu). Každý uživatel je propojen s kontejnerem (nádrž na vodu) a také nosí ContainerID jako cizí klíč.

Kontejner

Table Container se skládá ze všech různých kontejnerů. Má ID, ContainerLocation (může to být podnik, domov nebo cokoli jiného). Nakonec má MaxLevel, což znamená maximální objem, který kontejner má.

Nastavení

Nastavení tabulky má ID nastavení a sleduje DailyGoal každého uživatele + datum, kdy byl DailyGoal přidán uživatelem. To vysvětluje cizí klíč UserID.

Dump of the database can be found in my GitHub repository under Database.

Krok 4: Nastavení backendu

Neexistuje projekt bez funkčního backendu.

Backend se skládá ze 4 různých věcí:

pomocníci

Pomocníci jsou všechny třídy používané pro různé senzory a akční členy. K dispozici je pomocník pro teplotní senzor (DS18B20), pro ultrazvukové senzory (HCSR05), který dokáže měřit vzdálenost a pro LCD, aby mohl psát zprávy na obrazovku.

úložiště

Ve složce repozitáře najdete 2 soubory Pythonu:

  • Database.py, který je pomocníkem při získávání řádků z databáze. Usnadňuje spuštění a čtení databáze.
  • DataRepository.py, který obsahuje všechny dotazy SQL, které se používají v hlavním kódu (app.py). Používají se k získávání, aktualizaci nebo mazání dat z databáze.

app.py

Toto je hlavní backendový kód projektu. Provádí nastavení definováním všech kolíků a režimů a obsahuje kód pro spuštění čerpadla, získání teploty, získání uživatele atd. Obsahuje také trasy používané k načítání dat z databáze a všech socketio.on. Pro každou stránku HTML je jiné socketio.on, aby se zajistilo, že každá funkce funguje ve správný čas.

config.py

Zbývá nám jeden soubor: config.py. Toto je soubor s možnostmi konfigurace pro připojení k vaší databázi. Nezapomeňte nastavit své přihlašovací údaje do databáze.

Backend najdete v mém úložišti pod Backend.

Krok 5: Nastavení frontendu

Nastavení frontendu
Nastavení frontendu
Nastavení frontendu
Nastavení frontendu

U frontendu jsem začal návrhem, jak by měl můj webový server vypadat v AdobeXD. Ve svém logu jsem použil barvy, které jsou oranžové a 2 různé odstíny modré. Snažil jsem se udržet design co nejjednodušší a vytvořil jsem kapku vody, která ukazuje procento, do jaké míry jste dosáhli svého cíle dne.

V mém úložišti GitHub najdete můj Frontend pod Code> Frontend. Je důležité, abyste to vložili do složky /var /html vašeho Raspberry Pi, aby byla přístupná z webového serveru.

Skládá se z několika souborů HTML, které vedou na různé stránky. Najdete zde také můj screen.css se všemi CSS, které budete potřebovat, aby vypadal jako můj projekt. Nakonec budete mít pod skripty různé soubory JavaScript. Tyto skripty komunikují s mým backendem a zobrazují data z mé databáze nebo backendu.

Backend najdete v mém úložišti pod Frontendem.

Krok 6: Vytvoření pouzdra

Vytvoření pouzdra
Vytvoření pouzdra
Vytvoření pláště
Vytvoření pláště
Vytvoření pouzdra
Vytvoření pouzdra

Pokud mluvíme o mém případě, existují dvě hlavní části:

Vnější plášť

Pouzdro jsem postavil od nuly. Použil jsem překližková prkna a rozřezal je ve správných velikostech. Sešrouboval jsem všechna prkna k sobě a vyvrtal otvory pro LCD, tlačítko, ultrazvukový senzor, abych zjistil, zda je k dispozici láhev s vodou, a trychtýř pro distribuci vody. Rozdělil jsem svůj kufr do různých sekcí, aby byla voda a elektronika odděleny, a použil jsem kabelový žlab k ochraně kabelů před únikem vody. V přiloženém videu můžete vidět většinu aspektů mého pouzdra a jak jsem ho vyrobil. Také jsem 3D vytiskl tlačítko, které je přilepené k normálnímu tlačítku. Nakonec jsem pomocí odkapávacího tácku dohnal všechnu rozlitou vodu. Také jsem použil závěsy, abych mohl otevřít a zavřít boční panel a podívat se na svou elektroniku. Vždy můžete použít dávkovač z druhé ruky nebo také můžete použít jiný materiál.

Pro přesná měření mé sestavy jsem připojil PDF se všemi velikostmi desek použitých v pouzdře.

Nádrž na vodu

Nádrž na vodu nebyla snadná práce. Dostal jsem vodní nádrž s otvorem na dně, takže jsem ji musel přelepit, abych zastavil únik. Budete potřebovat čtyři otvory: jeden pro teplotní senzor a jeden pro potrubí vašeho čerpadla. jeden pro hadičky k doplnění nádrže a jeden pro ultrazvukový senzor. U tohoto posledního jsem k němu 3D vytiskl pouzdro, které najdete zde. Díky tomu má senzor větší ochranu před vodou. Poté jsem do horní části nádrže vyvrtal obdélník, na kterém bylo umístěno čidlo.

Doporučuje: