Turinys:

Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai
Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai

Video: Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai

Video: Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai
Video: Терморегулятор TECH ST 292v2 Настройка 2024, Lapkritis
Anonim
Kambario termostatas - „Arduino + Ethernet“
Kambario termostatas - „Arduino + Ethernet“

Kalbant apie aparatūrą, projekte naudojama:

  • „Arduino Uno“/ „Mega 2560“
  • „Ethernet“skydas „Wiznet W5100“/ „Ethernet“modulis „Wiznet W5200-W5500“
  • DS18B20 temperatūros jutiklis „OneWire“magistralėje
  • Relė SRD-5VDC-SL-C naudojama katilo perjungimui

1 žingsnis: „Ethernet“termostato aprašymas

Ethernet termostato aprašymas
Ethernet termostato aprašymas

„Arduino“yra patogi embeeded platforma, kurią galima naudoti, pavyzdžiui, kambario termostatui pastatyti, kurį parodysime šiandien. Termostatą galima pasiekti iš LAN tinklo, kuriame jis yra, o jame yra žiniatinklio sąsaja, naudojama konfigūruoti visus termostato elementus. Žiniatinklio sąsaja veikia tiesiogiai „Arduino“žiniatinklio serverio režimu. Žiniatinklio serveris leidžia paleisti kelis nepriklausomus HTML puslapius, kurie gali būti informatyvūs ar net funkcionalūs. Žiniatinklio serveris veikia 80 prievadu -

Projekte naudojama elektromagnetinė relė SRD-5VDC-SL-C leidžia perjungti iki 10A esant 230V-2300W galiai. Perjungus nuolatinės srovės grandinę (apkrovą), galima perjungti 300 W (10A esant 30 V DC). Arba OMRON G3MB-202P SSR relė yra visiškai suderinama su elektros instaliacijos schema, kuri tinka tik indukcinėms apkrovoms ir tik kintamosios srovės grandinėms. Maksimali perjungimo galia 460W (230V, 2A). „Arduino“su „Ethernet“ekranu ir kitais išoriniais įrenginiais sunaudojama 100–120 mA, kai relė yra atidaryta. Uždarius, esant žemesnei nei 200 mA esant 5 V maitinimo šaltiniui.

2 žingsnis: žiniatinklio sąsaja

Žiniatinklio sąsaja
Žiniatinklio sąsaja

Termostato žiniatinklio sąsaja leidžia:

  • Peržiūrėkite realaus laiko temperatūrą iš DS18B20 jutiklio
  • Peržiūrėkite realaus laiko relės būseną su dinaminiu išvesties pakeitimu puslapyje
  • Pakeiskite tikslinę (etaloninę) temperatūrą 5–50 ° C intervale 0,25 ° C žingsniu
  • Pakeiskite histerezę nuo 0 iki 10 ° C, atlikdami 0,25 ° C žingsnį

Žiniatinklio sąsaja skirta didesniems ir mažesniems ekranams. Jis reaguoja, palaiko plačiaekranius didelės raiškos ekranus, bet ir mobiliuosius įrenginius. Sąsaja naudoja importuotus „Bootstrap“sistemos CSS stilius iš išorinio CDN serverio, kuris įkelia kliento pusės įrenginį, kai atidaromas puslapis, veikiantis „Arduino“. Kadangi „Arduino Uno“yra ribotos atminties, jis gali paleisti tik kelių KB dydžio puslapius. Importuojant CSS stilius iš išorinio serverio, tai sumažins „Arduino“našumą ir atminties apkrovą. Programinės įrangos diegimas („Arduine Uno“) naudoja 70% „flash“atminties (32 KB - 4 KB įkrovos įkroviklis) ir 44% RAM atminties (2 KB).

Statinės tinklalapio dalys (HTML dokumento antraštė ir poraštė, „Bootstrap CSS“susiejimas, meta žymos, HTTP atsakymo antraštė, turinio tipas, forma ir dar daugiau) yra saugomos tiesiogiai „Arduino“„flash“atmintyje, o tai gali žymiai sumažinti vartotojui naudojamos RAM kiekį. -sukurtas turinys. Taigi žiniatinklio serveris yra stabilesnis ir gali vienu metu valdyti kelių tinklo įrenginių kelių ryšių sujungimą.

Siekiant išlaikyti nustatytas vertes net ir nutrūkus elektros tiekimui, jos saugomos „Arduino“EEPROM atmintyje. Etaloninė temperatūra yra 10 poslinkis, histerezė - 100. EEPROM transkripcijos riba yra 100 000 nuorašų. Duomenys perrašomi tik pateikus HTML formą. Jei pirmą kartą paleidus įrenginys minėtuose EEPROM poslinkiuose nieko nesaugo, automatinis rašymas bus atliekamas pagal numatytas vertes - nuoroda: 20,25, histerezė 0,25 ° C

„Atnaujinti“metažyma atnaujina visą „Arduino“puslapį kas 10 sekundžių. Iki to laiko būtina parašyti termostato pakeitimą, kitaip atnaujinus puslapį, įvesties langai bus iš naujo nustatyti. Kadangi eterneto bibliotekoje nėra asinchroninio žiniatinklio serverio naudojimo, visas puslapis turi būti perrašytas. Dinaminiai duomenys, kurie daugiausia keičiasi, yra dabartinė išvesties vertė - įjungta / išjungta.

3 žingsnis: HTML puslapiai, veikiantys žiniatinklio serveryje, schemos, šaltinio kodas

HTML puslapiai, veikiantys interneto serveryje, schemos, šaltinio kodas
HTML puslapiai, veikiantys interneto serveryje, schemos, šaltinio kodas

HTML puslapiai, veikiantys „Arduino“:

  • / - šakninis puslapis, kuriame yra forma, dabartinis relės loginis išvesties sąrašas, temperatūra
  • /action.html - apdoroja reikšmes iš formos, įrašo jas į EEPROM atmintį, nukreipia vartotoją atgal į pagrindinį puslapį
  • / get_data/ - platina duomenis apie esamą temperatūrą, etaloninę temperatūrą ir histerezę trečiajai šaliai (kompiuteriui, mikrovaldikliui, kitam klientui …) JSON formatu

Taip pat yra išplėstinė šio termostato versija, kurią sudaro:

  • Rankinis relių režimas (neribotą laiką, sunku įjungti / išjungti)
  • „Watchdog“laikmatis
  • Galimi daugiau jutiklių, pavyzdžiui: SHT21, SHT31, DHT22, BME280, BMP280 ir kiti
  • Aušinimo režimas
  • Valdymas ir konfigūracija per RS232 / UART nepriklausomai nuo eterneto
  • PID temperatūros valdymas termostatui
  • Galimybė naudoti ESP8266, ESP32 platformas termostatui

Projekto programos įgyvendinimą rasite čia: https://github.com/martinius96/termostat-ethernet/ Įgyvendinime yra programos, skirtos statiniam/dinaminiam IPv4 adresui, priskirtam „Ethernet“skydui.

Termostatas skirtas tik patalpų temperatūrai! (aukštesnė nei 0 ° C), prie kurios pritaikyta sistemos logika. Galima esamą kambario termostatą pakeisti termostatu, galima laikinai pakeisti termostatą šaldytuve, palaikyti pastovią temperatūrą terariume ir panašiai.

Rekomenduojamas: