Проект «Террариум»

размещено в: ArduinoMade, DIY, IT | 0

Купили с сыном двух красноухих черепах. Поставили террариум. Всё здорово и красиво, но одно НО…
Нужно следить за температурой воздуха, температурой воды, и вовремя включать и выключать свет. Оказалась не такая и простая работа. Перед сном пару раз забывали включённым свет…пару раз случайно выключали фильтр. В общем было принято волевое решение немного заSmart’ить место обитания наших нинзя.
В планах пока:

  • Сделать автоматическое включение и выключение света
  • Сделать авто выключение подогрева
  • Сделать авто выключение фильтра воды
  • Выводить на дисплей параметры температур воды и воздуха
  • Выводить на дисплей влажность воздуха
  • Сделать меню с настройкой режимов работы

На текущий момент собран скелет аппаратной части по сбору данных
Используются:

  • Дисплей LCD1602 i2c
  • Датчик влажности и температуры воздуха DHT22
  • Датчик температуры DS18B20
  • Arduino NANO
  • и макеточка канешн.

Вот скетч:

#include <OneWire.h>
// библиотека для работы с датчиком DS18B20
#include <DallasTemperature.h>

#include "DHT.h"
#define DHTPIN 3  //пин датчика DHT22
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

#define ONE_WIRE_BUS 2 // пин датчика DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensor(&oneWire);

void setup() {

  Serial.begin(9600);
  lcd.begin();
  lcd.backlight();
  sensor.begin();// начинаем работу с датчиком DS
  sensor.setResolution(12);// устанавливаем разрешение датчика от 9 до 12 бит
  dht.begin();//запуск датчика DHT
}
void loop() {
  //lcd.clear();

  float h = dht.readHumidity(); //переменная влажности для DHT
  float t = dht.readTemperature(); //переменная температуры для DHT

  float temperature; // переменная для хранения температуры для DS
  sensor.requestTemperatures(); // отправляем запрос на измерение температуры
  temperature = sensor.getTempCByIndex(0); // считываем данные из регистра датчика

  lcd.setCursor(0, 0);
  lcd.print("Vater:");
  lcd.setCursor(7, 0);
  lcd.print(temperature);

  lcd.setCursor(0, 1);
  lcd.print("t: ");
  lcd.setCursor(3, 1);
  lcd.print(t);

  lcd.setCursor(7, 1);
  lcd.print("  h:");

  lcd.setCursor(12, 1);
  lcd.print(h);

  delay(1000); // ждём одну секунду
}
Anton_Losev
Подписаться Anton_Losev:

Web-desighn, IT, Системное администрирование, создание сайтов, продвжение

Обо мне вы можете подробнее прочитать в соответствующем разделе сайта.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *