Turinys:
- 1 žingsnis: „Ethernet“termostato aprašymas
- 2 žingsnis: žiniatinklio sąsaja
- 3 žingsnis: HTML puslapiai, veikiantys žiniatinklio serveryje, schemos, šaltinio kodas
Video: Kambario termostatas - „Arduino + Ethernet“: 3 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
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
„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
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 „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:
„Raspberry Pi 4“nustatymas per nešiojamąjį kompiuterį/kompiuterį naudojant „Ethernet“kabelį (be monitoriaus, be „Wi-Fi“): 8 žingsniai
Nustatykite „Raspberry Pi 4“per nešiojamąjį kompiuterį/kompiuterį naudodami eterneto kabelį (be monitoriaus, be „Wi-Fi“): šiuo tikslu dirbsime su „Raspberry Pi 4 Model-B“1 GB RAM. „Raspberry-Pi“yra vienos plokštės kompiuteris, naudojamas švietimo tikslais ir „pasidaryk pats“projektams už prieinamą kainą, reikalauja 5V 3A maitinimo šaltinio
Pasidaryk pats 10/100M Ethernet PoE purkštuvas: 6 žingsniai
„Pasidaryk pats“10/100M eterneto „PoE“purkštukas: čia pagaminsime paprastą „PoE“injektorių, tinkantį 10/100M eternetui, taip pat galima maitinti tiesiai iš baterijų
Drėgmės skaitymas naudojant Ethernet jutiklį: 3 žingsniai
Drėgmės skaitymas naudojant „Ethernet“jutiklį: Projekto tikslas buvo skaityti drėgmės ir temperatūros rodmenis per eterneto tinklą, kad rezultatai būtų naudojami namų automatizavimui (namų asistentas ir kt.). T9602 jutiklis turėjo geriausią formos koeficientą ir puikų pasirodymas ar
„Raspberry Pi Ethernet“iki „Wifi Bridge“: 7 žingsniai
„Raspberry Pi Ethernet“prie „Wifi Bridge“: turiu įvairių „Raspberry Pie“, įrenginių ir kitų kompiuterių bei tinklo įrangos bandomąjį tinklą, juos visus valdo „Ubiquity“užkarda/maršrutizatorius ir aš noriu, kad jis būtų prijungtas prie interneto, kad galėčiau gauti atnaujinimus, programinę įrangą ir pan
„Ethernet RJ45“kabelio testeris: 5 žingsniai (su paveikslėliais)
„Ethernet RJ45“kabelių testeris: Sveiki, visa tai yra mano pirmasis pamokomas dalykas, todėl atleiskite mano ne tokį optimalų aprašymą (ir kai kurias trūkstamas nuotraukas)-Idėja (na, iš tikrųjų poreikis) buvo patikrinti, ar ilgai (40 m arba taip) eterneto kabelis iš mano buto į rūsį; rou