Съдържание:

Метеорологична станция „Направи си сам“, използваща DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър: 4 стъпки
Метеорологична станция „Направи си сам“, използваща DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър: 4 стъпки

Видео: Метеорологична станция „Направи си сам“, използваща DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър: 4 стъпки

Видео: Метеорологична станция „Направи си сам“, използваща DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър: 4 стъпки
Видео: Wifi Weather Station | Software & 3D Printing 🌦📡 2024, Юли
Anonim
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър
Направи си метеорологична станция, използвайки DHT11, BMP180, Nodemcu с Arduino IDE през Blynk сървър

Github: DIY_Weather_Station

Hackster.io: Метеорологична станция

Бихте видели приложението за времето, нали? Например, когато го отворите, ще се запознаете с метеорологичните условия като температура, влажност и т.н. Тези показания са средната стойност на голяма площ, така че ако искате да знаете точните параметри, свързани с вашата стая, не можете просто разчитайте на приложението за времето. За тази цел нека преминем към създаването на метеорологична станция, която е рентабилна, а също така е надеждна и ни дава точната стойност.

Метеорологичната станция е съоръжение с инструменти и оборудване за измерване на атмосферните условия за предоставяне на информация за прогнози за времето и за изучаване на времето и климата. Изисква малко усилия за включване и кодиране. Така че нека започнем.

За Nodemcu:

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. IDE на Arduino

Стъпка 1: Познайте сензорите си

Познайте сензорите си
Познайте сензорите си

BMP180:

Описание:

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

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

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

  • Vin: 3 до 5VDC
  • Логика: Съвместим с 3 до 5V
  • Обхват на измерване на налягането: 300-1100 hPa (9000m до -500m над морското равнище)
  • До 0.03hPa / 0.25m резолюция -40 до +85 ° C работен диапазон, +-2 ° C точност на температурата
  • Тази платка/чип използва I2C 7-битов адрес 0x77.

DHT11:

Описание:

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

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

  • Захранване от 3 до 5V и I/O
  • Подходящ за отчитане на температурата 0-50 ° C ± 2 ° C с точност
  • Подходящ за 20-80% влажност с точност 5%
  • Максимално използване на ток 2,5 mA по време на преобразуване (докато се искат данни)

Стъпка 2: Свързване

Свързване
Свързване

DHT11 с Nodemcu:

ПИН 1 - 3.3V

Щифт 2 - D4

Щифт 3 - NC

Пин 4 - Gnd

BMP180 с Nodemcu:

Vin - 3.3V

Gnd - Gnd

SCL - D6

SDA - D7

Стъпка 3: Настройка на Blynk

Image
Image
Настройка на Blynk
Настройка на Blynk

Какво е Blynk?

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

Това е цифрово табло, където можете да изградите графичен интерфейс за вашия проект, като просто плъзнете и пуснете джаджи. Много е лесно да настроите всичко и ще започнете да се занимавате за по -малко от 5 минути. Blynk не е свързан с някаква конкретна дъска или щит. Вместо това поддържа хардуер по ваш избор. Независимо дали вашият 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 = вярно; char auth = "Поставете своя ключ за удостоверяване от приложението Blynk тук"; char ssid = "Вашият WiFi SSID"; char pass = "Вашата парола"; #дефинирайте DHTPIN 2 #дефинирайте DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE); // Определяне на щифта и таймера на dhttype BlynkTimer; void sendSensor () {if (! bmp.begin ()) {Serial.println ("Не можах да намеря валиден сензор BMP085, проверете окабеляването!"); while (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, ба); 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 (); }

Препоръчано: