Разработка метеостанции часть 1.
Проведя ревизию своих компонентов, я выяснил что у меня нет в наличии датчика температуры
18B20 и почитав сайты с проектами подобных же метеостанций я понял, что проще подключать дисплей через шину i2C – как минимум будет меньше проводов для соединения.
И поэтому я решил заказать недостающие компоненты. Так как на носу новый год и особенно китайский новый год я не стал заказывать на Алиэкспрессе а воспользовался доставкой через Ozon. Необходимые детали придут как раз накануне нового года, и я наверно успею сделать подарок, сделанный ну почти своими руками.
С чего я начну?
Подготовлю базовую основу для создания метеостанции в данном посту и в следующем расскажу, как я собирал свой 3D принтер.
Шаг 1.
Мне нужен для первого старта как минимум такой набор:
1. Кабель USB для подключения к компьютеру для прошивки микроконтроллера и его питания на первое время.
2. Сам микроконтроллер - Arduino. В моем случае это UNO (Китайская поделка)
3. Набор проводников.
4. Датчик температуры и влажности. В моем случае это DHT11. DHT22 позволяет измерять минусовую температуру и его корпус белого цвета.
Для пилотного проекта можно было бы использовать макетную плату но я среди кучи хлама в процессе предновогодней уборки не смог ее сразу найти. Так что для начала попробуем так.
5. К датчику подцепим проводники в соответствии с цветовой маркировкой( по факту разницы нет, но будем соблюдать каноны)
Красный +5, Синий Земля, Желтый данные.
В итоге первая версия моей метеостанции выглядит так.
6. Шаг. Подключаем микроконтроллер к компьютеру и заливаем на него необходимую микропрограмму.
7. Редакторе кода
вставляем такой скетч.
#include "DHT.h" // сторонняя библиотека для работы с датчиком.
#define DHTPIN 2 // Тот самый номер пина, о котором упоминалось выше
DHT dht(DHTPIN, DHT11); //Инициация датчика
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // 2 секунды задержки
float h = dht.readHumidity(); //Измеряем влажность
float t = dht.readTemperature(); //Измеряем температуру
if (isnan(h) || isnan(t)) { // Проверка. Если не удается считать показания, выводится «Ошибка считывания», и программа завершает работу
Serial.println("Ошибка считывания");
return;
}
Serial.print("Влажность: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Температура: ");
Serial.print(t);
Serial.println(" *C "); //Вывод показателей на экран
}
Если все скомпилировалось нормально в терминале увидим такие результаты. За точность пока не ручаюсь.
На этом второй пост заканчиваю.
Жду датчик для внешней температуры и i2c контроллер.
Ну а пока я займусь сборкой 3d принтера.