Мазмуну:

Бөлмө термостаты - Arduino + Ethernet: 3 кадам
Бөлмө термостаты - Arduino + Ethernet: 3 кадам
Anonim
Бөлмө термостаты - Arduino + Ethernet
Бөлмө термостаты - Arduino + Ethernet

Аппараттык жактан алганда, долбоор төмөнкүлөрдү колдонот:

  • Мэга 2560
  • Ethernet калканы Wiznet W5100 / Ethernet модулу Wiznet W5200-W5500
  • OneWire шинасындагы DS18B20 температура сенсору
  • Реле SRD-5VDC-SL-C буу казандарын которуштуруу үчүн колдонулат

1 -кадам: Ethernet термостатынын сүрөттөлүшү

Ethernet термостатынын сүрөттөлүшү
Ethernet термостатынын сүрөттөлүшү

Arduino, мисалы, биз көрсөтө турган бөлмө термостатын куруу үчүн колдонула турган ыңгайлуу платформа. Термостатка ал жайгашкан LAN тармагынан жетүүгө болот, ал эми термостаттын бардык элементтерин конфигурациялоо үчүн колдонулган веб -интерфейс менен жабдылган. Веб -интерфейс веб -сервер режиминде Arduinoдо түз иштейт. Веб -сервер маалыматтык же функционалдуу болушу мүмкүн болгон бир нече көз карандысыз HTML баракчаларын иштетүүгө мүмкүндүк берет. Веб -сервер 80 - HTTP портунда иштейт.

Долбоордо колдонулуучу SRD-5VDC-SL-C электромагниттик релеси 230Ада 10Ага чейин которууга мүмкүндүк берет-кубаты 2300W. Туруктуу токтун схемасын которгондо (жүктөө) 300 Вт (30 В DCда 10А) которууга болот. Же болбосо, OMRON G3MB-202P SSR релеси электр өткөргүч схемасына толук шайкеш келет, ал индуктивдүү эмес жүктөмдөргө жана AC схемаларына гана ылайыктуу. Максималдуу которулуу күчү 460W (230V, 2A). Ethernet калканы жана башка перифериялык түзүлүштөр менен Arduino керектөө реле ачык турганда 100-120мА деңгээлинде. Жабык болгондо, 5В менен камсыздоодо 200мАдан төмөн.

2 -кадам: Желе интерфейси

Веб интерфейси
Веб интерфейси

Термостаттын веб -интерфейси төмөнкүлөрдү камсыздайт:

  • DS18B20 сенсорунан реалдуу убакыт температурасын көрүңүз
  • Реалдуу убакытта реле статусун беттеги динамикалык өзгөрүү менен көрүңүз
  • 0,25 ° C кадамы менен 5тен 50 ° Сге чейин максаттуу (маалымдама) температураны өзгөртүү
  • 0,25 ° C кадам менен 0дон 10 ° Сге чейинки гистерезисти өзгөртүү

Веб -интерфейс чоңураак жана кичине экрандарды жайгаштыруу үчүн иштелип чыккан. Бул жооп берет, кең экрандуу жогорку сапаттагы экрандарды колдойт, бирок мобилдик түзмөктөрдү да колдойт. Интерфейс тышкы CDN серверинен Bootstrap алкагынын импорттолгон CSS стилдерин колдонот, ал Arduinoдо иштеп жаткан баракчаны ачууда кардар тараптагы түзмөктү жүктөйт. Arduino Uno эс тутуму чектелүү болгондуктан, бир нече кБ өлчөмдөгү барактарды гана иштете алат. Тышкы серверден CSS стилдерин импорттоо менен, бул Arduinoнун иштөө жөндөмдүүлүгүн жана эс тутумун азайтат. Программалык камсыздоону ишке ашыруу (Arduine Uno үчүн) флэш -эстин 70% (32кБ - 4кБ жүктөөчү) жана 44% оперативдүү эс тутумун (2кБ) колдонот.

Веб -баракчанын статикалык бөлүктөрү (HTML документтин аталышы жана колонтитулу, Bootstrap CSS шилтемеси, мета тегдер, HTTP жооптун аталышы, Мазмундун түрү, форма жана башкалар) түздөн -түз Ардуинонун флеш -эсинде сакталат, бул колдонуучу үчүн колдонулган RAM көлөмүн олуттуу түрдө азайтат. -түзүлгөн мазмун. Веб-сервер ошончолук туруктуу жана бир эле учурда тармактагы бир нече түзмөктүн көп туташуусун башкара алат.

Электр жарыгы өчкөндөн кийин да коюлган баалуулуктарды сактоо үчүн, алар Arduino EEPROM эсинде сакталат. Шилтеменин температурасы 10 -орунга, гистерезис 100 -ге чейин. Ар бир баалуулук EEPROM эс тутумунда 5В максимумду ээлейт. EEPROM транскрипциясынын чеги 100 000 транскрипциянын деңгээлинде. HTML формасы тапшырылганда гана маалыматтар жазылат. Эгерде түзмөктө биринчи EEPROM офсетинде эч нерсе сакталбаса, автоматтык жазуу демейки маанилер менен аткарылат - маалымдама: 20.25, гистерезис 0.25 ° C

Refresh мета теги ар бир 10 секундда Arduino баракчасын толугу менен жаңыртып турат. Бул убакытка чейин термостаттын өзгөрүүсүн жазуу керек, антпесе барак жаңыртылганда кирүү терезелери баштапкы абалга келтирилет. Ethernet китепканасы асинхрондук веб -серверди колдонууну камтыбагандыктан, бүт барак кайра жазылышы керек. Негизинен өзгөрүп турган динамикалык маалыматтар - бул чыгаруунун учурдагы мааниси - On / Off.

3 -кадам: Webserverде иштеген HTML барактар, схемалар, булак коду

HTML беттери Webserverде иштейт, схемалар, булак коду
HTML беттери Webserverде иштейт, схемалар, булак коду

HTML беттери Arduinoдо иштейт:

  • / - форманы камтыган тамыр баракчасы, релени учурдагы логикалык чыгаруу тизмеси, температура
  • -
  • / get_data/ - учурдагы температура, маалымдама температурасы жана гистерезис боюнча маалыматтарды үчүнчү жакка (компьютер, микроконтроллер, башка кардар …) JSON форматында таратат

Бул термостаттын кеңейтилген версиясы да бар:

  • Реле үчүн кол режими (чексиз убакыт, катуу ON / OFF)
  • Watchdog таймери
  • Башка сенсорлор бар, мисалы: SHT21, SHT31, DHT22, BME280, BMP280 жана башкалар
  • Муздатуу режими
  • Ethernetтен көз карандысыз RS232 / UART аркылуу башкаруу жана конфигурация
  • Термостат үчүн PID температурасын көзөмөлдөө
  • Термостат үчүн ESP8266, ESP32 платформаларын колдонуу мүмкүнчүлүгү

Долбоордун программасын ишке ашыруу боюнча тапса болот: https://github.com/martinius96/termostat-ethernet/ Ишке ашыруу Ethernet калканына дайындалган статикалык/динамикалык IPv4 дареги боюнча программаларды камтыйт.

Термостат үй ичиндеги температураларга гана арналган! (0 ° C жогору), бул системанын логикасына ылайыкташтырылган. Учурдагы бөлмө термостатын термостат менен алмаштырууга болот, муздаткычтагы термостатты убактылуу алмаштырууга, террариумда жана башка ушул сыяктуу температураны туруктуу кармап турууга болот.

Сунушталууда: