Оглавление:

Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk: 4 шага
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk: 4 шага

Видео: Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk: 4 шага

Видео: Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk: 4 шага
Видео: ESP8266 AM2320 WEB SERVER 2024, Декабрь
Anonim
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk
Метеостанция DIY с использованием DHT11, BMP180, Nodemcu с Arduino IDE через сервер Blynk

Github: DIY_Weather_Station

Hackster.io: Метеостанция

Вы бы видели приложение "Погода", верно? Например, когда вы открываете его, вы узнаете погодные условия, такие как температура, влажность и т. Д. Эти показания являются средним значением для большой площади, поэтому, если вы хотите знать точные параметры, относящиеся к вашей комнате, вы не можете просто полагаться на приложение "Погода". Для этого давайте перейдем к созданию метеостанции, которая является рентабельной, а также надежной и дает нам точную стоимость.

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

О Нодемку:

NodeMCU - это платформа IoT с открытым исходным кодом.

Он включает в себя прошивку, которая работает на ESP8266 Wi-Fi SoC от Espressif Systems, и оборудование, основанное на модуле ESP-12.

Термин «NodeMCU» по умолчанию относится к прошивке, а не к набору разработчика. В прошивке используется язык сценариев Lua. Он основан на проекте eLua и построен на Espressif Non-OS SDK для ESP8266. Он использует множество проектов с открытым исходным кодом, таких как lua-cjson и spiffs.

Требования к датчикам и программному обеспечению:

1. Nodemcu (esp8266-12e v1.0)

2. DHT11

3. BMP180

4. Arduino IDE.

Шаг 1. Знайте свои датчики

Знай свои датчики
Знай свои датчики

BMP180:

Описание:

BMP180 состоит из пьезорезистивного датчика, аналого-цифрового преобразователя и блока управления с E2PROM и последовательным интерфейсом I2C. BMP180 обеспечивает нескомпенсированное значение давления и температуры. E2PROM хранит 176 бит индивидуальных данных калибровки. Это используется для компенсации смещения, температурной зависимости и других параметров датчика.

  • UP = данные давления (от 16 до 19 бит)
  • UT = данные о температуре (16 бит)

Технические характеристики:

  • Vin: от 3 до 5 В постоянного тока
  • Логика: от 3 до 5 В
  • Диапазон измерения давления: 300-1100 гПа (от 9000 до -500 м над уровнем моря)
  • Разрешение до 0,03 гПа / 0,25 м Рабочий диапазон от -40 до + 85 ° C, точность измерения температуры + -2 ° C
  • Эта плата / чип использует 7-битный адрес I2C 0x77.

DHT11:

Описание:

  • DHT11 - это базовый сверхдорогой цифровой датчик температуры и влажности.
  • Он использует емкостной датчик влажности и термистор для измерения окружающего воздуха и выдает цифровой сигнал на вывод данных (выводы аналогового ввода не требуются). Он довольно прост в использовании, но требует аккуратного выбора времени для сбора данных.
  • Единственным реальным недостатком этого датчика является то, что вы можете получать от него новые данные только каждые 2 секунды, поэтому при использовании нашей библиотеки показания датчика могут быть старше 2 секунд.

Технические характеристики:

  • Питание от 3 до 5 В и ввод / вывод
  • Подходит для показаний температуры 0-50 ° C с точностью ± 2 ° C
  • Подходит для измерения влажности 20-80% с точностью 5%
  • Максимальный ток 2,5 мА, используемый во время преобразования (при запросе данных)

Шаг 2: подключение

Связь
Связь

DHT11 с Nodemcu:

Контакт 1 - 3,3 В

Контакт 2 - D4

Контакт 3 - NC

Контакт 4 - Gnd

BMP180 с Nodemcu:

Вин - 3,3 В

Земля - Земля

SCL - D6

ПДД - D7

Шаг 3. Настройте Blynk

Image
Image
Настроить Blynk
Настроить Blynk

Что такое Блинк?

Blynk - это платформа с приложениями для iOS и Android для управления Arduino, Raspberry Pi и т.п. через Интернет.

Это цифровая панель инструментов, на которой вы можете создать графический интерфейс для своего проекта, просто перетаскивая виджеты. Настроить все очень просто, и вы начнете возиться менее чем за 5 минут. Блинк не привязан к какой-то конкретной доске или щиту. Вместо этого он поддерживает оборудование по вашему выбору. Независимо от того, подключен ли ваш Arduino или Raspberry Pi к Интернету через Wi-Fi, Ethernet или этот новый чип ESP8266, Blynk предоставит вам доступ к Интернету и готов к Интернету ваших вещей.

Для получения дополнительной информации о настройке Blynk: Подробная настройка Blynk

Шаг 4: Код

Код
Код

// Комментарии для каждой строки приведены в файле.ino ниже

#include #define BLYNK_PRINT Serial #include #include #include #include #include Adafruit_BMP085 bmp; #define I2C_SCL 12 #define I2C_SDA 13 float dst, bt, bp, ba; char dstmp [20], btmp [20], bprs [20], balt [20]; bool bmp085_present = true; char auth = "Поместите сюда свой ключ аутентификации из приложения Blynk"; char ssid = "Ваш WiFi SSID"; char pass = "Ваш пароль"; #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Определение вывода и таймера dhttype BlynkTimer; void sendSensor () {if (! bmp.begin ()) {Serial.println («Не удалось найти действующий датчик BMP085, проверьте проводку!»); в то время как (1) {}} float h = dht.readHumidity (); float t = dht.readTemperature (); if (isnan (h) || isnan (t)) {Serial.println («Не удалось прочитать с датчика DHT!»); возвращение; } двойная гамма = log (h / 100) + ((17,62 * t) / (243,5 + t)); двойной dp = 243,5 * гамма / (17,62-гамма); float bp = bmp.readPressure () / 100; float ba = bmp.readAltitude (); float bt = bmp.readTemperature (); float dst = bmp.readSealevelPressure () / 100; Blynk.virtualWrite (V5, h); Blynk.virtualWrite (V6, t); Blynk.virtualWrite (V10, bp); Blynk.virtualWrite (V11, ba); Blynk.virtualWrite (V12, bt); Blynk.virtualWrite (V13, dst); Blynk.virtualWrite (V14, dp); } void setup () {Serial.begin (9600); Blynk.begin (auth, ssid, pass); dht.begin (); Wire.begin (I2C_SDA, I2C_SCL); задержка (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

Рекомендуемые: