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

0 1

Метеостанция с использованием 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 и NodeMCU

NodeMCU
Как и в предыдущем подключении, 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: [url=https://drive.google.com/file/d/1bT08x-h39NS1LdkCCH2F3ySG3hrht9U4/view?usp=sharing]https: //drive.google.com/file/d/1EEdhPuUiy8xWSD_s …[/url]
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

Весь процесс по изготовлению такого устройства можно посмотреть на видео.

(Source)

Подборки: Ардуино датчик влажности и температуры

Источник

Оставьте ответ

Your email address will not be published.