Სარჩევი:

წვრილმანი ამინდის სადგური 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 ნაბიჯი
ვიდეო: "კარგმოტ**ული ღრუბელი" - ამინდის პროგნოზი თენგოისგან(შოთიკო ნოზაძისგან) 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 არის ღია კოდის IoT პლატფორმა.

იგი მოიცავს პროგრამულ უზრუნველყოფას, რომელიც მუშაობს ESP8266 Wi-Fi SoC– დან Espressif Systems– დან და ტექნიკას, რომელიც ემყარება ESP-12 მოდულს.

ტერმინი "NodeMCU" სტანდარტულად ეხება firmware- ს და არა dev კომპლექტებს. Firmware იყენებს Lua სკრიპტირების ენას. იგი ემყარება eLua პროექტს და აგებულია Espressif Non-OS SDK– ზე ESP8266– ისთვის. იგი იყენებს ბევრ ღია პროექტს, როგორიცაა lua-cjson და spiffs.

სენსორები და პროგრამული უზრუნველყოფის მოთხოვნები:

1. ნოდემკუ (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 -დან 5 ვ -მდე შეესაბამება
  • წნევის მგრძნობიარე დიაპაზონი: 300-1100 ცხ.წ.სთ (ზღვის დონიდან 9000 მ -500 მ)
  • 0.03hPa / 0.25 მ რეზოლუცია -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 ნოდემკუსთან ერთად:

Pin 1 - 3.3V

პინი 2 - D4

პინი 3 - NC

პინი 4 - Gnd

BMP180 ნოდემკუსთან ერთად:

ვინი - 3.3V

გნდ - გნდ

SCL - D6

SDA - D7

ნაბიჯი 3: დააინსტალირეთ ბლინკი

Image
Image
ბლინკის დაყენება
ბლინკის დაყენება

რა არის ბლინკი?

ბლინკი არის პლატფორმა iOS და Android პროგრამებით, რომელიც აკონტროლებს Arduino- ს, Raspberry Pi- ს და მსგავსებს ინტერნეტით.

ეს არის ციფრული დაფა, სადაც შეგიძლიათ ააწყოთ გრაფიკული ინტერფეისი თქვენი პროექტისთვის, ვიჯეტების უბრალოდ გადაადგილებით და ჩაშვებით. მართლაც ძალიან მარტივია ყველაფრის დაყენება და თქვენ დაიწყებთ ჩხუბს 5 წუთზე ნაკლებ დროში. ბლინკი არ არის მიბმული რაიმე კონკრეტულ დაფაზე ან ფარზე. ამის ნაცვლად, ის მხარს უჭერს თქვენს მიერ არჩეულ ტექნიკას. იქნება თქვენი Arduino თუ Raspberry Pi დაკავშირებული ინტერნეტით Wi-Fi- ით, Ethernet- ით თუ ეს ახალი ESP8266 ჩიპით, ბლინკი მოგაწვდით ინტერნეტში და მოემზადება თქვენი ნივთების ინტერნეტისთვის.

ბლინკის დაყენების შესახებ დამატებითი ინფორმაციისთვის: ბლინკის დეტალური დაყენება

ნაბიჯი 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], ბალტი [20]; bool bmp085_present = ჭეშმარიტი; char auth = "განათავსეთ თქვენი ავტორიზაციის გასაღები ბლინკის აპლიკაციიდან აქ"; char ssid = "თქვენი WiFi SSID"; char pass = "შენი პაროლი"; #განსაზღვრეთ DHTPIN 2 #განსაზღვრეთ 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 სენსორიდან წაკითხვა ვერ მოხერხდა!"); დაბრუნების; } ორმაგი გამა = ჟურნალი (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, თ); 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 (author, ssid, pass); dht. დაწყება (); Wire.begin (I2C_SDA, I2C_SCL); დაგვიანება (10); timer.setInterval (1000L, sendSensor); } void loop () {Blynk.run (); timer.run (); }

გირჩევთ: