Indholdsfortegnelse:

Rumtermostat - Arduino + Ethernet: 3 trin
Rumtermostat - Arduino + Ethernet: 3 trin

Video: Rumtermostat - Arduino + Ethernet: 3 trin

Video: Rumtermostat - Arduino + Ethernet: 3 trin
Video: AJAX ARDUINO ETHERNET 2024, November
Anonim
Rumtermostat - Arduino + Ethernet
Rumtermostat - Arduino + Ethernet

Hvad angår hardware, bruger projektet:

  • Arduino Uno / Mega 2560
  • Ethernet-skærm Wiznet W5100 / Ethernet-modul Wiznet W5200-W5500
  • DS18B20 temperatursensor på OneWire -bussen
  • Relæ SRD-5VDC-SL-C bruges til skift af kedler

Trin 1: Beskrivelse af Ethernet -termostaten

Beskrivelse af Ethernet -termostaten
Beskrivelse af Ethernet -termostaten

Arduino er en praktisk integreret platform, der f.eks. Kan bruges til at bygge en rumtermostat, som vi vil vise i dag. Termostaten er tilgængelig fra det LAN -netværk, den er placeret i, mens den er udstyret med en webgrænseflade, der bruges til at konfigurere alle elementer i termostaten. Webgrænsefladen kører direkte på Arduino i webservertilstand. Webserveren tillader kørsel af flere uafhængige HTML -sider, som kan være informative eller endda funktionelle. Webserveren kører på port 80 -

Det elektromagnetiske relæ SRD-5VDC-SL-C, som bruges i projektet, giver mulighed for at skifte op til 10A ved 230V-effekt 2300W. I tilfælde af at skifte et DC -kredsløb (belastning) er det muligt at skifte 300W (10A ved 30V DC). Alternativt er OMRON G3MB-202P SSR-relæet fuldt kompatibelt til ledningsdiagrammet, som kun er egnet til ikke-induktive belastninger og udelukkende til vekselstrømskredsløb. Maksimal skifteeffekt 460W (230V, 2A). Forbrug af Arduino med Ethernet-skærm og andre eksterne enheder er på niveauet 100-120mA med relæet åbent. Når den er lukket, under 200mA ved 5V forsyning.

Trin 2: Webgrænseflade

Webgrænseflade
Webgrænseflade

Webgrænsefladen til termostaten tillader:

  • Se realtidstemperaturen fra DS18B20-sensoren
  • Se real-time relæstatus med dynamisk outputændring på side
  • Ændre måltemperaturen (reference) i området fra 5 til 50 ° C med et trin på 0,25 ° C
  • Ændre hysteresen i området 0 til 10 ° C med et trin på 0,25 ° C

Webgrænsefladen er designet til at rumme større og mindre skærme. Den er lydhør, understøtter widescreen-HD-skærme, men også mobile enheder. Grænsefladen bruger importerede CSS-stilarter i Bootstrap-rammen fra en ekstern CDN-server, som indlæser klientsidenheden, når der åbnes en side, der kører på Arduino. Fordi Arduino Uno er hukommelsesbegrænset, kan den kun køre sider med et par kB i størrelse. Ved at importere CSS -stilarter fra en ekstern server, reducerer det ydelsen og hukommelsesbelastningen for Arduino. Softwareimplementeringen (til Arduine Uno) bruger 70% af flashhukommelsen (32kB - 4kB Bootloader) og 44% af RAM -hukommelsen (2kB).

Statiske dele af en webside (HTML -dokumenthoved og -fod, Bootstrap CSS -sammenkædning, metatags, HTTP -svarhoved, Indholdstype, formular og mere) gemmes direkte i Arduinos flashhukommelse, hvilket kan reducere mængden af RAM, der bruges til brugeren, betydeligt -genereret indhold. Webserveren er dermed mere stabil og kan håndtere multi-forbindelse af flere enheder i netværket på samme tid.

For at bevare de indstillede værdier, selv efter et strømsvigt, gemmes de i EEPROM -hukommelsen på Arduino. Henvisningstemperatur til forskydning 10, hysterese til forskydning 100. Hver af værdierne optager maksimalt 5B i EEPROM -hukommelsen. EEPROM -transkriptionsgrænsen er på niveauet 100.000 transkripter. Data overskrives kun, når HTML -formularen indsendes. Hvis enheden ikke har noget gemt på de nævnte EEPROM -forskydninger ved den første opstart, udføres automatisk skrivning med standardværdier - reference: 20.25, hysterese 0.25 ° C

Opdater metataggen opdaterer hele Arduino -siden hvert 10. sekund. På dette tidspunkt er det nødvendigt at skrive ændringen for termostaten, ellers bliver inputvinduerne nulstillet, når siden opdateres. Fordi Ethernet -biblioteket ikke inkluderer brug af en asynkron webserver, skal hele siden omskrives. De dynamiske data, der hovedsageligt ændrer sig, er outputens aktuelle værdi - On / Off.

Trin 3: HTML -sider, der kører på webserver, skemaer, kildekode

HTML -sider, der kører på webserver, skemaer, kildekode
HTML -sider, der kører på webserver, skemaer, kildekode

HTML -sider, der kører på Arduino:

  • / - rodside, der indeholder formularen, aktuel logisk outputliste for relæet, temperatur
  • /action.html - behandler værdier fra formularen, skriver dem til EEPROM -hukommelsen, omdirigerer brugeren tilbage til rodside
  • / get_data/ - distribuerer data om aktuel temperatur, referencetemperatur og hysterese til en tredjepart (computer, mikrokontroller, anden klient …) i JSON -format

Der er også en udvidet version af denne termostat, der inkluderer:

  • Manuel tilstand til relæer (ubegrænset tid, hård ON / OFF)
  • Watchdog timer
  • Tilgængelige flere sensorer, for eksempel: SHT21, SHT31, DHT22, BME280, BMP280 og andre
  • Køletilstand
  • Kontrol og konfiguration via RS232 / UART uafhængigt af Ethernet
  • PID temperaturregulering til termostat
  • Mulighed for at bruge ESP8266, ESP32 platforme til termostat

Programimplementeringen for projektet findes på: https://github.com/martinius96/termostat-ethernet/ Implementeringen indeholder programmer til den statiske/dynamiske IPv4-adresse, der er tildelt Ethernet-skjoldet.

Termostaten er kun beregnet til indendørs temperaturer! (over 0 ° C), hvortil systemlogikken er tilpasset. Det er muligt at udskifte en eksisterende rumtermostat med en termostat, det er muligt midlertidigt at udskifte en termostat i et køleskab, opretholde en konstant temperatur i et terrarium og lignende.

Anbefalede: