Агуулгын хүснэгт:

DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: 4 алхам
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: 4 алхам

Видео: DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: 4 алхам

Видео: DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц: 4 алхам
Видео: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Арваннэгдүгээр
Anonim
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц
DHT11, BMP180, Nodemcu ашиглан Blynk сервер дээр Arduino IDE ашиглан DIY цаг уурын станц

Github: DIY_Weather_Station

Hackster.io: Цаг агаарын станц

Та цаг агаарын мэдээг үзэх байсан биз дээ? Жишээлбэл, та үүнийг нээхдээ температур, чийгшил гэх мэт цаг агаарын нөхцөл байдалтай танилцах болно. Эдгээр уншилт нь том талбайн дундаж утга тул та өрөөнийхөө параметрүүдийг яг таг мэдэхийг хүсч байвал үүнийг хийх боломжгүй юм. Цаг агаарын мэдүүлэгт найдах. Үүний тулд цаг агаарын станц хийх ажлыг үргэлжлүүлье, энэ нь эдийн засгийн хувьд хэмнэлттэй, найдвартай бөгөөд бидэнд үнэн зөв үнэ цэнийг өгдөг.

Цаг агаарын станц гэдэг нь цаг агаарын урьдчилсан мэдээ өгөх, цаг агаар, цаг уурыг судлах зорилгоор агаар мандлын нөхцлийг хэмжих багаж, тоног төхөөрөмж бүхий байгууламж юм. Залгах, код бичихэд бага зэрэг хүчин чармайлт шаардагдана. Тиймээс эхэлцгээе.

Нодемкугийн тухай:

NodeMCU бол нээлттэй эх сурвалжтай IoT платформ юм.

Үүнд Espressif Systems-ийн ESP8266 Wi-Fi SoC дээр ажилладаг програм хангамж, ESP-12 модульд суурилсан техник хангамж орно.

"NodeMCU" гэсэн нэр томъёо нь анхдагч хэрэгслүүдээс илүү програм хангамжийг хэлдэг. Програм хангамж нь Lua скрипт хэлийг ашигладаг. Энэ нь eLua төсөл дээр суурилсан бөгөөд ESP8266-д зориулагдсан Espressif OS бус SDK дээр суурилсан болно. Энэ нь 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 -аас 5VDC хүртэл
  • Логик: 3 -аас 5V -тэй нийцдэг
  • Даралт мэдрэх хүрээ: 300-1100 hPa (далайн түвшнээс дээш 9000м -500м)
  • 0.03hPa / 0.25m нарийвчлалтай -40-аас +85 ° C хүртэл ажиллах хүрээ, +-2 ° C температурын нарийвчлал
  • Энэхүү самбар/чип нь I2C 7 битийн 0x77 хаягийг ашигладаг.

DHT11:

Тодорхойлолт:

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

Техникийн үзүүлэлтүүд:

  • 3-5 вольтын хүч ба I/O
  • 0-50 ° C температурын уншилт ± 2 ° C нарийвчлалтай байвал сайн
  • 5% -ийн нарийвчлалтайгаар 20-80% -ийн чийгшилтийг уншихад тохиромжтой
  • Хөрвүүлэлтийн үед 2.5 мА хамгийн их гүйдлийн хэрэглээ (өгөгдөл хүсэх үед)

Алхам 2: Холболт

Холболт
Холболт

Nodemcu -тэй DHT11:

Зүү 1 - 3.3V

Зүү 2 - D4

Зүү 3 - NC

4 -р зүү - Gnd

Nodemcu -тай BMP180:

Вин - 3.3В

Гнд - Гнд

SCL - D6

SDA - D7

Алхам 3: Blynk -ийг тохируулна уу

Image
Image
Blynk -ийг тохируулах
Blynk -ийг тохируулах

Блинк гэж юу вэ?

Blynk бол Arduino, Raspberry Pi болон бусад зүйлийг интернетээр удирдах iOS болон Android програмтай платформ юм.

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

Blynk -ийг тохируулах талаар дэлгэрэнгүй мэдээллийг: Blynk -ийн дэлгэрэнгүй тохиргоо

Алхам 4: Код

Код
Код

// Мөр бүрийн тайлбарыг доорх.ino файлд өгсөн болно

#оруулах #тодорхойлох BLYNK_PRINT Цуврал #оруулах #оруулах #оруулах #оруулах #Adafruit_BMP085 bmp оруулах; #тодорхойлох I2C_SCL 12 #тодорхойлох 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 мэдрэгчээс уншиж чадсангүй!"); буцах; } давхар гамма = лог (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 (); }

Зөвлөмж болгож буй: