Introduction: EAL - Industrial 4.0 Heat & Humidity

I dette projekt har vi lavet en maskine der regulerer varmen og fugtigheden i et rum og opsamler data for at forbedre indeklimaet i et rum i fremtiden. Den gør brug af 4 forskellige programmer og forskellige typer hardware.

Step 1: Part List

Arduino: Til at indsamle data og behandle dem.

Motorkontroller: til at aktiver peltieren og fanen, og ændre strømretningen.

Fane: til at fordele varmen.

Varme/ Fugtigheds sensor: Til at måle rummets temperatur og luftfugtighed.

Batteri boks: forbundet med motorkontrolleren for at forsyne fanen og peltieren med strøm.

Peltier: til at varmeregulere.

Arduinoen er forbundet til en temperatur og fugtigheds sensor der sender data om rummets nuværende temperatur, og en motorkontroller der aktiver strøm og styre strømretningen.

Motorkontrolleren er forbundet til en fane og en peltier, der regulere temperaturen.

Step 2: Software

Arduino:

· Skal indsamle data fra sensorer og lave dem om til nogle Int værdier.

· Skal aktivere fanen/blæseren baseret på den data vi har opsamlet fra sensoren.

· Skal sende data videre til Node-Red via seriel porten på Arduinoen. Den sender følgende typer information videre:

o Temperaturen målt i celsius.

o Fugtigheden målt i procent.

o Fanen og peltierens status, i form af 0 eller 1. ON/OFF

Node Red:

· Modtager data fra Arduinoen.

· Skal splitte dataen op i 3 kategorier: Temperatur, Fugtighed, Status.

· Skal lave en graf for Temperatur, Fugtighed og Status, over en kort tid.

· Skal vises i user-interface i max. 60 min.

· Skal tilføje et tidspunkt på dataen.

· Skal sende dataen videre til phpMyAdmin

phpMyAdmin:

· Modtage data fra Node Red.

· Skal sætte dem ind i de definerede tabeller under databasen.

· Skal logge dataen.

· Skal lave en kopi af tabellerne.

· Kopierne af tabellerne skal blive aflæst af Visual Studio, således vi kan aflæse dem.

Visual Studio:

· Henter tabellerne fra phMypAdmin og sætter dem ind i tabeller der er nemme at aflæse.

· Skal kunne opdatere dataen ved at trykke på en knap.

Step 3: Wiring Diagram

Dette diagram viser det elektriske kredsløb i systemet

Step 4: Arduino Program

Software:

For at gøre brug af vores DHT11 sensor har vi hentet ”SimpleDHT11” bibliotek. Dette bibliotek tillader os at aflæse de signaler der kommer fra sensoren og laver det om til nogen værdier vi forstår. Vi tager de værdier og lægger dem over i 2 Int Tag’s, ”temperature” og ”humidity”. Vi bruger disse tal til at vurder om der skal reguleres på temperaturen i lokalet og sender dem videre via vores serielport.

Vores program gør brug IF funktionen til at styre hvornår fanen og peltieren skal regulere rummets temperatur.

Der er monteret 4 knapper på Arduinoen som ændrer grænseværdierne for hvornår blæser og varme skal starte.
Knappernes grænserværdier ligger på henholdsvis 18, 20, 22 og 24 grader. Når en af grænseværdierne er valgt vil en af de 4 ledpærer lyse så man kan se hvilken grænseværdi Arduinoen er sat på.

Step 5: I/O Liste for Arduino

Digital Inputs

Varme & Fugtigheds sensor

int pinDHT11 = 2;

Digital Outputs

Blæser

int StroemRetning1 = 5;

int StroemRetning2 = 6;

int StroemStyrke = 7;

Varme/køle

int VarmeSide1 = 8;

int VarmeSide2 = 9;

int VarmeGrad = 10;

Step 6: Node-Red

Vi bruger node-red til at splitte vores data, lave et user-interface samt at sende vores data til en MySQL database.

I node-red forbinder vi vores Arduino hvortil der er tilsluttet en temperatur og fugtigheds sensor samt en blæser.

Dataen fra Arduinoen bliver først splittet ved brug af splitfunktionen og bliver lagt over i et array som vist på billedet ”split”. Herefter bliver dataen sendt ud til user interface live.

Den data vi sender over i databasen er der indsat et delay på 1 besked hvert 10. sekund. Dette er for at få en kontrolleret overførsel til databasen.

Herefter splittes dataen på samme måde som ved user interface. Dette gør at der kommer 3 tabeller i vores database. Temperatur, fugtighed og blæser (ON/OFF).

Efter dataen er blevet splittet bruges en ny funktion der sender dataen ud til databasen ved at kalde til de korrekte databasetabeller. Denne funktion bruges også til at sende dato og tid videre til databasen.

På user interface vises der temperatur og luftfugtighed på grafer og ure. Blæseren vises på en kurve der viser henholdsvis 1 og 0 (ON/OFF)

Der er lavet en alarm der udsender en email til eksempelvis teknikeren. Emailen bliver sendt lige så snart at fugtigheden eller temperaturen overskrider et bestemt punkt. I det her tilfælde vil der sendes en email når fugtigheden overstiger 20% og temperaturen stiger over 25 grader celsius. Hvis højere værdier ønskes inden alarmen skal udsende en email til teknikeren kan disse ændres i node-red.

Step 7: MySQL PhpMyAdmin

phpMyAdmin

Der bruges phpMyAdmin til at lagre vores data i MySQL i en database.

Node-red er forbundet direkte til MySQL i phpMyAdmin og sender derfor data til databasen hvert 10. sekund.

Efter dataen blev splittet i node red kommer de nu over i hver sin tabel i databasen (heater, humidity & temp)

Denne tabel opdateres automatisk lige så snart Arduinoen er forbundet med node-red.

Tabellerne i MySQL viser tidspunktet hver data kommer ind på. Det er derfor muligt at gå tilbage i tiden og eksempelvis se hvad temperaturen har været på et specifikt tidspunkt.

Vi har lavet en kopi af hver tabel (heater copy, humidity copy & temp copy)

Dette er gjort fordi MySQL ikke både kan læse og skrive direkte fra samme tabel på samme tid.

For at få dataene kopieret over i de kopierede tabeller har vi brugt en trigger i den oprindelige tabel.

Triggeren gør at for hver gang der kommer data fra node red og over i databasen kopieres hele tabellen over i kopi tabellen.

Step 8: Visual Studio, Microsoft Presentation

Her ses windows præsentationen lavet i Visual Studio. Den viser de 3 tabeller hvor datene bliver lagret. der skal trykkes på knappen "update" for at opdatere tabellerne.

Step 9: English Version Coming Soon...