Innholdsfortegnelse:
- Trinn 1: Installasjonsveiledning
- Trinn 2: Showcase of Control
- Trinn 3: Liste over deler/programvare som brukes i prosjektet
- Trinn 4: I/0 -liste
- Trinn 5: Koblingsskjema
- Trinn 6: Arduino -koden
- Trinn 7: Raspberry Pi 3 B+
- Trinn 8: Python
- Trinn 9: MySQL
- Trinn 10: Node-rød
Video: UCL - IIOT drivhus: 11 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Dette prosjektet er en forlengelse av vårt tidligere prosjekt med drivhuset (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
I dette prosjektet la vi til en database, der vi logger alle dataene våre og deretter visualiserer dem med node-rød for en større oversikt.
Innholdet vi logger inn i databasen vår er Fuktighet, temperatur og fuktighet i jorda, som er vist i forskjellige diagrammer.
I tillegg til dataloggin kan vi også kontrollere hvilken profil som er aktiv i drivhuset og fjernkontrollere den.
Da kan vi også styre pumpen og viften manuelt.
Trinn 1: Installasjonsveiledning
Første trinn er å installere alle de forskjellige komponentene.
Inne i brakettene () har vi listet opp hvor komponenten er koblet til. Så for eksempel er Arduino koblet til Raspberry Pi via en USB -kabel.
Maskinvare som brukes:
- Arduino (bringebær Pi)
- Bringebær Pi 3 B+
- Jordhygrometer (Arduino)
- DHT11 -sensor (Arduino)
- HG-320 nedsenkbar vannpumpe (relé)
- 5V relé (Arduino)
- En datamaskinvifte (relé)
- 230V strømforsyning (pumpe)
Programvare som brukes:
- Raspbian (OS for Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
- MySQL -server (freemysqlhosting.net)
Først må du koble til maskinvarekomponentene, så følg denne veiledningen for å bygge drivhuset: Installasjonsveiledning.
Da må du installere Raspbian OS på Raspberry Pi. Etter det må du installere Python, og deretter installere python -bibliotekene.
Neste trinn er å installere Node-Red på Raspberry Pi, og deretter navigere til pallettbehandling og installere modulene som er nevnt tidligere.
Gå deretter til dette nettstedet Free MySQL Server og lag en gratis MySQL server.
Når alt dette er gjort, er du klar til å overføre python-skriptet til Raspberry Pi, importere Node-Red-skriptet og laste opp koden for Arduino.
Trinn 2: Showcase of Control
Trinn 3: Liste over deler/programvare som brukes i prosjektet
Vi har brukt følgende teknologi for å lage drivhuset
- Arduino
- Bringebær Pi
- Node-rød
- Python
- PHPMyAdmin
Trinn 4: I/0 -liste
Trinn 5: Koblingsskjema
Trinn 6: Arduino -koden
Arduino -koden fungerer ved å skrive ut dataene, målt av sensorene, til den serielle tilkoblingen der den leses av Raspberry Pi og overføres til databasen.
Arduinoen har også noen digitale inngangspinner koblet til Raspberry Pi som Arduino leser, og hvis en av de tre blir HØY, vil profilen endres på grunn av en IF -setning.
Vi har også oppgradert koden til å bruke Millis i stedet for forsinkelse som gjør at rumpa og resten av koden kan leses hele tiden i stedet for et intervall med den gamle forsinkelsen.
Trinn 7: Raspberry Pi 3 B+
Vi brukte en Raspberry Pi 3 B+ for å koble vår Arduino til internett og en MySQL -database. Dette gjorde det mulig for oss å lagre data fra sensorene våre og lage et visuelt grensesnitt for sluttbrukeren. For brukergrensesnittet brukte vi Node-Red med Dashboard-paletten.
Men før vi kunne vise sensordataene våre på Node-Red, trengte vi en måte å laste opp dataene på en MySQL-database, og for det laget vi et Python-script som ville kjøre på vår Raspberry Pi.
Trinn 8: Python
Python-skriptet brukes til å motta data fra seriekommunikasjonen som kommer fra Arduino. Skriptet sender deretter dataene til en MySQL -database.
Vi brukte to biblioteker, pyserial og mysqlclient.
Så det første trinnet ville være å laste ned disse to bibliotekene:
- PySerial
- MySQLclient
PySerial brukes til å samle inn data fra Arduino via seriell kommunikasjon.
device = '/dev/ttyUSB0'
arduino = serial. Serial (enhet, 9600)
Den første linjen brukes til å definere vår COM-port. På Raspberry Pi er det /dev /ttyUSB0, som vi bruker til Arduino. Den andre linjen er for å åpne den serielle porten til Arduino. Vi definerer bare hvilken COM-port og med hvilken hastighet tilkoblingen kjører.
Resten av koden kjører i en stund -sløyfe.
Deretter bruker vi flere Try and Except -blokker. Først prøver koden å kjøre inne i Try -blokken, hvis det mislykkes, kjører den Except -blokken. Men hvis Try -blokken går bra, kjører den ikke Except -blokken, den kjører bare resten av koden.
Så inne i Try-blokkene har vi kode som vil lese seriekommunikasjonen og deretter sende den til vår MySQL-database.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Så koden ovenfor er for å lese linjer i seriekommunikasjonen. Tallet på slutten av koden definerer linjen som er lest i serien. Så disse linjene blir kategorisert i forskjellige variabler.
Når data fra Arduino er mottatt, brukte vi mysqlclient -modulen for å sende dataene til vår MySQL -server.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", bruker = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Denne linjen er for tilkobling til vår MySQL -database. Den spesifiserer serveren, brukernavnet, passordet og hvilken database den skal koble seg til på serveren. Her bør du spesifisere tilkoblingen til MySQL DB.
db.query ("INSERTINTO` TempHumid` (`temp`,` fuktig`, `hygro`) VERDIER (%s, %s, %s)" %(temp, fuktig, hygro))
Så her tar vi vår DB -tilkobling og lager en SQL -spørring. Spørringen sier at verdier må settes inn i tabellen "TempHumid" og deretter i kolonnene "temp", "fuktig" og "hygro". Den siste delen "(%s, %s, %s)" er strengformatering og brukes til å gi databasen et format som den kan lese.
Og all denne handlingen legges inn i en stund -sløyfe, slik at vi fortsetter å få data sendt til MySQL -serveren.
Last ned python -skriptet (TempHumid.py) hvis du vil se all koden.
Trinn 9: MySQL
For MySQL -serveren brukte vi en gratis tjeneste på www.freemysqlhosting.net. Vi kunne ha laget en server lokalt på Raspberry Pi, men vi gikk med gratis -tjenesten for å gjøre den fullstendig koblet til skyen/internett.
For å få tilgang til MySQL, må du gå til phpmyadmin.co og logge inn med legitimasjonen fra freemysqlhosting -kontoen din.
Når du er inne, må du lage et bord som heter "TempHumid", inne i denne tabellen må du lage 4 kolonner kalt "ID", "temp", "fuktig" og "hygro". Den første kolonnen (ID) må du merke av i boksen A_I (Auto Increment). Dette er slik at ID -kolonnen gir hvert datasett en ID. Alle de følgende kolonnene må angis som et INT (heltall), og sett standardverdien til NULL.
Trinn 10: Node-rød
I vårt prosjekt brukte vi Node-Red for å lage et grafisk grensesnitt. Node-Red kjører på Raspberry Pi og samler inn data fra vår MySQL-database og viser disse dataene med donutformede målere og grafiske diagrammer, slik at sluttbrukeren kan overvåke dataene. Det smarte med Node-Red er at det kan sees på hvilken som helst enhet, noe som betyr at nettstedet vil bli endret størrelsen på den gitte enheten som ser på innholdet.
For å installere vår Node-Red-programmering, se på trinn 1 og last ned dokumentet "Node-Red.docx". Kopier og lim inn teksten i Node-Red via importfunksjonen i øvre høyre hjørne.
Etter det endrer du DB -innstillingene for MySQL DB.
Anbefalt:
Automatisk innendørs drivhus basert på Ikea Socker: 5 trinn
Automatisk innendørs drivhus basert på Ikea Socker: Hei, dette er min første instruks. Jeg lærte mye med dette fellesskapet, og jeg tror det er på tide å returnere mine ydmyke ideer. Jeg beklager min engelsk, er dårlig, men jeg skal gjøre alt jeg kan. Tanken var å lage et drivhus på skrivebordet som lot meg vokse frø og
Automatisere et drivhus med LoRa! (Del 2) -- Motorisert vindusåpner: 6 trinn (med bilder)
Automatisere et drivhus med LoRa! (Del 2) || Motorisert vindusåpner: I dette prosjektet skal jeg vise deg hvordan jeg laget en motorisert vindusåpner for drivhuset mitt. Det betyr at jeg vil vise deg hvilken motor jeg brukte, hvordan jeg designet det egentlige mekaniske systemet, hvordan jeg kjørte motoren og til slutt hvordan jeg brukte en Arduino LoRa
Fantastisk drivhus med automatisk vanning, internettforbindelse og mye mer: 7 trinn (med bilder)
Fantastisk drivhus med automatisk vanning, internettforbindelse og mye mer: Velkommen til denne instruksen. I begynnelsen av mars var jeg i en hagebutikk og så noen drivhus. Og siden jeg ønsket å lage et prosjekt med planter og elektronikk lenge lenge, gikk jeg videre og kjøpte et: https://www.instagram.com/p
Automatisere et drivhus med LoRa! (Del 1) -- Sensorer (temperatur, fuktighet, jordfuktighet): 5 trinn
Automatisere et drivhus med LoRa! (Del 1) || Sensorer (temperatur, fuktighet, jordfuktighet): I dette prosjektet skal jeg vise deg hvordan jeg automatiserte et drivhus. Det betyr at jeg vil vise deg hvordan jeg bygde drivhuset og hvordan jeg koblet til strøm- og automatiseringselektronikken. Jeg vil også vise deg hvordan du programmerer et Arduino -kort som bruker L
Smart drivhus: 12 trinn
Smart drivhus: Har du noen gang hatt problemet med at det var for varmt i drivhuset ditt, så alle plantene dine døde, fordi du glemte å åpne ventilasjonsåpningene? Ser ikke lenger, et smart drivhus er løsningen på dette problemet. Følgende trinn går deg gjennom hvordan bygge deg