Indholdsfortegnelse:
- Trin 1: Installationsvejledning
- Trin 2: Fremvisning af kontrol
- Trin 3: Liste over dele/software, der bruges i projektet
- Trin 4: I/0 -liste
- Trin 5: Ledningsdiagram
- Trin 6: Arduino -koden
- Trin 7: Raspberry Pi 3 B+
- Trin 8: Python
- Trin 9: MySQL
- Trin 10: Knude-rød
Video: UCL - IIOT drivhus: 11 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
Dette projekt er en forlængelse af vores tidligere projekt med drivhuset (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
I dette projekt tilføjede vi en database, hvor vi logger alle vores data og derefter visualiserer dem med node-rød for et større overblik.
Det indhold, vi logger ind i vores database, er fugtighed, temperatur og fugtighed i jorden, som er vist i forskellige diagrammer.
Udover dataloggin er vi også i stand til at kontrollere, hvilken profil der er aktiv i drivhuset og fjernstyre den.
Så er vi også i stand til at styre pumpe og blæser manuelt.
Trin 1: Installationsvejledning
Første trin er at installere alle de forskellige komponenter.
Inde i beslagene () har vi angivet, hvor komponenten er tilsluttet. Så for eksempel er Arduino forbundet til Raspberry Pi via et USB -kabel.
Brugt hardware:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B+
- Jordhygrometer (Arduino)
- DHT11 sensor (Arduino)
- HG-320 nedsænket vandpumpe (relæ)
- 5V relæ (Arduino)
- En computerventilator (relæ)
- 230V strømforsyning (pumpe)
Brugt software:
- Raspbian (OS til Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi)- PySerial- MySQLclient
- Node-Red (Raspberry Pi)- Pythonshell- Summariser- MySQL- Dashboard
- MySQL -server (freemysqlhosting.net)
Først skal du forbinde hardwarekomponenterne, så følg denne vejledning for at bygge drivhuset: Installationsvejledning.
Derefter bliver du nødt til at installere Raspbian OS på din Raspberry Pi. Derefter skal du installere Python og derefter installere python -bibliotekerne.
Næste trin er at installere Node-Red på Raspberry Pi og derefter navigere til pallettehåndteringen og installere de tidligere angivne moduler.
Gå derefter til dette websted Gratis MySQL Server og opret en gratis MySQL server.
Når alt dette er gjort, er du klar til at overføre python-scriptet til din Raspberry Pi, importere Node-Red scriptet og uploade koden til Arduino.
Trin 2: Fremvisning af kontrol
Trin 3: Liste over dele/software, der bruges i projektet
Vi har brugt følgende teknologi til at lave drivhuset
- Arduino
- Hindbær Pi
- Node-rød
- Python
- PHPMyAdmin
Trin 4: I/0 -liste
Trin 5: Ledningsdiagram
Trin 6: Arduino -koden
Arduino -koden virker ved at udskrive dataene, målt af sensorerne, til den serielle forbindelse, hvor de læses af Raspberry Pi og overføres til databasen.
Arduino har også nogle digitale inputpins forbundet til Raspberry Pi, som Arduino læser, og hvis en af de tre bliver HØJ, vil profilen ændre sig på grund af en IF -erklæring.
Vi har også opgraderet koden til at bruge Millis i stedet for forsinkelse, der gør det muligt at læse bunden og resten af koden hele tiden i stedet for et interval med den gamle forsinkelse.
Trin 7: Raspberry Pi 3 B+
Vi brugte en Raspberry Pi 3 B+ til at forbinde vores Arduino med internettet og en MySQL -database. Dette gjorde det muligt for os at gemme data fra vores sensorer og lave en visuel grænseflade til slutbrugeren. Til brugergrænsefladen brugte vi Node-Red med Dashboard-paletten.
Men før vi kunne vise vores sensordata på Node-Red, havde vi brug for en måde at uploade dataene på en MySQL-database, og til det lavede vi et Python-script, der ville køre på vores Raspberry Pi.
Trin 8: Python
Python-scriptet bruges til at modtage data fra den serielle kommunikation, der kommer fra Arduino. Scriptet sender derefter dataene til en MySQL -database.
Vi brugte to biblioteker, pyserial og mysqlclient.
Så første skridt ville være at downloade disse to biblioteker:
- PySerial
- MySQLclient
PySerial bruges til at indsamle data fra Arduino via seriel kommunikation.
device = '/dev/ttyUSB0'
arduino = serial. Serial (enhed, 9600)
Den første linje bruges til at definere vores COM-port. På Raspberry Pi er det /dev /ttyUSB0, som vi bruger til Arduino. Den anden linje er til åbning af den serielle port til Arduino. Vi definerer bare hvilken COM-port og med hvilken hastighed forbindelsen kører med.
Resten af koden kører i et stykke loop.
Dernæst bruger vi flere Try and Except -blokke. Først forsøger koden at køre inde i blokken Prøv, hvis det mislykkes, kører den Undtagelsesblokken. Men hvis Try -blokken kører fint, kører den ikke Except -blokken, den kører bare resten af koden.
Så inde i Try-blokkene har vi kode, der vil læse seriel kommunikation og derefter sende den til vores MySQL-database.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humidlist = arduino.readlines (3)
Så ovenstående kode er til læsning af linjer i seriel kommunikation. Tallet i slutningen af koden definerer den linje, der er blevet læst i serien. Så disse linjer bliver kategoriseret i forskellige variabler.
Når data fra Arduino modtages, brugte vi mysqlclient -modulet til at sende dataene til vores MySQL -server.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", bruger = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Denne linje er til tilslutning til vores MySQL -database. Den angiver serveren, brugernavnet, adgangskoden og hvilken database den skal oprette forbindelse til inde i serveren. Her skal du angive forbindelsen til din MySQL DB.
db.forespørgsel ("INSERTINTO` TempHumid` (`temp`,` fugtig`, `hygro`) VÆRDIER (%s, %s, %s)" %(temp, fugtig, hygro))
Så her tager vi vores DB -forbindelse og laver en SQL -forespørgsel. Forespørgslen siger, at værdier skal indsættes i tabellen "TempHumid" og derefter i kolonnerne "temp", "fugtig" og "hygro". Den sidste del "(%s, %s, %s)" er strengformatering og bruges til at give databasen et format, som den kan læse.
Og al denne handling sættes i et stykke loop, så vi bliver ved med at få data sendt til MySQL -serveren.
Hvis du vil se hele koden, skal du downloade python -scriptet (TempHumid.py).
Trin 9: MySQL
Til MySQL -serveren brugte vi en gratis service på www.freemysqlhosting.net. Vi kunne have lavet en server lokalt på Raspberry Pi, men vi gik med gratis service for at få den fuldt forbundet til skyen/internettet.
For at få adgang til din MySQL skal du gå til phpmyadmin.co og logge ind med legitimationsoplysninger fra din freemysqlhosting -konto.
Når du er inde, skal du oprette et bord kaldet "TempHumid", inde i denne tabel skal du oprette 4 kolonner kaldet "ID", "temp", "fugtig" og "hygro". Den første kolonne (ID) skal du markere feltet A_I (Auto Increment). Dette er, så ID -kolonnen giver hvert datasæt et ID. Alle de følgende kolonner skal indstilles som et INT (heltal) og indstille standardværdien til NULL.
Trin 10: Knude-rød
I vores projekt brugte vi Node-Red til at lave en grafisk grænseflade. Node-Red kører på Raspberry Pi og indsamler data fra vores MySQL-database og viser disse data med donutformede målere og grafiske diagrammer, så slutbrugeren kan overvåge dataene. Det smarte ved Node-Red er, at det kan ses på enhver enhed, hvilket betyder, at stedet vil blive ændret til den givne enhed, der ser indholdet.
For at installere vores Node-Red programmering skal du se trin 1 og downloade dokumentet kaldet "Node-Red.docx". Kopier og indsæt derefter teksten i Node-Red via importfunktionen i øverste højre hjørne.
Derefter skal du ændre DB -indstillingerne for din MySQL DB.
Anbefalede:
Automatisk indendørs drivhus baseret på Ikea Socker: 5 trin
Automatisk indendørs drivhus baseret på Ikea Socker: Hej, dette er min første instruerbare. Jeg lærte meget med dette fællesskab, og jeg synes, det er på tide at returnere mine ydmyge ideer. Jeg beklager mit engelsk, er dårligt, men jeg vil gøre alt, hvad jeg kan. Ideen var at lave et drivhus, der lod mig vokse frø og
Automatisering af et drivhus med LoRa! (Del 2) -- Motoriseret vinduesåbner: 6 trin (med billeder)
Automatisering af et drivhus med LoRa! (Del 2) || Motoriseret vinduesåbner: I dette projekt vil jeg vise dig, hvordan jeg lavede en motoriseret vinduesåbner til mit drivhus. Det betyder, at jeg vil vise dig, hvilken motor jeg brugte, hvordan jeg designede det egentlige mekaniske system, hvordan jeg kørte motoren og endelig, hvordan jeg brugte en Arduino LoRa
Fantastisk drivhus med automatisk vanding, internetforbindelse og meget mere: 7 trin (med billeder)
Fantastisk drivhus med automatisk vanding, internetforbindelse og meget mere: Velkommen til denne instruktion. I begyndelsen af marts var jeg i en havebutik og så nogle drivhuse. Og da jeg allerede længe havde lyst til at lave et projekt med anlæg og elektronik, gik jeg videre og købte et: https://www.instagram.com/p
Automatisering af et drivhus med LoRa! (Del 1) -- Sensorer (temperatur, fugtighed, jordfugtighed): 5 trin
Automatisering af et drivhus med LoRa! (Del 1) || Sensorer (temperatur, fugtighed, jordfugtighed): I dette projekt vil jeg vise dig, hvordan jeg automatiserede et drivhus. Det betyder, at jeg vil vise dig, hvordan jeg byggede drivhuset, og hvordan jeg tilsluttede strøm- og automatiseringselektronikken. Jeg vil også vise dig, hvordan du programmerer et Arduino -kort, der bruger L
IGreenhouse - Intelligent drivhus: 17 trin (med billeder)
IGreenhouse - Intelligent drivhus: Hjemmelavede frugter og grøntsager er ofte bedre end dem, du køber, men nogle gange kan du miste dit drivhus af syne. I dette projekt vil vi lave et intelligent drivhus. Dette drivhus åbner og lukker automatisk sine vinduer og dør