Სარჩევი:
- მარაგები
- ნაბიჯი 1: გაზომეთ ტემპერატურა და ტენიანობა
- ნაბიჯი 2: შექმენით და დააკონფიგურირეთ პროექტი
- ნაბიჯი 3: დააინსტალირეთ ბიბლიოთეკები
- ნაბიჯი 4: შეაერთეთ DHT11 სენსორი
- ნაბიჯი 5: მონაცემების გაგზავნა ღრუბელში
- ნაბიჯი 6: დიაგნოსტიკა
- ნაბიჯი 7: დაიწყეთ და დაარეგულირეთ პროექტი
- ნაბიჯი 8: დაფის კონფიგურაცია
- ნაბიჯი 9: დასკვნა
ვიდეო: DHT11/DHT22 სენსორის ღრუბელთან დაკავშირება ESP8266 დაფუძნებული დაფით: 9 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
წინა სტატიაში მე დავაკავშირე ჩემი ESP8266 დაფუძნებული NodeMCU დაფა Cloud4RPi სერვისთან. ახლა, დროა რეალური პროექტისთვის!
მარაგები
ტექნიკის მოთხოვნები:
- ნებისმიერი დაფა დაფუძნებული ESP8266 ჩიპზე (მაგალითად, NodeMCU)
- DHT11 ან DHT22 სენსორი
პროგრამული უზრუნველყოფა და მომსახურება:
- DHT სენსორების ბიბლიოთეკა Adafruit– ის მიერ - v1.3.7
- ადაფრუტის ერთიანი სენსორი - v1.0.3
- cloud4rpi-esp-arduino-v0.1.0
- Cloud4RPI - ღრუბლის მართვის პანელი IoT მოწყობილობებისთვის
- PlatformIO IDE VSCode– სთვის
ნაბიჯი 1: გაზომეთ ტემპერატურა და ტენიანობა
მე უკვე მქონდა DHT11 სენსორი, ამიტომ გადავწყვიტე გამომეყენებინა იგი ტემპერატურისა და ტენიანობის გაზომვისთვის. ავირჩიოთ არდუინოს ბიბლიოთეკა სენსორის მონაცემების წასაკითხად.
არდუინოს რეესტრი შეიცავს რამდენიმე ბიბლიოთეკას, რომელთაგან მე შევარჩიე ყველაზე პოპულარული.
მათი GitHub საცავის თანახმად, ჩვენ ასევე უნდა დავამატოთ Adafruit Unified Sensor პაკეტი.
ნაბიჯი 2: შექმენით და დააკონფიგურირეთ პროექტი
მე უკვე აღვწერე, თუ როგორ უნდა შევქმნათ PlatformIO პროექტი და დავაყენო ბიბლიოთეკები პირველ ნაწილში. ჩემს პროექტს ჰქვია "MyNodeMCU". სტრუქტურა ნაჩვენებია ზემოთ.
ეს პროექტი ოდნავ შეცვლილი Cloud4RPi მაგალითია. მე გადავწყვიტე მოწყობილობის ნიშნის და Wi-Fi სერთიფიკატების შესანახად კონფიგურაციის ფაილში კოდის ნაცვლად.
Platform.io ფაილი ასე გამოიყურება:
[platformio] default_envs = nodemcuv2 [env: nodemcuv2] platform = espressif8266 framework = arduino board = nodemcuv2
ნაბიჯი 3: დააინსტალირეთ ბიბლიოთეკები
ბიბლიოთეკების დაყენება საკმაოდ მარტივია. ამის გაკეთება შეგიძლიათ IDE– ს გრაფიკული ინტერფეისიდან, ან საჭირო ბიბლიოთეკის სახელების დამატებით platform.io ფაილის lib_deps განყოფილებაში:
; … Lib_deps = cloud4rpi -esp -arduino Adafruit ერთიანი სენსორი DHT სენსორების ბიბლიოთეკა build_flags = -D MQTT_MAX_PACKET_SIZE = 1024 -D MQTT_MAX_TRANSFER_SIZE = 128 -D CLOUD4RPI_DW_IDE-g.webp
დამატებული ბიბლიოთეკები ავტომატურად დაინსტალირდება პროექტის ქვესაქაღალდეში.
Main.cpp სათაური გამოიყურება შემდეგნაირად:
#მოიცავს #მოიცავს #მოიცავს #მოიცავს #DHT.h"
ნაბიჯი 4: შეაერთეთ DHT11 სენსორი
Adafruit გთავაზობთ DHTtester.ino სენსორული კავშირის მაგალითს.
ეს კოდი ახდენს სენსორის ინიციალიზაციას და განსაზღვრავს სტრუქტურას გაზომვის შედეგის შესანახად (თუ ის წარმატებული იყო):
#განსაზღვრეთ DHTPIN 2 // DHT სენსორთან დაკავშირებული ციფრული პინი#განსაზღვრეთ DHTTYPE DHT11 // DHT 11 //… DHT dht (DHTPIN, DHTTYPE); dht. დაწყება (); //… struct DHT_Result {float h; float t; }; DHT_Result dhtResult;
შემდეგი ფუნქცია აჩვენებს, თუ როგორ უნდა წაიკითხოთ სენსორული მონაცემები და შეინახოთ იგი ზემოთ აღწერილ მონაცემთა სტრუქტურაში
void readSensors () {float h = dht.readHumidity (); // წაიკითხეთ ტემპერატურა ცელსიუსით (ნაგულისხმევი) float t = dht.readTemperature ();
// შეამოწმეთ თუ წაკითხვა ვერ მოხერხდა და გამოდით
if (isnan (h) || isnan (t)) {Serial.println (F ("DHT სენსორიდან წაკითხვა ვერ მოხერხდა!")); დაბრუნების; } dhtResult.h = h; dhtResult.t = t; }
ნაბიჯი 5: მონაცემების გაგზავნა ღრუბელში
მას შემდეგ რაც გვაქვს ეს მონაცემები, შემდეგი ნაბიჯი არის მისი გაგზავნა Cloud4RPi სერვისზე.
Cloud4RPi for Arduino გვერდზე აღწერილია ბიბლიოთეკის API, რომელიც წარმოადგენს მეთოდების ერთობლიობას:
- ცვლადების შექმნა, წაკითხვა და განახლება,
- გაგზავნეთ ცვლადი მნიშვნელობები ღრუბელში MQTT პროტოკოლის გამოყენებით.
ბიბლიოთეკა მხარს უჭერს სამი ცვლადის ტიპს: Bool, Numeric და String.
ბიბლიოთეკის სამუშაო ნაკადი იწყება Cloud4rpi.io ვებ – გვერდიდან მოწყობილობის ნიშნის გამოყენებით API მაგალითის შექმნით (დეტალებისთვის იხილეთ სტატიის ნაწილი 1).
#განსაზღვრული (CLOUD4RPI_TOKEN) Cloud4RPi c4r (CLOUD4RPI_TOKEN); #სხვა Cloud4RPi c4r ("!!! _ NO_DEVICE_TOKEN _ !!!"); #დაასრულე თუ
შემდეგ გამოაცხადეთ ცვლადები DHT11 კითხვებისთვის:
c4r.declareNumericVariable ("DHT11_Temp"); c4r.declareNumericVariable ("DHT11_Hum");
შემდეგ, მიიღეთ მონაცემები სენსორიდან, შეინახეთ ისინი ცვლადებში და გამოაქვეყნეთ მონაცემები Cloud4RPi– ში:
c4r.setVariable ("DHT11_Temp", dhtResult.t); c4r.setVariable ("DHT11_Hum", dhtResult.h); c4r.publishData ();
ტემპერატურა და ტენიანობა არ იცვლება სწრაფად, ამიტომ 5 წუთში ერთზე მეტი მნიშვნელობის გაგზავნა არ არის საჭირო.
ნაბიჯი 6: დიაგნოსტიკა
Cloud4RPi მხარს უჭერს დიაგნოსტიკურ მონაცემებს ცვლად მნიშვნელობებთან ერთად. გამოვიყენე დრო, Wi-Fi სიგნალის სიძლიერე და IP მისამართი, როგორც სადიაგნოსტიკო მონაცემები:
c4r.declareDiagVariable ("IP_Address"); c4r.declareDiagVariable ("RSSI"); // WiFi სიგნალის სიძლიერე c4r.declareDiagVariable ("დრო");
შენიშვნა: millis ფუნქცია, რომელსაც ვიყენებ, რომ დროულად გადავიდეს ნულამდე ყოველ 50 დღეში. რაც საკმარისზე მეტია ჩემი პროექტისთვის.
შემდეგი კოდი ადგენს დიაგნოსტიკური ცვლადის მნიშვნელობებს:
c4r.setDiagVariable ("RSSI", (სიმებიანი) WiFi. RSSI () + "dBm"); c4r.setDiagVariable ("IP_Address", WiFi.localIP (). toString ()); c4r.setDiagVariable ("Uptime", uptimeHumanReadable (currentMillis)); c4r.publishDiag ();
UptimeHumanReadable ფუნქცია გარდაქმნის მილიწამებს მოსახერხებელ ფორმაში:
სიმებიანი uptimeHumanReadable (ხელმოუწერელი გრძელი მილიწამი) {static char uptimeStr [32]; ხელმოუწერელი გრძელი წამი = მილიწამი / 1000; ხელმოუწერელი გრძელი წთ = წამი / 60; ხელმოუწერელი int საათი = წთ / 60; ხელმოუწერელი int დღეები = საათი / 24; წამი -= წთ * 60; წთ -= საათი * 60; საათი -= დღე * 24; sprintf (uptimeStr, "%d დღე%2.2d:%2.2d:%2.2d", (ბაიტი) დღე, (ბაიტი) საათი, (ბაიტი) წთ, (ბაიტი) წამი); დაბრუნების სიმებიანი (uptimeStr); }
ფუნქცია გამოაქვს ასეთი სიმებიანი 5 დღის 10:23:14 უცნაური დიდი რიცხვის ნაცვლად.
ნაბიჯი 7: დაიწყეთ და დაარეგულირეთ პროექტი
შექმნილი კოდის შედგენისა და NodeMCU- ში განათების შემდეგ, მოწყობილობა უკავშირდება ღრუბლოვან სერვისს და იწყებს მონაცემების გაგზავნას.
თქვენ შეგიძლიათ გაზარდოთ ტყუილების აღწერილობა CLOUD4RPI_DEBUG წინასწარი პროცესორის ცვლადის 1 -ით (დამატება -D CLOUD4RPI_DEBUG = 1 პლატფორმაში.io ფაილში build_flags განყოფილებაში).
შემდეგი, გახსენით cloud4rpi.io საიტი და შენიშნეთ ახალი მოწყობილობა ინტერნეტით. გახსენით იგი მოწყობილობიდან მიღებული ყველა ცვლადი მნიშვნელობის სანახავად: სენსორი და დიაგნოსტიკა.
ნაბიჯი 8: დაფის კონფიგურაცია
ამ ეტაპზე, ღრუბელთან მონაცემთა კავშირი ფუნქციონირებს. ახლა, მოდით დავაკონფიგურიროთ მონაცემების ვიზუალური წარმოდგენა.
მე გამოვიყენე Dashboard– ის კონფიგურაციის ინტერფეისი შემდეგი დაფის შესაქმნელად.
დაფა არის გასაზიარებელი, ამიტომ მყისიერად ვუზიარებ მას ჩემს მეგობარს.
ნაბიჯი 9: დასკვნა
პროექტის სრული კოდი მოცემულია შინაარსში.
სულ ესაა ჯერჯერობით!
კითხვები და წინადადებები მისასალმებელია კომენტარებში.
გირჩევთ:
3 ღერძიანი გიროსკოპის სენსორის BMG160 დაკავშირება არდუინო ნანოსთან: 5 ნაბიჯი
3 ღერძიანი გიროსკოპის სენსორის BMG160 ინტერფეისი არდუინო ნანოსთან: დღევანდელ სამყაროში ახალგაზრდების და ბავშვების ნახევარზე მეტს უყვარს თამაში და ყველა ვისაც უყვარს, თამაშების ტექნიკური ასპექტებით მოხიბლული იცის მოძრაობის აღქმის მნიშვნელობა ამ დომენში. ჩვენც გაოგნებული ვიყავით ერთი და იგივე რამით
Arduino WiFi- ს ღრუბელთან დაკავშირება ESP8266 გამოყენებით: 7 ნაბიჯი
Arduino WiFi– ს ღრუბელთან დაკავშირება ESP8266– ის გამოყენებით: ამ სამეურვეოში ჩვენ აგიხსნით, თუ როგორ უნდა დაუკავშიროთ თქვენი Arduino IoT ღრუბელს WiFi– ს საშუალებით. ჩვენ დავაკონფიგურირებთ Arduino– ს და ESP8266 WiFi მოდულისგან შემდგარ კონფიგურაციას, როგორც IoT Thing და მოვამზადებთ მას AskSensors ღრუბელთან კომუნიკაციისთვის. L
IoT საფუძვლები: თქვენი IoT– ის ღრუბელთან დაკავშირება Mongoose OS– ის გამოყენებით: 5 ნაბიჯი
IoT საფუძვლები: თქვენი IoT– ის ღრუბელთან დაკავშირება Mongoose OS– ის საშუალებით: თუ თქვენ ხართ ადამიანი, რომელიც დაკავებულია ელექტრონიკითა და ელექტრონიკით, უფრო ხშირად, ვიდრე არა, თქვენ წააწყდებით ტერმინს ნივთების ინტერნეტი, ჩვეულებრივ შემოკლებით როგორც IoT, და რომ ის ეხება მოწყობილობების ერთობლიობას, რომელსაც შეუძლია ინტერნეტთან დაკავშირება! იყო ასეთი ადამიანი
ავტომატური ჭკვიანი აკვაპონიკა (ღრუბელზე დაფუძნებული დაფით): 11 ნაბიჯი
ავტომატური ჭკვიანი აკვაპონიკა (ღრუბელზე დაფუძნებული დაფით): Aquaponics გაძლევთ საშუალებას გაზარდოთ თქვენი საკუთარი ორგანული საკვები სადმე (შიდა თუ გარე), ძალიან ნაკლებ სივრცეში, მეტი ზრდით, წყლის ნაკლებ მოხმარებით და გარე ქიმიური სასუქების გარეშე. ასევე, შეგიძლიათ თვალყური ადევნოთ პირობებს ღრუბელზე დაფუძნებულ დაფაზე
Flappy Bird თამაშის თამაში M5stack Esp32 დაფუძნებული M5stick C განვითარების დაფით: 5 ნაბიჯი
Flappy Bird თამაშის თამაში M5stack Esp32 დაფუძნებული M5stick C განვითარების დაფით: გამარჯობა ბიჭებო დღეს ჩვენ ვისწავლით თუ როგორ უნდა ატვირთოთ flappy bird თამაშის კოდი m5stack– ის მიერ მოწოდებული m5stick c განვითარების დაფაზე. ამ პატარა პროექტისათვის დაგჭირდებათ შემდეგი ორი რამ: m5stick-c განვითარების დაფა: https://www.utsource.net/itm/p/8663561.h