Indholdsfortegnelse:
- Trin 1: Beskrivelse af Ethernet -termostaten
- Trin 2: Webgrænseflade
- Trin 3: HTML -sider, der kører på webserver, skemaer, kildekode
Video: Rumtermostat - Arduino + Ethernet: 3 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
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
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æ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å 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:
Opsæt Raspberry Pi 4 via bærbar/pc ved hjælp af Ethernet-kabel (ingen skærm, ingen Wi-Fi): 8 trin
Opsæt Raspberry Pi 4 via bærbar/pc ved hjælp af Ethernet-kabel (ingen skærm, ingen Wi-Fi): I dette skal vi arbejde med Raspberry Pi 4 Model-B på 1 GB RAM til opsætningen. Raspberry-Pi er en enkelt boardcomputer, der bruges til uddannelsesmæssige formål og DIY-projekter til en overkommelig pris, kræver en strømforsyning på 5V 3A
Sådan laver du et Ethernet -kabel: 5 trin
Sådan laver du et Ethernet -kabel: Hej! I dag lærer vi, hvordan du laver dit helt eget branchestandard ethernet-kabel! Hvilket vil kunne spare dig penge, når det kommer til brug for kabler! Så hvorfor er jeg kvalificeret til at undervise dig? Nå, jeg er en IT -professionel, jeg har brugt de sidste 2
DIY 10/100M Ethernet PoE Injector: 6 trin
DIY 10/100M Ethernet PoE Injector: Her laver vi en enkel PoE -inektor egnet til 10/100M ethernet, kan også drives direkte med batterier
MCP23017 GPIO -styring via Ethernet: 5 trin
MCP23017 GPIO Control Via Ethernet: Styr MCP23017 IO-extender via ethernet ved hjælp af Sensor Bridge og MCP23017 breakout board. Kommandoer sendt af Python -scripts, browser -URL'er eller ethvert system, der er i stand til HTTP -kommunikation. Kan integreres i Home Assistant til hjemmeautomatisering. Ledninger er
Læsefugtighed med Ethernet -sensor: 3 trin
Læsning af luftfugtighed med Ethernet -sensor: Formålet med projektet var at kunne aflæse fugtigheds- og temperaturmålinger via ethernet -netværk, så resultaterne kunne bruges til hjemmeautomatisering (Home Assistant osv.). T9602 -sensor havde den bedste formfaktor, med stor præstation på ar