Inhoudsopgave:
- Stap 1: Beschrijving van de Ethernet-thermostaat
- Stap 2: Webinterface
- Stap 3: HTML-pagina's die worden uitgevoerd op webserver, schema's, broncode
Video: Kamerthermostaat - Arduino + Ethernet: 3 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Op het gebied van hardware gebruikt het project:
- Arduino Uno / Mega 2560
- Ethernet-schild Wiznet W5100 / Ethernet-module Wiznet W5200-W5500
- DS18B20 temperatuursensor op de OneWire bus
- Relais SRD-5VDC-SL-C gebruikt voor ketelschakeling
Stap 1: Beschrijving van de Ethernet-thermostaat
Arduino is een handig embeeded platform waarmee je bijvoorbeeld een kamerthermostaat kunt bouwen, wat we vandaag zullen laten zien. De thermostaat is toegankelijk vanaf het LAN-netwerk waarin hij zich bevindt, terwijl hij is uitgerust met een webinterface waarmee alle elementen van de thermostaat kunnen worden geconfigureerd. De webinterface draait rechtstreeks op de Arduino in de webservermodus. De webserver maakt het mogelijk om verschillende onafhankelijke HTML-pagina's te draaien, die informatief of zelfs functioneel kunnen zijn. De webserver draait op poort 80 -
Het elektromagnetische relais SRD-5VDC-SL-C, dat in het project wordt gebruikt, maakt schakelen mogelijk tot 10A bij 230V - vermogen 2300W. Bij het schakelen van een DC-circuit (belasting) is het mogelijk om 300W (10A bij 30V DC) te schakelen. Als alternatief is het OMRON G3MB-202P SSR-relais volledig compatibel voor het bedradingsschema, dat alleen geschikt is voor niet-inductieve belastingen en uitsluitend voor AC-circuits. Maximaal schakelvermogen 460W (230V, 2A). Verbruik van Arduino met Ethernet-schild en andere randapparatuur ligt op het niveau van 100-120mA met het relais open. Indien gesloten, minder dan 200mA bij 5V voeding.
Stap 2: Webinterface
De webinterface voor de thermostaat maakt het volgende mogelijk:
- Bekijk de realtime temperatuur van de DS18B20-sensor
- Bekijk de realtime relaisstatus met dynamische uitgangswijziging op pagina
- Wijzig de doeltemperatuur (referentie) in het bereik van 5 tot 50 ° C met een stap van 0,25 ° C
- Wijzig de hysterese in het bereik van 0 tot 10 ° C met een stap van 0,25 ° C
De webinterface is ontworpen voor grotere en kleinere schermen. Het is responsief, ondersteunt breedbeeld high-definition schermen, maar ook mobiele apparaten. De interface maakt gebruik van geïmporteerde CSS-stijlen van het Bootstrap-framework van een externe CDN-server, die het apparaat aan de clientzijde laadt bij het openen van een pagina die op Arduino wordt uitgevoerd. Omdat de Arduino Uno geheugenbeperkt is, kan hij slechts pagina's van enkele kB groot uitvoeren. Door CSS-stijlen van een externe server te importeren, worden de prestaties en geheugenbelasting van de Arduino verminderd. De software-implementatie (voor Arduine Uno) gebruikt 70% van het flashgeheugen (32kB - 4kB Bootloader) en 44% van het RAM-geheugen (2kB).
Statische delen van een webpagina (kop- en voettekst van HTML-document, Bootstrap CSS-koppeling, metatags, HTTP-responsheader, inhoudstype, formulier en meer) worden rechtstreeks opgeslagen in het flashgeheugen van Arduino, wat de hoeveelheid RAM die wordt gebruikt voor de gebruiker aanzienlijk kan verminderen. -gegenereerde inhoud. De webserver is dus stabieler en kan tegelijkertijd meerdere apparaten in het netwerk aan.
Om de ingestelde waarden ook na een stroomstoring te behouden, worden ze opgeslagen in het EEPROM-geheugen van de Arduino. Referentietemperatuur tot offset 10, hysterese tot offset 100. Elk van de waarden neemt maximaal 5B in beslag in het EEPROM-geheugen. De EEPROM-transcriptielimiet ligt op het niveau van 100.000 transcripten. Gegevens worden alleen overschreven wanneer het HTML-formulier wordt ingediend. Als het apparaat bij de eerste keer opstarten niets heeft opgeslagen op de genoemde EEPROM-offsets, wordt automatisch schrijven uitgevoerd met standaardwaarden - referentie: 20.25, hysteresis 0.25 ° C
De Refresh-metatag ververst elke 10 seconden de hele Arduino-pagina. Tegen die tijd is het noodzakelijk om de wijziging voor de thermostaat te schrijven, anders worden de invoervensters gereset wanneer de pagina wordt vernieuwd. Omdat de Ethernet-bibliotheek het gebruik van een asynchrone webserver niet omvat, moet de hele pagina worden herschreven. De dynamische gegevens die voornamelijk veranderen, zijn de huidige waarde van de uitgang - Aan / Uit.
Stap 3: HTML-pagina's die worden uitgevoerd op webserver, schema's, broncode
HTML-pagina's die op Arduino draaien:
- / - hoofdpagina met het formulier, de huidige lijst met logische uitgangen voor het relais, temperatuur
- /action.html - verwerkt waarden uit het formulier, schrijft ze naar het EEPROM-geheugen, leidt de gebruiker terug naar de hoofdpagina
- /get_data/ - distribueert gegevens over de huidige temperatuur, referentietemperatuur en hysterese naar een derde partij (computer, microcontroller, andere client …) in JSON-formaat
Er is ook een uitgebreide versie van deze thermostaat met:
- Handmatige modus voor relais (onbeperkte tijd, hard AAN / UIT)
- Watchdog-timer
- Beschikbare meer sensoren, bijvoorbeeld: SHT21, SHT31, DHT22, BME280, BMP280 en anderen
- Koelmodus
- Besturing en configuratie via RS232 / UART onafhankelijk van Ethernet
- PID-temperatuurregeling voor thermostaat
- Mogelijkheid om ESP8266-, ESP32-platforms voor thermostaat te gebruiken
De programma-implementatie voor het project is te vinden op: https://github.com/martinius96/termostat-ethernet/ De implementatie bevat programma's voor het statische / dynamische IPv4-adres dat is toegewezen aan het Ethernet-schild.
De thermostaat is alleen bedoeld voor binnentemperaturen! (boven 0°C), waarop de systeemlogica is aangepast. Het is mogelijk om een bestaande kamerthermostaat te vervangen door een thermostaat, het is mogelijk om tijdelijk een thermostaat in een koelkast te vervangen, een constante temperatuur te handhaven in een terrarium en dergelijke.
Aanbevolen:
Een Ethernet-kabel maken: 5 stappen
Hoe maak je een Ethernet-kabel: Hallo! Vandaag leren we hoe u uw eigen industriestandaard ethernetkabel kunt maken! Dat zal u geld kunnen besparen als het gaat om het nodig hebben van kabels! Dus waarom ben ik gekwalificeerd om u les te geven? Nou, ik ben een IT-professional, ik heb de afgelopen 2
Spraakgestuurde domotica (zoals Alexa of Google Home, geen wifi of ethernet nodig): 4 stappen
Spraakgestuurde domotica (zoals Alexa of Google Home, geen wifi of Ethernet nodig): het zijn in feite op sms gebaseerde arduino-gestuurde relais met google-assistentconfiguratie om berichten te verzenden met gesproken instructies. Het is heel gemakkelijk en goedkoop en werkt als Alexa-advertenties met je bestaande elektrische apparaten (als je Moto -X smartp
Toegang krijgen tot een extern rootbestandssysteem met behulp van DB410 als een Ethernet-dongle: 6 stappen
Toegang krijgen tot het externe rootbestandssysteem met behulp van DB410 als een Ethernet-dongle: Doelstellingen: Installeer de toolchain en hercompileer de kernel om ondersteuning voor USB Ethernet CDC-gadgets in te voegen; Maak boot.img opnieuw van Linaro om USB Ethernet CDC op te starten; Maak een NFS-server om het rootbestandssysteem te hosten; IP-configuratie in DEVICE en HOST
Hoe IP-adressen van Ethernet-apparaten te vinden?: 4 stappen
Hoe IP-adressen van Ethernet-apparaten te vinden?: In deze gelegenheid zullen we een probleem aanpakken dat ons is overkomen wanneer we het IP-adres van een Ethernet-apparaat moeten verkrijgen, het kan een pc, smartphone, PLC zijn, in ons geval kan het wees een Arduino met schild ethernet, ESP8266 of ESP32.Als we niet h
Ethernet Link Tester: 5 stappen (met afbeeldingen)
Ethernet Link Tester: Deze how-to maakt een handige tester waarmee u snel kunt bepalen of uw zojuist gemaakte verbinding of Ethernet-kabel verbinding gaat maken met uw netwerk. Als je in een zakelijke IT-omgeving werkt, weet je dat er over het algemeen meer netwerkpoorten zijn