Ничего не найдено :(
    В гостях у Самоделкина! » С сайтов » Спец » Метеостанция с использованием 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 Гц или одно показание каждые две секунды. Следовательно, мы не можем запрашивать их чаще, чем раз в секунду или две.


    Датчики DHT состоят из двух частей: емкостного датчика влажности и датчика температуры с отрицательным температурным коэффициентом или NTC* (или термистора).

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

    *Аббревиатура NTC расшифровывается как Negative Temperature Coefficient, что в переводе на русский язык означает отрицательный температурный коэффициент.

    Ниже представлена сравнительная таблица двух датчиков. Глядя на нее, становится ясно, что DHT22 превосходит DHT11 по всем параметрам.

    Шаг второй: 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.

    Шаг третий: настройка
    Ардуино
    Дальше нужно просто подключить OLED к контактам I2C, а датчик температуры и влажности - к любому из цифровых контактов. В этой настройке мастер подключил OLED к A5 и A4, а датчик к D8.


    Дальше переходим к программированию. Начнем с включения библиотек DHT и OLED.
    Затем в разделе настройки инициализируем дисплей, а затем устанавливаем опрос датчика каждые 2 секунды.


    NodeMCU
    Как и в предыдущем подключении, OLED-дисплей подключается к NodeMCU с помощью контактов D2 и D1, а датчик подключается к контакту D3.


    Затем нужно включить библиотеки DHT и OLED.
    В разделе настройки инициализировать дисплей, а затем установить опрос датчика и отображение результата на OLED-дисплее каждые 2 секунды.


    Шаг третий: пользовательская плата
    Для устройства мастер спроектировал и изготовил три платы. Две платы могут использоваться либо с Arduino, либо с NodeMCU, а также с датчиком или модулем датчика DHT11 или DHT22.
    Третья плата может использоваться как с NodeMCU, так и с Arduino Nano.





    Шаг четвертый: полезные ссылки
    Ниже представлены полезные ссылки для этого проекта.
    Для печатной платы: 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, и хранить их в базе данных.




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

    Источник (Source)
    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
    Подборки: Датчик NodeMCU

    Интерактивная светодиодная юбка. На базе Neopixel

    Светодиодная атмосферная лампа. ОГОНЬ/ВОДА

    10
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    9
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 9.67 из 10 (голосов: 1 / История оценок)

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

    1 комментарий
    Korolev

    период считывания для DHT11 составляет 1 Гц или одно показание каждую секунду, а для DHT22 - 0,5 Гц или одно показание каждые две секунды

    Вот мне просто любопытно, для чего такая избыточность данных? Ну не меняются ни температура, ни влажность с такой скоростью.

    используя только четыре провода - два для питания (VCC и GND) и два для данных (последовательные часы SCL и последовательные данные SDA)

    Думается что SCL - это не часы, а тактовая частота.

    он буду отправлять показания температуры и влажности на свой домашний сервер на базе Raspberry Pi, и хранить их в базе данных.

    А парнишка-то майнит конкретно. smile 

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии