Найти тему

Разработка метеостанции часть 1.

Разработка метеостанции часть 1.

Проведя ревизию своих компонентов, я выяснил что у меня нет в наличии датчика температуры

18B20 и почитав сайты с проектами подобных же метеостанций я понял, что проще подключать дисплей через шину i2C – как минимум будет меньше проводов для соединения.

И поэтому я решил заказать недостающие компоненты. Так как на носу новый год и особенно китайский новый год я не стал заказывать на Алиэкспрессе а воспользовался доставкой через Ozon. Необходимые детали придут как раз накануне нового года, и я наверно успею сделать подарок, сделанный ну почти своими руками.

С чего я начну?

Подготовлю базовую основу для создания метеостанции в данном посту и в следующем расскажу, как я собирал свой 3D принтер.

Шаг 1.

Мне нужен для первого старта как минимум такой набор:

1. Кабель USB для подключения к компьютеру для прошивки микроконтроллера и его питания на первое время.

2. Сам микроконтроллер - Arduino. В моем случае это UNO (Китайская поделка)

3. Набор проводников.

4. Датчик температуры и влажности. В моем случае это DHT11. DHT22 позволяет измерять минусовую температуру и его корпус белого цвета.

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

5. К датчику подцепим проводники в соответствии с цветовой маркировкой( по факту разницы нет, но будем соблюдать каноны)

Красный +5, Синий Земля, Желтый данные.

В итоге первая версия моей метеостанции выглядит так.

-2

6. Шаг. Подключаем микроконтроллер к компьютеру и заливаем на него необходимую микропрограмму.

-3

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 принтера.