Метеостанция с использованием Arduino и NodeMCU - Своими руками
Своими руками

Метеостанция с использованием Arduino и NodeMCU

>

В этой статье мастер расскажет нам, как сделать метеостанцию на базе Arduino или NodeMCU, используя датчик температуры и влажности DHT11 или DHT22. Данные с датчика отображаются на OLED-дисплее.
Инструменты и материалы:-Датчик температуры и влажности DHT22;-Датчик температуры и влажности DHT11;-OLED-дисплей;-Arduino;-NodeMCU;-Паяльные принадлежности;-Резистор;
Шаг первый: DHT11 или DHT22
DHT11 и DHT22 – это недорогие и очень простые датчики температуры и влажности, которые можно использовать для регистрации данных.
Несмотря на то, что они медленнее, они очень стабильны, потребляют мало энергии и обеспечивают относительно высокую точность измерений. Цифровой сигнал с одной шиной выводится через встроенный АЦП, который легко считывается с помощью любого микроконтроллера. Единый интерфейс шины экономит ресурсы ввода-вывода любой платы микроконтроллера.

Рабочее напряжение составляет от 3,3 В до 5 В, период считывания для DHT11 составляет 1 Гц или одно показание каждую секунду, а для DHT22 – 0,5 Гц или одно показание каждые две секунды. Следовательно, мы не можем запрашивать их чаще, чем раз в секунду или две.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUДатчики DHT состоят из двух частей: емкостного датчика влажности и датчика температуры с отрицательным температурным коэффициентом или NTC* (или термистора).

Датчик температуры NTC фактически представляет собой переменный резистор, сопротивление которого уменьшается с увеличением температуры. Для измерения влажности используются два электрода с влагоудерживающей подложкой между ними. При изменении влажности изменяется проводимость субстрата или, другими словами, изменяется сопротивление между этими электродами. Это изменение сопротивления измеряется, обрабатывается и отправляется на микроконтроллер. Очень простой чип внутри датчика выполняет аналого-цифровое преобразование и выдает цифровой сигнал, который считывается с помощью микроконтроллера.

*Аббревиатура NTC расшифровывается как Negative Temperature Coefficient, что в переводе на русский язык означает отрицательный температурный коэффициент.
Метеостанция с использованием Arduino и NodeMCUНиже представлена сравнительная таблица двух датчиков. Глядя на нее, становится ясно, что DHT22 превосходит DHT11 по всем параметрам.
Метеостанция с использованием Arduino и NodeMCUШаг второй: OLED-дисплей
OLED или органический светоизлучающий диод – это светоизлучающий диод (LED), в котором излучающий электролюминесцентный слой представляет собой пленку из органического соединения (миллионы маленьких светодиодных лампочек), которые излучает свет при прохождении через них электрического тока.

OLED-светодиоды используются для создания цифровых дисплеев в таких устройствах, как телевизионные экраны, компьютерные мониторы, мобильные телефоны, портативные игровые консоли и т.д.

На рынке доступно множество типов OLED-дисплеев. Помимо размера, цвета и т.д. есть и некоторые важные параметры. Например, протокол подключения (SPI или I2C), схемы управления с пассивной матрицей (PMOLED) или активной матрицей (AMOLED).

Давайте поближе познакомимся с этими двумя дисплеями. Сзади этих дисплеев на плате припаяны SMD-конденсаторы и резисторы, но, поскольку это устройство I2C, интересуют только 2 контакта (SCL и SDA). Дисплей подключается к Arduino, используя только четыре провода – два для питания (VCC и GND) и два для данных (последовательные часы SCL и последовательные данные SDA). Рабочее напряжение составляет от 3 до 5 В, но лучше всего руководствоваться указаниями производителя. Иногда нам нужно использовать в проектах 2 дисплея. Хитрость здесь в том, чтобы иметь настраиваемый адрес на дисплее. Это устройство имеет настраиваемый адрес от 0x78 до 0x7A. Просто распаяв резистор с одной стороны, и подключив его к другой стороне, или просто нанеся немного припоя, можно изменить адрес. На картинке эти дисплеи выглядят очень большими, но практически они крошечные. Они сделаны из 128 x 32/64 отдельных OLED-пикселей и не требуют подсветки.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUНиже представлены две схемы. На одной схеме подключение дисплея к Arduino, на второй к NodeMCU.
Метеостанция с использованием Arduino и NodeMCUШаг третий: настройка
Ардуино
Дальше нужно просто подключить OLED к контактам I2C, а датчик температуры и влажности – к любому из цифровых контактов. В этой настройке мастер подключил OLED к A5 и A4, а датчик к D8.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUДальше переходим к программированию. Начнем с включения библиотек DHT и OLED.
Затем в разделе настройки инициализируем дисплей, а затем устанавливаем опрос датчика каждые 2 секунды.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUNodeMCU
Как и в предыдущем подключении, OLED-дисплей подключается к NodeMCU с помощью контактов D2 и D1, а датчик подключается к контакту D3.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUЗатем нужно включить библиотеки DHT и OLED.
В разделе настройки инициализировать дисплей, а затем установить опрос датчика и отображение результата на OLED-дисплее каждые 2 секунды.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUШаг третий: пользовательская плата
Для устройства мастер спроектировал и изготовил три платы. Две платы могут использоваться либо с Arduino, либо с NodeMCU, а также с датчиком или модулем датчика DHT11 или DHT22.
Третья плата может использоваться как с NodeMCU, так и с Arduino Nano.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUШаг четвертый: полезные ссылки
Ниже представлены полезные ссылки для этого проекта.
Для печатной платы: https: //drive.google.com/file/d/1H9noO2ppm0SM8HcJ …
Код
Code_With_OLED_Arduino: https: //drive.google.com/file/d/1EEdhPuUiy8xWSD_s …
Code_With_OLED_NodeMCU: https: //drive.google.com/file/d/1EEdhPuUiy8xWSD_s ...
Code_MCith_PHPode_Node :https://drive.google.com/file/d/1EEdhPuUiy8xWSD_s …
Code_With_PHP_OLED_NodeMCU: https: //drive.google.com/file/d/1EEdhPuUiy8xWSD_s …
Библиотеки
«DHTStable.h»: https://github.com/RobTillaart/DHTstable
«SSD1306.h»: https://github.com/RobTillaart/DHTstable
Библиотека дисплея Adafruit: https://github.com/RobTillaart/DHTstable
Библиотека Adafruit GFX: https://github.com/RobTillaart/DHTstable
Все готово. Теперь осталось протестировать устройство. Мастер планирует использовать эту плату в своем следующем проекте, где он буду отправлять показания температуры и влажности на свой домашний сервер на базе Raspberry Pi, и хранить их в базе данных.
Метеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUМетеостанция с использованием Arduino и NodeMCUВесь процесс по изготовлению такого устройства можно посмотреть на видео.

SitesReady

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. - Альберт Эйнштейн

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.