Innehållsförteckning:
- Steg 1: Installationsguide
- Steg 2: Showcase of Control
- Steg 3: Lista över delar/programvara som används i projektet
- Steg 4: I/0 -lista
- Steg 5: Anslutningsdiagram
- Steg 6: Arduino -koden
- Steg 7: Raspberry Pi 3 B+
- Steg 8: Python
- Steg 9: MySQL
- Steg 10: Node-Red
Video: UCL - IIOT växthus: 11 steg
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
Detta projekt är en förlängning av vårt tidigare projekt med växthuset (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
I detta projekt lade vi till en databas, där vi loggar alla våra data och sedan visualiserar den med nod-röd för en större översikt.
Innehållet vi loggar in i vår databas är Jordens fuktighet, temperatur och fukt, som visas i olika diagram.
Förutom dataloggin kan vi också styra vilken profil som är aktiv i växthuset och fjärrstyra den.
Då kan vi också styra pumpen och fläkten manuellt.
Steg 1: Installationsguide
Första steget är att installera alla olika komponenter.
Inuti konsolerna () har vi listat var komponenten är ansluten till. Så till exempel är Arduino ansluten till Raspberry Pi via en USB -kabel.
Hårdvara som används:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B+
- Jordhygrometer (Arduino)
- DHT11 -sensor (Arduino)
- HG-320 nedsänkbar vattenpump (relä)
- 5V relä (Arduino)
- En datorfläkt (relä)
- 230V strömförsörjning (pump)
Programvara som används:
- Raspbian (OS för Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
- MySQL -server (freemysqlhosting.net)
Först måste du ansluta hårdvarukomponenterna, så följ den här guiden för att bygga växthuset: Installationsguide.
Då måste du installera Raspbian OS på din Raspberry Pi. Därefter måste du installera Python och sedan installera pythonbiblioteken.
Nästa steg är att installera Node-Red på Raspberry Pi och sedan navigera till palletthanteraren och installera de tidigare angivna modulerna.
Gå sedan till den här webbplatsen Gratis MySQL -server och skapa en gratis MySQL -server.
När allt detta är klart är du redo att överföra python-skriptet till din Raspberry Pi, importera Node-Red-skriptet och ladda upp koden för Arduino.
Steg 2: Showcase of Control
Steg 3: Lista över delar/programvara som används i projektet
Vi har använt följande teknik för att göra växthuset
- Arduino
- Raspberry Pi
- Nod-röd
- Pytonorm
- PHPMyAdmin
Steg 4: I/0 -lista
Steg 5: Anslutningsdiagram
Steg 6: Arduino -koden
Arduino -koden fungerar genom att skriva ut data, mätt av sensorerna, till den seriella anslutningen där den läses av Raspberry Pi och överförs till databasen.
Arduino har också några digitala inmatningsnålar anslutna till Raspberry Pi som Arduino läser och om en av de tre blir HÖG kommer profilen att ändras på grund av ett IF -uttalande.
Vi har också uppgraderat koden för att använda Millis istället för fördröjning som gör att rumpan och resten av koden kan läsas hela tiden istället för ett intervall med den gamla fördröjningen.
Steg 7: Raspberry Pi 3 B+
Vi använde en Raspberry Pi 3 B+ för att ansluta vår Arduino till internet och en MySQL -databas. Detta gjorde det möjligt för oss att lagra data från våra sensorer och skapa ett visuellt gränssnitt för slutanvändaren. För användargränssnittet använde vi Node-Red med instrumentpanelen.
Men innan vi kunde visa våra sensordata på Node-Red, behövde vi ett sätt att ladda upp data till en MySQL-databas, och för det skapade vi ett Python-skript som skulle köras på vår Raspberry Pi.
Steg 8: Python
Python-skriptet används för att ta emot data från seriekommunikationen som kommer från Arduino. Skriptet skickar sedan data till en MySQL -databas.
Vi använde två bibliotek, pyserial och mysqlclient.
Så första steget skulle vara att ladda ner dessa två bibliotek:
- PySerial
- MySQLclient
PySerial används för att samla in data från Arduino via seriell kommunikation.
enhet = '/dev/ttyUSB0'
arduino = serial. Serial (enhet, 9600)
Den första raden används för att definiera vår COM-port. På Raspberry Pi är det /dev /ttyUSB0, som vi använder för Arduino. Den andra raden är för att öppna serieporten till Arduino. Vi definierar bara vilken COM-port och med vilken hastighet anslutningen körs.
Resten av koden körs i en stundslinga.
Därefter använder vi flera Try and Except -block. Först försöker koden att köra inuti försöksblocket, om det misslyckas körs Except -blocket. Men om blocket Try körs bra kör det inte blocket Undantag, det kör bara resten av koden.
Så inuti Try-blocken har vi kod som kommer att läsa seriekommunikationen och sedan skicka den till vår MySQL-databas.
hygrolist = arduino.readlines (1)
mallist = arduino.readlines (2) humidlist = arduino.readlines (3)
Så ovanstående kod är för att läsa rader i seriekommunikationen. Siffran i slutet av koden definierar raden som har lästs i serien. Så dessa rader kategoriseras i olika variabler.
När data från Arduino tas emot använde vi mysqlclient -modulen för att skicka data till vår MySQL -server.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Denna rad är för anslutning till vår MySQL -databas. Den anger server, användarnamn, lösenord och vilken databas den ska ansluta till inuti servern. Här bör du ange anslutningen till din MySQL DB.
db.fråga ("INSERTINTO` TempHumid` (`temp`,` fuktig`, `hygro`) VÄRDEN (%s, %s, %s)" %(temp, fuktig, hygro))
Så här tar vi vår DB -anslutning och gör en SQL -fråga. Frågan säger att värden måste infogas i tabellen "TempHumid" och sedan i kolumnerna "temp", "fuktig" och "hygro". Den sista delen “(%s, %s, %s)” är strängformatering och används för att ge databasen ett format som den kan läsa.
Och all denna åtgärd läggs i en stundslinga, så att vi fortsätter att få data skickade till MySQL -servern.
Om du vill se all kod, ladda ner python -skriptet (TempHumid.py).
Steg 9: MySQL
För MySQL -servern använde vi en gratis tjänst på www.freemysqlhosting.net. Vi kunde ha gjort en server lokalt på Raspberry Pi, men vi gick med gratistjänsten för att göra den helt ansluten till molnet/internet.
För att komma åt din MySQL måste du gå till phpmyadmin.co och logga in med inloggningsuppgifterna från ditt freemysqlhosting -konto.
När du är inne måste du skapa en tabell som heter "TempHumid", inuti denna tabell måste du skapa 4 kolumner som heter "ID", "temp", "fuktig" och "hygro". Den första kolumnen (ID) måste du markera rutan A_I (Auto Increment). Detta är så att ID -kolumnen ger varje dataset ett ID. Alla följande kolumner måste ställas in som ett INT (heltal) och ställa in standardvärdet till NULL.
Steg 10: Node-Red
I vårt projekt använde vi Node-Red för att göra ett grafiskt gränssnitt. Node-Red körs på Raspberry Pi och samlar in data från vår MySQL-databas och visar dessa data med munkformade mätare och grafiska diagram, så att slutanvändaren kan övervaka data. Det smarta med Node-Red är att den kan visas på vilken enhet som helst, vilket innebär att webbplatsen kommer att ändras till den angivna enheten som tittar på innehållet.
För att installera vår Node-Red-programmering, se steg 1 och ladda ner dokumentet "Node-Red.docx". Kopiera sedan och klistra in texten i Node-Red via importfunktionen i det övre högra hörnet.
Ändra därefter DB -inställningarna för din MySQL DB.
Rekommenderad:
Automatiskt inomhus växthus baserat på Ikea Socker: 5 steg
Automatiskt inomhus växthus Baserat på Ikea Socker: Hej, det här är min första instruerbara. Jag lärde mig mycket med denna gemenskap, och jag tror att det är dags att återkomma med mina ödmjuka idéer. Jag är ledsen över min engelska, är dålig, men jag kommer att göra allt jag kan. Tanken var att göra ett växthus som låter mig odla frön och
Automatisera ett växthus med LoRa! (Del 2) -- Motoriserad fönsteröppnare: 6 steg (med bilder)
Automatisera ett växthus med LoRa! (Del 2) || Motoriserad fönsteröppnare: I det här projektet kommer jag att visa dig hur jag skapade en motoriserad fönsteröppnare för mitt växthus. Det betyder att jag kommer att visa dig vilken motor jag använde, hur jag utformade det faktiska mekaniska systemet, hur jag körde motorn och slutligen hur jag använde en Arduino LoRa
Greentent - Världens första mini -bärbara växthus med Arduino -temperatur och fuktmätning: 3 steg
Greentent - Världens första mini -bärbara gröna hus med Arduino -temperatur- och luftfuktighetsmätning: Jag kom först på idén om ett bärbart växthus som du kan flytta runt på natten när jag ville göra ett sätt att ha en liten trädgård i en låda med övervakad temperatur Så det är sent på kvällen och jag vill gå till en butik för att köpa dessa
Fantastiskt växthus med automatisk vattning, internetanslutning och mycket mer: 7 steg (med bilder)
Fantastiskt växthus med automatisk vattning, internetanslutning och mycket mer: Välkommen till denna instruktion. I början av mars var jag i en trädgårdsbutik och såg några växthus. Och eftersom jag redan länge ville göra ett projekt med växter och elektronik, gick jag vidare och köpte ett: https://www.instagram.com/p
Automatisera ett växthus med LoRa! (Del 1) -- Sensorer (temperatur, luftfuktighet, jordfuktighet): 5 steg
Automatisera ett växthus med LoRa! (Del 1) || Sensorer (temperatur, luftfuktighet, jordfuktighet): I det här projektet kommer jag att visa dig hur jag automatiserade ett växthus. Det betyder att jag kommer att visa dig hur jag byggde växthuset och hur jag kopplade ihop kraft- och automationselektroniken. Jag kommer också att visa dig hur du programmerar ett Arduino -kort som använder L