INHOUDSOPGAWE:
- Stap 1: Beskrywing van die Ethernet -termostaat
- Stap 2: Webkoppelvlak
- Stap 3: HTML -bladsye wat by webbediener uitgevoer word, skemas, bronkode
Video: Kamertermostaat - Arduino + Ethernet: 3 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Wat hardeware betref, gebruik die projek:
- Arduino Uno / Mega 2560
- Ethernet-skild Wiznet W5100 / Ethernet-module Wiznet W5200-W5500
- DS18B20 temperatuursensor op die OneWire -bus
- Relais SRD-5VDC-SL-C word gebruik om ketels te skakel
Stap 1: Beskrywing van die Ethernet -termostaat
Arduino is 'n handige ingeboude platform wat byvoorbeeld gebruik kan word om 'n kamertermostaat te bou, wat ons vandag sal wys. Die termostaat is toeganklik vanaf die LAN -netwerk waarin dit geleë is, terwyl dit toegerus is met 'n webkoppelvlak wat gebruik word om alle elemente van die termostaat op te stel. Die webkoppelvlak loop direk op die Arduino in die webbedienermodus. Die webbediener laat verskeie onafhanklike HTML -bladsye toe, wat insiggewend of selfs funksioneel kan wees. Die webbediener werk op poort 80 -
Die elektromagnetiese relais SRD-5VDC-SL-C, wat in die projek gebruik word, maak dit moontlik om na 10A by 230V te skakel-2300W krag. In die geval van die skakel van 'n GS -stroombaan (las) is dit moontlik om 300W (10A by 30V DC) oor te skakel. Alternatiewelik is die OMRON G3MB-202P SSR-relais volledig versoenbaar vir die bedradingsdiagram, wat slegs geskik is vir nie-induktiewe belastings en uitsluitlik vir wisselstroombane. Maksimum skakelkrag 460W (230V, 2A). Verbruik van Arduino met Ethernet-skild en ander randapparatuur is op die vlak van 100-120mA met die relais oop. As dit gesluit is, onder 200mA by 5V -toevoer.
Stap 2: Webkoppelvlak
Die webkoppelvlak vir die termostaat laat toe:
- Kyk na die intydse temperatuur vanaf die DS18B20-sensor
- Bekyk intydse aflosstatus met dinamiese verandering in uitset op bladsy
- Verander die teiken (verwysing) temperatuur in die omgewing van 5 tot 50 ° C met 'n stap van 0,25 ° C
- Verander die histerese in die reeks 0 tot 10 ° C met 'n stap van 0,25 ° C
Die webkoppelvlak is ontwerp om groter en kleiner skerms te akkommodeer. Dit reageer, ondersteun hoë-definisie-skerms op groot skerm, maar ook mobiele toestelle. Die koppelvlak gebruik ingevoerde CSS-style van die Bootstrap-raamwerk vanaf 'n eksterne CDN-bediener, wat die toestel aan die kliënt laai wanneer 'n bladsy op Arduino oopgemaak word. Omdat die Arduino Uno geheue beperk is, kan dit slegs bladsye met 'n paar kB groot wees. Deur CSS -style van 'n eksterne bediener in te voer, verminder dit die prestasie en geheue -las van die Arduino. Die sagteware -implementering (vir Arduine Uno) gebruik 70% van die flitsgeheue (32kB - 4kB Bootloader) en 44% van die RAM -geheue (2kB).
Statiese dele van 'n webblad (kop- en voettekst van HTML -dokumente, Bootstrap CSS -koppeling, metatags, HTTP -antwoordkop, inhoudstipe, vorm en meer) word direk in die flitsgeheue van Arduino gestoor, wat die hoeveelheid RAM wat gebruik word vir gebruikers aansienlik kan verminder -gegenereerde inhoud. Die webbediener is dus meer stabiel en kan die multi-verbinding van verskeie toestelle in die netwerk op dieselfde tyd hanteer.
Om die ingestelde waardes te behou, selfs na 'n kragonderbreking, word dit in die EEPROM -geheue van die Arduino gestoor. Verwysingstemperatuur na offset 10, histerese tot offset 100. Elkeen van die waardes beslaan 'n maksimum van 5B in die EEPROM -geheue. Die limiet van die EEPROM -transkripsie is op die vlak van 100 000 transkripsies. Data word slegs oorgeskryf wanneer die HTML -vorm ingedien word. As die toestel by die eerste aanvang niks op die genoemde EEPROM -offset gestoor het nie, word outomatiese skryfwerk met standaardwaardes uitgevoer - verwysing: 20.25, histerese 0.25 ° C
Die Meta -tag Refresh verfris elke 10 sekondes die hele Arduino -bladsy. Teen hierdie tyd is dit nodig om die verandering vir die termostaat neer te skryf, anders word die invoervensters herstel as die bladsy opgedateer word. Omdat die Ethernet -biblioteek nie die gebruik van 'n asynchrone webbediener insluit nie, moet die hele bladsy herskryf word. Die dinamiese data wat hoofsaaklik verander, is die huidige waarde van die uitset - Aan / Uit.
Stap 3: HTML -bladsye wat by webbediener uitgevoer word, skemas, bronkode
HTML -bladsye wat op Arduino loop:
- / - wortelbladsy wat die vorm bevat, die huidige logiese uitsetlys vir die aflos, temperatuur
- /action.html - verwerk waardes uit die vorm, skryf dit na die EEPROM -geheue, herlei die gebruiker terug na die wortelbladsy
- / get_data/ - versprei data oor huidige temperatuur, verwysingstemperatuur en histerese aan 'n derde party (rekenaar, mikrobeheerder, ander kliënt …) in JSON -formaat
Daar is ook 'n uitgebreide weergawe van hierdie termostaat wat die volgende insluit:
- Handmatige modus vir aflosse (onbeperkte tyd, harde AAN / UIT)
- Watchdog timer
- Meer sensors beskikbaar, byvoorbeeld: SHT21, SHT31, DHT22, BME280, BMP280 en ander
- Koelmodus
- Beheer en konfigurasie via RS232 / UART onafhanklik van Ethernet
- PID -temperatuurbeheer vir termostaat
- Moontlikheid om ESP8266, ESP32 platforms vir termostaat te gebruik
Die programimplementering vir die projek kan gevind word op: https://github.com/martinius96/termostat-ethernet/ Die implementering bevat programme vir die statiese/dinamiese IPv4-adres wat aan die Ethernet-skild toegeken is.
Die termostaat is slegs bedoel vir binnenshuise temperature! (bo 0 ° C), waarby die stelsellogika aangepas is. Dit is moontlik om 'n bestaande kamertermostaat met 'n termostaat te vervang, dit is moontlik om 'n termostaat tydelik in 'n yskas te vervang, 'n konstante temperatuur in 'n terrarium en dies meer te handhaaf.
Aanbeveel:
Stel Raspberry Pi 4 op deur 'n skootrekenaar/rekenaar met behulp van 'n Ethernet-kabel (geen monitor, geen wifi): 8 stappe
Stel Raspberry Pi 4 op deur 'n skootrekenaar/rekenaar met behulp van 'n Ethernet-kabel (geen monitor, geen Wi-Fi): hierin werk ons saam met Raspberry Pi 4 Model-B van 1 GB RAM vir die opstelling. Raspberry-Pi is 'n enkelbordrekenaar wat gebruik word vir opvoedkundige doeleindes en selfdoenprojekte teen 'n bekostigbare prys, benodig 'n kragtoevoer van 5V 3A
Hoe om 'n Ethernet -kabel te maak: 5 stappe
Hoe om 'n Ethernet -kabel te maak: Hallo! Vandag leer ons hoe u u eie ethernetkabel in die industrie-standaard kan maak! Wat kan u geld bespaar as u kabels benodig? Waarom is ek dan bevoeg om u te leer? Wel, ek is 'n IT -professionele persoon wat ek die afgelope twee
DIY 10/100M Ethernet PoE -inspuiter: 6 stappe
DIY 10/100M Ethernet PoE Injector: Hier maak ons 'n eenvoudige PoE -inektor wat geskik is vir 10/100M ethernet, kan ook direk met batterye aangedryf word
MCP23017 GPIO -beheer via Ethernet: 5 stappe
MCP23017 GPIO-beheer via Ethernet: Beheer MCP23017 IO-uitbreider via ethernet met behulp van Sensor Bridge en MCP23017 uitbreekbord. Opdragte gestuur deur Python -skrifte, blaaier -URL's of enige stelsel wat HTTP -kommunikasie moontlik maak. Kan geïntegreer word in Home Assistant vir tuisautomatisering.Drade is
Raspberry Pi Ethernet na Wifi Bridge: 7 stappe
Raspberry Pi Ethernet na Wifi Bridge: Ek het 'n toetsnetwerk van verskillende Raspberry Pies, toestelle en ander rekenaars en netwerktoerusting; dit word almal bestuur deur 'n Ubiquity -firewall/router en ek wil dit aan die internet koppel sodat ek kan haal opdaterings, sagteware, ens. Unfortuna