Текущее время: 18 ноя 2019, 19:38

Город ХОББИ

Занятие любимым хобби - это путь к счастливой жизни!

Термореле на Ардуино с LCD и контролем протечки воды

Тут собраны схемы различных устройств сделанных на контроллерах Ардуино, Лазерный гравер на Ардуино, Металлоискатель на Ардуино, Метеостанция, Кодовый замок, и множество других устройств и изобретений
Аватар пользователя
 
Сообщений: 716
Зарегистрирован: 27 мар 2013, 22:12

Термореле на Ардуино с LCD и контролем протечки воды

Сообщение -=dp=- » 14 ноя 2015, 21:45

Приближается Зима!

Немного вступления:
Приехал на выходных к родителям в деревню , ну все как обычно, помогал, делал, и тут Отец меня попросил провести розетку в погреб :o !?
Ну я естественно спросил у него зачем почему да для чего.
Чтоб не померзла картошка и не полопались банки с консервацией в погребе.
Ну так вот, оказывается мои родители каждую зиму контролировали температуру в погребе , ставили чашку с водой на дно погреба, и каждый день лазили туда и смотрели не замерзла ли вода или нет ли ледяной корочки.
Погреб то у них на улице вырыт а не под домом. Если вода подмерзала или появлялась ледяная корочка то они спускали в погреб электрический обогреватель и включали на некоторое время чтобы погреб прогрелся.
Индикатором прогревания погреба была все та же вода в чашке, как растаяла, пора выключать обогреватель. :roll:

Нууу, я минут так на пять призадумался и сказал - зачем вы это терпели и почему раньше не сказали мне !

Ну и я сразу же предложил Отцу автоматизировать этот процесс, да и еще добавить несколько наворотов.
Отец не отказался :) сказал - ДЕРЗАЙ!

Поехали:

Термореле на Ардуино с LCD и контролем протечки воды

Для изготовления термореле с индикатором уровня или наличия воды нам понадобиться следующее:

    Контроллер Ардуино УНО, НАНО или ПРО мини.
    Дисплей LCD 1602
    Датчик температуры 18b20
    Модуль реле 5 В 1 канал
    Корпус
    Блок питания
    Монтажные провода
    Паяльник, припой и прямые руки :D

После приобретения всех комплектующих вот тут http://newmar.ru я сразу же принялся оживлять дисплей 1602, в интернете полно библиотек для Ардуино ИДЕ для работы с этим дисплеем.
Для его подключения мне пригодилась библиотека LicuidCrystal.
После того как на дисплее у меня высветилась надпись Hello world!
Я начал подключать датчик 18b20.
С ним оказалось все еще проще.
Библиотека OneWire как раз для него, кроме того таких датчиков можно подключить целую гирлянду, и все они будут работать на общей шине по протоколу OneWire.
С остальным все еще проще.
Для включения - выключения реле и бузера нам понадобится стандартный пример Blink из Ардуино ИДЕ,
Ну и для определения сопротивления воды понадобится пример AnalogRead.
Вот собственно и все, теперь осталось сляпать все это в один скетч, подключить всю "рассыпуху" к Ардуине , залить скетч в Ардуину и наслаждаться :D

Вот что у меня из этого получилось:

Код: выделить все
#include <OneWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int DS18S20_Pin = 7;
const int analogInPin = A2;
int sensorValue = 0;
//Temperature chip i/o
OneWire ds(DS18S20_Pin);  // on digital pin 7

void setup(void) {
  Serial.begin(9600);
    pinMode(9, OUTPUT);
    pinMode(8, OUTPUT);
    digitalWrite(9, LOW);
    digitalWrite(8, LOW);
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("TERMOMETR");
}

void loop(void) {
  float temperature = getTemp();
  sensorValue = analogRead(analogInPin);
  Serial.println(sensorValue);
  Serial.println(temperature);
   lcd.setCursor(0, 1);
  lcd.print(temperature);
  lcd.print("c ");
  delay(50);
  if (temperature<=2){
  lcd.print("T-BKL");
  digitalWrite(9, HIGH);
    } else {
   lcd.print("T-OTKL");
  digitalWrite(9, LOW);
    };
if (sensorValue>200){
 digitalWrite(8, HIGH);
 delay(50);
 digitalWrite(8, LOW); 
  } else {
 
  }; 
}


float getTemp(){
  //returns the temperature from one DS18S20 in DEG Celsius

  byte data[12];
  byte addr[8];

  if ( !ds.search(addr)) {
      //no more sensors on chain, reset search
      ds.reset_search();
      return -1000;
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      Serial.println("CRC is not valid!");
      return -1000;
  }

  if ( addr[0] != 0x10 && addr[0] != 0x28) {
      Serial.print("Device is not recognized");
      return -1000;
  }

  ds.reset();
  ds.select(addr);
  ds.write(0x44,1); // start conversion, with parasite power on at the end

  byte present = ds.reset();
  ds.select(addr);   
  ds.write(0xBE); // Read Scratchpad

 
  for (int i = 0; i < 9; i++) { // we need 9 bytes
    data[i] = ds.read();
  }
 
  ds.reset_search();
 
  byte MSB = data[1];
  byte LSB = data[0];

  float tempRead = ((MSB << 8) | LSB); //using two's compliment
  float TemperatureSum = tempRead / 16;
 
  return TemperatureSum;
 
}



Вложения
Termometr_LCD.rar
Скетч термореле на Ардуино
(966 байт) Скачиваний: 767
OneWire.rar
Библиотека OneWire
(7.42 KiB) Скачиваний: 403
LiquidCrystal.rar
Библиотека LiquidCrystal
(14.72 KiB) Скачиваний: 423

Аватар пользователя
 
Сообщений: 716
Зарегистрирован: 27 мар 2013, 22:12

Re: Термореле на Ардуино с LCD и контролем протечки воды

Сообщение -=dp=- » 14 ноя 2015, 21:52

Да , кстати, для удешивления конструкции я все так и решил сделать термореле на Ардуино ПРО мини.

Разработал схему подключения всех комплектующих, кое что подправил в процессе макетирования и собрал все на макетной плате.
Далее принялся размещать конструкцию термореле в корпус.
В качестве корпуса я решил применить электрическую монтажную коробку, она сделана с защитой IP55 и из негорючего пластика, идеальный вариант для электронных самоделок.
Для датчика 18b20 я выбрал в качестве корпуса пустую сетевую розетку (валялась на стройке ;) )


Вложения
3.1.jpg
Термодатчик 18b20 в корпусе от сетевой розетки
2.jpg
Термореле на Ардуино
1.jpg
Термо реле на Ардуино

Аватар пользователя
 
Сообщений: 716
Зарегистрирован: 27 мар 2013, 22:12

Re: Термореле на Ардуино с LCD и контролем протечки воды

Сообщение -=dp=- » 14 ноя 2015, 21:58

Вырезать в крышке корпуса прямоугольное отверстие конечно было сложновато.
Пришлось немного по потеть :D
Я решил закрыть отверстие для дисплея защитным орг стеклом, был как раз кусочек.
Отпилил его нужного размера и приклеил к корпусу двух сторонним скотчем.
Внешний вид конечно получился немного грубоватым, но для меня качество изделия и надежность на первом месте, а потом уже красота.
Хотя - красота спасает мир.
А мой девайс спасет продукты в погребе от замерзания :D


Вложения
3.jpg
Самодельный датчик протечки воды
4.jpg
Контроль уровня грунтовых вод в погребе на Ардуино
5.jpg
Контроль температуры в погребе на Ардуино

Аватар пользователя
 
Сообщений: 716
Зарегистрирован: 27 мар 2013, 22:12

Re: Термореле на Ардуино с LCD и контролем протечки воды

Сообщение -=dp=- » 14 ноя 2015, 22:02

Датчик протечки воды я сделал сам, ил двух полосок фольгированного стеклотекстоллита.
Между полосками разместил несколько брусков из оргстекла для изоляции друг от друга, затем скрепил все термоусадкой, можно и изолентой обмотать.

Выкладываю полностью готовую, рабочую и проверенную схему термореле на Ардуино, с автоматическим контролем температуры и протечки или наличия воды.


Вложения
6.JPG
Схема термореле на Ардуино

Аватар пользователя
 
Сообщений: 716
Зарегистрирован: 27 мар 2013, 22:12

Re: Термореле на Ардуино с LCD и контролем протечки воды

Сообщение -=dp=- » 14 ноя 2015, 22:20

Работает устройство следующим образом:

При включении блока на дисплее высвечивается надпись TERMOMETR и во второй строке отображается температура (до соты долей :shock: ) и надпись состояния обогревателя.

Если температура в погребе падает ниже + 2-х градусов по С, то включается реле, которое в свою очередь включает обогреватель.

Теперь про индикацию протечки или наличия воды в погребе.

Датчик наличия воды я прикрепил на стену погреба на расстоянии 5мм от дна погреба.

В случае подъема грунтовых вод , вода замкнет собой контакты датчика и из главного блока будет раздаваться жуткий прерывистый писк бузера :D

Услышав его все побегут вытаскивать мешки с картошкой пока они не промокли :D

Ну вот собственно и все ;)

Задавайте вопросы, пишите про свои интересные самоделки на Ардуино на нашем форуме!




Вернуться в Устройства на Ардуино

Кто сейчас на форуме

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5