Съдържание:

Стаен термостат - Arduino + Ethernet: 3 стъпки
Стаен термостат - Arduino + Ethernet: 3 стъпки

Видео: Стаен термостат - Arduino + Ethernet: 3 стъпки

Видео: Стаен термостат - Arduino + Ethernet: 3 стъпки
Видео: Запомни эту хитрость по доработке перфораторы для ровного сверления 2024, Ноември
Anonim
Стаен термостат - Arduino + Ethernet
Стаен термостат - Arduino + Ethernet

По отношение на хардуера, проектът използва:

  • Arduino Uno / Mega 2560
  • Ethernet щит Wiznet W5100 / Ethernet модул Wiznet W5200-W5500
  • Температурен сензор DS18B20 на шината на OneWire
  • Реле SRD-5VDC-SL-C, използвано за превключване на котела

Стъпка 1: Описание на Ethernet термостата

Описание на Ethernet термостата
Описание на Ethernet термостата

Arduino е удобна вградена платформа, която може да се използва например за изграждане на стаен термостат, който ще покажем днес. Термостатът е достъпен от LAN мрежата, в която се намира, докато е оборудван с уеб интерфейс, който се използва за конфигуриране на всички елементи на термостата. Уеб интерфейсът работи директно на Arduino в режим на уеб сървър. Уеб сървърът позволява изпълнението на няколко независими HTML страници, които могат да бъдат информативни или дори функционални. Уеб сървърът работи на порт 80 -

Електромагнитното реле SRD-5VDC-SL-C, което се използва в проекта, позволява превключване до 10A при 230V-мощност 2300W. В случай на превключване на DC верига (товар) е възможно да се включи 300W (10A при 30V DC). Като алтернатива, релето OMRON G3MB-202P SSR е напълно съвместимо за електрическата схема, която е подходяща само за неиндуктивни товари и изключително за променливотокови вериги. Максимална комутационна мощност 460W (230V, 2A). Консумацията на Arduino с Ethernet щит и други периферни устройства е на ниво 100-120mA при отворено реле. Когато е затворен, под 200mA при 5V захранване.

Стъпка 2: Уеб интерфейс

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

Уеб интерфейсът за термостата позволява:

  • Вижте температурата в реално време от сензора DS18B20
  • Преглед на състоянието на релето в реално време с динамична промяна на изхода на страницата
  • Променете целевата (референтна) температура в диапазона от 5 до 50 ° C със стъпка от 0,25 ° C
  • Променете хистерезиса в диапазона от 0 до 10 ° C със стъпка от 0,25 ° C

Уеб интерфейсът е предназначен за по -големи и по -малки екрани. Той е отзивчив, поддържа широкоекранни екрани с висока разделителна способност, но също така и мобилни устройства. Интерфейсът използва импортирани CSS стилове на Bootstrap рамката от външен CDN сървър, който зарежда клиентското устройство при отваряне на страница, работеща на Arduino. Тъй като Arduino Uno е с ограничена памет, той може да изпълнява само страници с размер няколко kB. Чрез импортиране на CSS стилове от външен сървър, това ще намали производителността и натоварването на паметта на Arduino. Софтуерната реализация (за Arduine Uno) използва 70% от флаш паметта (32kB - 4kB Bootloader) и 44% от RAM паметта (2kB).

Статичните части на уеб страница (заглавка и долен колонтитул на HTML документ, Bootstrap CSS свързване, мета тагове, заглавка на HTTP отговор, тип съдържание, формуляр и др.) Се съхраняват директно във флаш паметта на Arduino, което може значително да намали количеството RAM, използвано за потребителя -генерирано съдържание. По този начин уеб сървърът е по-стабилен и може да се справя многократно с няколко устройства в мрежата едновременно.

За да се запазят зададените стойности дори след прекъсване на захранването, те се съхраняват в EEPROM паметта на Arduino. Референтна температура за отместване 10, хистерезис за отместване 100. Всяка от стойностите заема максимум 5B в паметта на EEPROM. Ограничението за транскрипция на EEPROM е на ниво от 100 000 преписи. Данните се презаписват само когато HTML формулярът е изпратен. В случай, че устройството няма нищо съхранено на споменатите компенсации на EEPROM при първото стартиране, ще се извърши автоматично записване със стойности по подразбиране - справка: 20,25, хистерезис 0,25 ° C

Мета маркерът Refresh обновява цялата страница на Arduino на всеки 10 секунди. По това време е необходимо да напишете промяната за термостата, в противен случай прозорците за въвеждане ще бъдат нулирани, когато страницата се опресни. Тъй като библиотеката Ethernet не включва използването на асинхронен уеб сървър, цялата страница трябва да бъде пренаписана. Динамичните данни, които се променят основно, са текущата стойност на изхода - Вкл. / Изкл.

Стъпка 3: HTML страници, работещи на уеб сървър, схеми, изходен код

HTML страници, работещи на уеб сървър, схеми, изходен код
HTML страници, работещи на уеб сървър, схеми, изходен код

HTML страници, работещи на Arduino:

  • / - коренна страница, съдържаща формата, текущ списък с логически изходи за релето, температура
  • /action.html - обработва стойности от формуляра, записва ги в EEPROM паметта, пренасочва потребителя обратно към главната страница
  • / get_data/ - разпространява данни за текущата температура, референтната температура и хистерезиса на трета страна (компютър, микроконтролер, друг клиент …) във формат JSON

Има и удължена версия на този термостат, която включва:

  • Ръчен режим за релета (неограничено време, твърдо включване / изключване)
  • Таймер за пазач
  • Налични още сензори, например: SHT21, SHT31, DHT22, BME280, BMP280 и други
  • Режим на охлаждане
  • Управление и конфигуриране чрез RS232 / UART независимо от Ethernet
  • PID контрол на температурата за термостат
  • Възможност за използване на платформи ESP8266, ESP32 за термостат

Изпълнението на програмата за проекта може да бъде намерено на: https://github.com/martinius96/termostat-ethernet/ Изпълнението съдържа програми за статичния/динамичен IPv4 адрес, присвоен на Ethernet щита.

Термостатът е предназначен само за вътрешни температури! (над 0 ° C), към която е адаптирана системната логика. Възможно е да се замени съществуващ стаен термостат с термостат, възможно е временно да се смени термостат в хладилник, да се поддържа постоянна температура в терариум и други подобни.

Препоръчано: