Სარჩევი:

IoT მარტივია: მონიტორინგი მრავალი სენსორისთვის: 7 ნაბიჯი
IoT მარტივია: მონიტორინგი მრავალი სენსორისთვის: 7 ნაბიჯი

ვიდეო: IoT მარტივია: მონიტორინგი მრავალი სენსორისთვის: 7 ნაბიჯი

ვიდეო: IoT მარტივია: მონიტორინგი მრავალი სენსორისთვის: 7 ნაბიჯი
ვიდეო: Learn Arduino in 30 Minutes: Examples and projects 2024, ნოემბერი
Anonim
IoT დამზადებულია მარტივად: მრავალი სენსორის მონიტორინგი
IoT დამზადებულია მარტივად: მრავალი სენსორის მონიტორინგი
IoT მარტივი: მონიტორინგი მრავალი სენსორისთვის
IoT მარტივი: მონიტორინგი მრავალი სენსორისთვის

რამდენიმე კვირის წინ, მე გამოვაქვეყნე სახელმძღვანელო ტემპერატურის მონიტორინგის შესახებ DS18B20- ის გამოყენებით, ციფრული სენსორი, რომელიც კომუნიკაციას უწევს 1 მავთულის ავტობუსს, აგზავნის მონაცემებს ინტერნეტში NodeMCU- სა და ბლინკთან ერთად:

IoT მარტივი: ტემპერატურის მონიტორინგი სადმე

მაგრამ ის, რაც ჩვენ გამოვტოვეთ კვლევისას, იყო ამ ტიპის სენსორის ერთ-ერთი უდიდესი უპირატესობა, რომელიც არის მრავალჯერადი მონაცემების შეგროვების შესაძლებლობა ერთი და იმავე მავთულის ავტობუსთან დაკავშირებული მრავალი სენსორისგან. და ახლა დროა ისიც შეისწავლო.

ჩვენ გავაფართოვებთ იმას, რაც შემუშავდა ბოლო გაკვეთილზე, მონიტორინგს ვუწევთ ორ სენსორს DS18B20, კონფიგურირებული ერთი ცელსიუსში და მეორე ფარენჰაიტში. მონაცემები გაიგზავნება ბლინკის აპლიკაციაში, როგორც ეს ნაჩვენებია ზემოთ ბლოკ დიაგრამაში.

ნაბიჯი 1: მასალის შედგენა

  • NodeMCU ESP 12-E (*)
  • 2 X DS18B20 ტემპერატურის სენსორი
  • რეზისტორი 4.7K Ohms
  • პურის დაფა
  • გაყვანილობა

(*) აქ შეიძლება გამოყენებულ იქნას ნებისმიერი ტიპის ESP მოწყობილობა. ყველაზე გავრცელებულია NodeMCU V2 ან V3. ორივე ყოველთვის კარგად იმუშავებს.

ნაბიჯი 2: ტემპერატურის სენსორი DS18B20

DS18B20 ტემპერატურის სენსორი
DS18B20 ტემპერატურის სენსორი

ამ გაკვეთილში ჩვენ გამოვიყენებთ DS18B20 სენსორის წყალგაუმტარი ვერსიას. ძალიან სასარგებლოა დისტანციური ტემპერატურისთვის სველ პირობებში, მაგალითად ტენიან ნიადაგში. სენსორი იზოლირებულია და შეუძლია გაზომოს 125oC– მდე (ადაფრუტი არ გირჩევთ მის გამოყენებას 100oC– ზე ზემოთ საკაბელო PVC ქურთუკის გამო).

DS18B20 არის ციფრული სენსორი, რის გამოც მისი გამოყენება კარგია თუნდაც დიდ დისტანციებზე! ეს 1 მავთულის ციფრული ტემპერატურის სენსორები საკმაოდ ზუსტია (± 0.5 ° C დიაპაზონში) და შეუძლია 12 ბიტამდე სიზუსტე მისცეს ციფრული ანალოგურ გადამყვანზე. ისინი მშვენივრად მუშაობენ NodeMCU– სთან ერთი ციფრული პინის გამოყენებით, და თქვენ შეგიძლიათ დააკავშიროთ რამოდენიმე ერთსა და იმავე პინს, თითოეულს აქვს უნიკალური 64 ბიტიანი პირადობის მოწმობა ქარხანაში, რომელიც მათ განასხვავებს.

სენსორი მუშაობს 3.0 -დან 5.0 ვ -მდე, რაც იმას ნიშნავს, რომ ის შეიძლება იკვებებოდეს უშუალოდ 3.3V NodeMCU ქინძისთავებიდან.

სენსორს აქვს 3 მავთული:

  • შავი: GND
  • წითელი: VCC
  • ყვითელი: 1 მავთულის მონაცემები

აქ თქვენ შეგიძლიათ ნახოთ სრული მონაცემები: DS18B20 მონაცემთა ცხრილი

ნაბიჯი 3: სენსორების დაკავშირება NodeMCU– სთან

სენსორების დაკავშირება NodeMCU– სთან
სენსორების დაკავშირება NodeMCU– სთან
  1. შეაერთეთ 3 მავთული თითოეული სენსორიდან მინი Breadboard– ზე, როგორც ეს მოცემულია ზემოთ მოცემულ ფოტოში. მე გამოვიყენე სპეციალური კონექტორები სენსორის კაბელის უკეთ დასაფიქსირებლად.
  2. გაითვალისწინეთ, რომ ორივე სენსორი პარალელურია. თუ თქვენ გაქვთ 2 -ზე მეტი სენსორი, იგივე უნდა გააკეთოთ.

    • წითელი ==> 3.3V
    • შავი ==> GND
    • ყვითელი ==> D4
  3. გამოიყენეთ 4.7K ohms რეზისტორი VCC (3.3V) და Data (D4) შორის

ნაბიჯი 4: შესაბამისი ბიბლიოთეკების დაყენება

იმისათვის, რომ DS18B20 სწორად გამოვიყენოთ, ორი ბიბლიოთეკა იქნება საჭირო:

  1. OneWire
  2. დალასის ტემპერატურა

დააინსტალირეთ ორივე ბიბლიოთეკა თქვენს Arduino IDE ბიბლიოთეკის საცავში.

გაითვალისწინეთ, რომ OneWire ბიბლიოთეკა უნდა იყოს სპეციალური, შეცვლილი ESP8266– ით გამოსაყენებლად, წინააღმდეგ შემთხვევაში თქვენ მიიღებთ შეცდომას შედგენისას. ბოლო ვერსიას ნახავთ ზემოთ მოცემულ ბმულზე.

ნაბიჯი 5: სენსორების ტესტირება

სენსორების ტესტირება
სენსორების ტესტირება

სენსორების შესამოწმებლად გადმოწერეთ ქვემოთ მოცემული ფაილი ჩემი GitHub– დან:

NodeMCU_DS18B20_Dual_Se nsor_test.ino

/**************************************************************

*მრავალჯერადი ტემპერატურის გამომგზავნის ტესტი**2 x OneWire სენსორი: DS18B20*დაკავშირებულია NodeMCU D4 (ან Arduino Pin 2)**შემუშავებულია მარსელო როვაის მიერ - 25 აგვისტო 2017 **************** ****************************************** # #მოიცავს # ჩართეთ #განსაზღვრეთ ONE_WIRE_BUS 2 // DS18B20 NodeMCU პინზე D4 OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); void setup () {Serial.begin (115200); DS18B20. დასაწყისი (); Serial.println ("ორმაგი სენსორის მონაცემების ტესტირება"); } void loop () {float temp_0; float temp_1; DS18B20. მოითხოვეთ ტემპერატურა (); temp_0 = DS18B20.getTempCByIndex (0); // სენსორი 0 დააფიქსირებს ტემპერატურას ცელსიუსში temp_1 = DS18B20.getTempFByIndex (1); // სენსორი 0 გადაიღებს ტემპერამენტს ფარენჰეიტში Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); დაგვიანება (1000); }

ზემოაღნიშნულ კოდს რომ შევხედოთ, უნდა შევნიშნოთ, რომ ყველაზე მნიშვნელოვანი ხაზებია:

temp_0 = DS18B20.getTempCByIndex (0); // სენსორი 0 დააფიქსირებს ტემპერატურას ცელსიუსში

temp_1 = DS18B20.getTempFByIndex (1); // სენსორი 0 გადაიღებს ტემპერამენტს ფარენჰეიტში

პირველი დააბრუნებს მნიშვნელობას სენსორისგან [0] (შეხედეთ "ინდექსს (0)") ცელსიუსში (შეხედეთ კოდის ნაწილს: "getTempC". მეორე ხაზი დაკავშირებულია სენსორთან [1] და დააბრუნებს მონაცემებს ფარენჰაიტში. აქ შეიძლება გქონდეთ "n" სენსორები, რადგან თითოეული მათგანისთვის განსხვავებული "ინდექსი" გაქვთ.

ახლა ატვირთეთ კოდი თქვენს NodeMCU- ში და აკონტროლეთ ტემპერატურა სერიული მონიტორის გამოყენებით.

ზემოთ მოყვანილი ფოტო გვიჩვენებს მოსალოდნელ შედეგს. დაიჭირეთ თითოეული სენსორი თქვენს ხელში, თქვენ უნდა დაინახოთ ტემპერატურა იზრდება.

ნაბიჯი 6: ბლინკის გამოყენება

ბლინკის გამოყენებით
ბლინკის გამოყენებით
ბლინკის გამოყენებით
ბლინკის გამოყენებით

მას შემდეგ რაც დაიწყებთ ტემპერატურის მონაცემების გადაღებას, დროა ნახოთ იგი ნებისმიერი ადგილიდან. ჩვენ ამას გავაკეთებთ ბლინკის გამოყენებით. ამრიგად, ყველა გადაღებული მონაცემი რეალურ დროში გამოჩნდება თქვენს მობილურ მოწყობილობაზე და ასევე ჩვენ ავაშენებთ ისტორიულ საცავს ამისათვის.

მიჰყევით ქვემოთ მოცემულ ნაბიჯებს:

  1. შექმენით ახალი პროექტი.
  2. მიეცი მას სახელი (ჩემს შემთხვევაში "ორმაგი ტემპერატურის მონიტორი")
  3. აირჩიეთ ახალი მოწყობილობა - ESP8266 (WiFi), როგორც "ჩემი მოწყობილობები"
  4. დააკოპირეთ AUTH TOKEN, რომელიც გამოიყენება კოდში (შეგიძლიათ გამოაგზავნოთ თქვენს ელ.ფოსტაზე).
  5. მოიცავს ორ "Gauge" ვიჯეტს, რომელიც განსაზღვრავს:

    • ვირტუალური პინი გამოიყენება თითოეული სენსორისთვის: V10 (სენსორი [0]) და V11 (სენსორი [1])
    • ტემპერატურის დიაპაზონი: -5 დან 100 oC სენსორისთვის [0]
    • ტემპერატურის დიაპაზონი: 25 -დან 212 oC სენსორისთვის [1]
    • მონაცემების წაკითხვის სიხშირე: 1 წამი
  6. შეიცავს "ისტორიის გრაფიკს" ვიჯეტს, რომელიც განსაზღვრავს V10 და V11 როგორც ვირტუალურ ქინძისთავებს
  7. დააჭირეთ ღილაკს "თამაში" (სამკუთხედი მარჯვენა ზედა კუთხეში)

რა თქმა უნდა, ბლინკის აპლიკაცია გეტყვით, რომ NodeMCU ხაზგარეშეა. დროა ატვირთოთ სრული კოდი თქვენს Arduino IDE– ში. შეგიძლიათ მიიღოთ აქ:

NodeMCU_Dual_Sensor_Blynk_Ext.ino

შეცვალეთ "მოჩვენებითი მონაცემები" საკუთარი სერთიფიკატებით.

/ * ბლინკის რწმუნებათა სიგელები */

char auth = "შენი BLYNK AUTH კოდი აქ"; / * WiFi სერთიფიკატები */ char ssid = "YYUR SSID"; char pass = "შენი პაროლი";

და ეს არის ის!

ქვემოთ მოცემულია სრული კოდი. ეს არის ძირითადად წინა კოდი, სადაც ჩვენ შევიტანეთ ბლინკის პარამეტრები და კონკრეტული ფუნქციები. გაითვალისწინეთ კოდის 2 ბოლო სტრიქონი. ესენი აქ ყველაზე მნიშვნელოვანია. თუ თქვენ გაქვთ მეტი სენსორი, რომელიც აგროვებს მონაცემებს, თქვენ ასევე უნდა გქონდეთ ექვივალენტური ახალი ხაზები, როგორც ეს (განსაზღვრული შესაბამისი ვირტუალური ქინძისთავებით).

/**************************************************************

* IoT ტემპერატურის მრავალჯერადი მონიტორი ბლინკით * ბლინკის ბიბლიოთეკა ლიცენზირებულია MIT ლიცენზიით * ეს მაგალითი კოდი არის საზოგადოებრივ დომენში. **მრავალჯერადი OneWire სენსორი: DS18B20*შემუშავებულია მარსელო როვაის მიერ - 25 აგვისტო 2017 ****************************** ***************************//*ESP & Blynk*/ #include #include #deleine BLYNK_PRINT სერიალი // კომენტარი გაუკეთეთ ამას გამორთეთ ანაბეჭდები და დაზოგეთ ადგილი / * ბლინკის რწმუნებათა სიგელები * / char auth = "YYUR BLYNK AUTH CODE here"; / * WiFi სერთიფიკატები */ char ssid = "YYUR SSID"; char pass = "შენი პაროლი"; / * TIMER */ #მოიცავს SimpleTimer ტაიმერს; / * DS18B20 ტემპერატურის სენსორი */ #მოიცავს #ჩართეთ #განსაზღვრეთ ONE_WIRE_BUS 2 // arduino pin2– ზე DS18B20 შეესაბამება D4 ფიზიკურ დაფაზე OneWire oneWire (ONE_WIRE_BUS); DallasTemperature DS18B20 (& oneWire); int temp_0; int temp_1; void setup () {Serial.begin (115200); Blynk.begin (author, ssid, pass); DS18B20. დასაწყისი (); timer.setInterval (1000L, getSendData); Serial.println (""); Serial.println ("ორმაგი სენსორის მონაცემების ტესტირება"); } void loop () {timer.run (); // იწყებს SimpleTimer Blynk.run (); } /******************************************** ****გაგზავნეთ სენსორის მონაცემები ბლინკში ************************************** *********/ void getSendData () {DS18B20.requestTemperatures (); temp_0 = DS18B20.getTempCByIndex (0); // სენსორი 0 დააფიქსირებს ტემპერატურას ცელსიუსში temp_1 = DS18B20.getTempFByIndex (1); // სენსორი 0 გადაიღებს ტემპერამენტს ფარენჰეიტში Serial.print ("Temp_0:"); Serial.print (temp_0); Serial.print ("oC. Temp_1:"); Serial.print (temp_1); Serial.println ("oF"); Blynk.virtualWrite (10, temp_0); // ვირტუალური პინი V10 Blynk.virtualWrite (11, temp_1); // ვირტუალური პინი V11}

მას შემდეგ, რაც კოდი აიტვირთება და მუშაობს, შეამოწმეთ ბლინკის აპლიკაცია. ის ასევე უნდა იყოს გაშვებული, როგორც ნაჩვენებია ჩემი iPhone– ის დაბეჭდილი ეკრანის ზემოთ.

ნაბიჯი 7: დასკვნა

დასკვნა
დასკვნა

როგორც ყოველთვის, ვიმედოვნებ, რომ ეს პროექტი სხვებს დაეხმარება იპოვონ თავიანთი გზა ელექტრონიკის, რობოტიზმისა და IoT საინტერესო სამყაროში!

გთხოვთ ეწვიოთ ჩემს GitHub განახლებულ ფაილებს: NodeMCU Dual Temp Monitor

მეტი პროექტისთვის ეწვიეთ ჩემს ბლოგს: MJRoBot.org

სალუდო მსოფლიოს სამხრეთიდან!

შევხვდებით ჩემს შემდეგ ინსტრუქტაჟზე!

Გმადლობთ, მარსელო

გირჩევთ: