Სარჩევი:

დაწყება შორ მანძილზე უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: 7 ნაბიჯი
დაწყება შორ მანძილზე უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: 7 ნაბიჯი

ვიდეო: დაწყება შორ მანძილზე უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: 7 ნაბიჯი

ვიდეო: დაწყება შორ მანძილზე უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით: 7 ნაბიჯი
ვიდეო: დილით ჯობია ვარჯიში თუ საღამოს? ვარჯიში 2024, ივლისი
Anonim
დავიწყოთ გრძელი დიაპაზონის უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით
დავიწყოთ გრძელი დიაპაზონის უკაბელო ტემპერატურისა და ვიბრაციის სენსორებით

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

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

  • ლითონის დამუშავება
  • ელექტროენერგიის გამომუშავება
  • სამთო
  • Საკვები და სასმელი

ამრიგად, ამ ინსტრუქციებში ჩვენ განვიხილავთ შემდეგს:

  • უკაბელო სენსორების კონფიგურაცია XCTU და Labview UI გამოყენებით.
  • ვიბრაციის მნიშვნელობების მიღება სენსორიდან.
  • Xbee მოწყობილობისა და xbee პროტოკოლის მუშაობის გაგება.
  • WiFi სერთიფიკატების და IP კონფიგურაციის კონფიგურაცია ტყვე პორტალის გამოყენებით

ნაბიჯი 1: აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია

აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია
აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია
აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია
აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია
აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია
აპარატურის და პროგრამული უზრუნველყოფის სპეციფიკაცია

აპარატურის სპეციფიკაცია

  • უკაბელო ვიბრაციის და ტემპერატურის სენსორები
  • ზიგმო მიმღები
  • ESP32 BLE/ WiFi მოწყობილობა

პროგრამული უზრუნველყოფის სპეციფიკაცია

  • Arduino IDE
  • LabView პროგრამა

ნაბიჯი 2: უკაბელო სენსორისა და ზიგმო მიმღების კონფიგურაცია XCTU გამოყენებით

უკაბელო სენსორისა და ზიგმო მიმღების კონფიგურაცია XCTU გამოყენებით
უკაბელო სენსორისა და ზიგმო მიმღების კონფიგურაცია XCTU გამოყენებით
უკაბელო სენსორისა და ზიგმო მიმღების კონფიგურაცია XCTU გამოყენებით
უკაბელო სენსორისა და ზიგმო მიმღების კონფიგურაცია XCTU გამოყენებით

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

აქ უკაბელო სენსორები და ზიგმო მიმღები იყენებენ დაბალი სიმძლავრის და შორ მანძილზე გადაწყვეტას XBee. XBee იყენებს ZigBee პროტოკოლს, რომელიც განსაზღვრავს ოპერაციას 902 -დან 928 MHz ISM ზოლში.

Xbee– ის კონფიგურაცია შესაძლებელია XCTU პროგრამული უზრუნველყოფის გამოყენებით

  1. მოძებნეთ Xbee მოწყობილობა ან დაამატეთ ახალი Xbee მოწყობილობა ზედა მარცხენა ხატზე დაჭერით.
  2. მოწყობილობა იქნება ჩამოთვლილი მარცხენა პანელზე.
  3. ორჯერ დააწკაპუნეთ მოწყობილობაზე პარამეტრების სანახავად.
  4. ახლა დააწკაპუნეთ კონსოლის ხატზე ზედა მარჯვენა კუთხეში
  5. თქვენ ხედავთ მნიშვნელობას, რომელიც მოდის კონსოლის გამომავალზე
  6. აქ ჩვენ ვიღებთ 54 ბაიტის სიგრძის ჩარჩოს
  7. ამ ბაიტებით შემდგომი მანიპულირება მოხდება რეალური მნიშვნელობების მისაღებად. რეალური ტემპერატურისა და ვიბრაციის მნიშვნელობების მიღების პროცედურა ნახსენებია მომდევნო ნაბიჯებში.

ნაბიჯი 3: უკაბელო ტემპერატურისა და ვიბრაციის ღირებულებების ანალიზი Labview კომუნალური პროგრამის გამოყენებით

უკაბელო ტემპერატურისა და ვიბრაციის ღირებულებების ანალიზი Labview Utility– ის გამოყენებით
უკაბელო ტემპერატურისა და ვიბრაციის ღირებულებების ანალიზი Labview Utility– ის გამოყენებით
უკაბელო ტემპერატურისა და ვიბრაციის ღირებულებების ანალიზი Labview Utility– ის გამოყენებით
უკაბელო ტემპერატურისა და ვიბრაციის ღირებულებების ანალიზი Labview Utility– ის გამოყენებით

სენსორი მუშაობს ორ რეჟიმში

  • კონფიგურაციის რეჟიმი: დააკონფიგურირეთ Pan ID, დაგვიანება, ხელახალი მცდელობა და ა.შ. ამის შესახებ სცილდება ამ ინსტრუქციის ფარგლებს და განმარტდება შემდეგ ინსტრუქციებში.
  • გაშვების რეჟიმი: ჩვენ ვუშვებთ მოწყობილობას გაშვების რეჟიმში. და ამ ღირებულების გასაანალიზებლად ჩვენ ვიყენებთ Labview Utility- ს

ეს Labview UI აჩვენებს მნიშვნელობებს ლამაზ გრაფიკებში. ის გვიჩვენებს მიმდინარე და წარსულ ღირებულებებს. თქვენ შეგიძლიათ გადახვიდეთ ამ ბმულზე, რომ ჩამოტვირთოთ Labview UI.

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

ნაბიჯი 4: DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით

DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით
DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით
DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით
DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით
DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით
DHCP/სტატიკური IP პარამეტრების კონფიგურაცია ტყვე პორტალის გამოყენებით

ჩვენ ვიყენებთ დატყვევებულ პორტალს, რომ შევინარჩუნოთ WiFi სერთიფიკატები და გადავიდეთ IP პარამეტრებში. ტყვე პორტალზე დეტალური დანერგვისთვის შეგიძლიათ გაიაროთ შემდეგი ინსტრუქცია.

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

ნაბიჯი 5: WiFi პარამეტრების შენახვა ტყვე პორტალის გამოყენებით

WiFi პარამეტრების შენახვა ტყვე პორტალის გამოყენებით
WiFi პარამეტრების შენახვა ტყვე პორტალის გამოყენებით

მასპინძლობს ვებგვერდს, სადაც არის სია, სადაც ნაჩვენებია ხელმისაწვდომი WiFi ქსელები და იქ არის RSSI. აირჩიეთ WiFi ქსელი და პაროლი და შეიყვანეთ წარდგენა. სერთიფიკატები შეინახება EEPROM– ში და IP პარამეტრი შეინახება SPIFFS– ში. ამის შესახებ მეტი შეგიძლიათ იხილოთ ამ ინსტრუქციებში.

ნაბიჯი 6: გამოაქვეყნეთ სენსორული კითხვები UbiDots– ზე

აქ ჩვენ ვიყენებთ უკაბელო ტემპერატურისა და ვიბრაციის სენსორებს ESP 32 კარიბჭის მიმღებით ტემპერატურისა და ტენიანობის მონაცემების მისაღებად. ჩვენ მონაცემებს ვაგზავნით UbiDots– ში MQTT პროტოკოლის გამოყენებით. MQTT მიჰყვება გამოქვეყნების და გამოწერის მექანიზმს, ვიდრე მოთხოვნას და პასუხს. ის უფრო სწრაფი და საიმედოა ვიდრე HTTP. ეს მუშაობს შემდეგნაირად.

უსადენო სენსორის მონაცემების წაკითხვა

ჩვენ ვიღებთ 29 ბაიტიან ჩარჩოს უკაბელო ტემპერატურისა და ვიბრაციის სენსორებისგან. ეს ჩარჩო მანიპულირებულია ტემპერატურისა და ვიბრაციის მონაცემების მისაღებად

if (Serial2.available ()) {data [0] = Serial2.read (); დაგვიანება (ლ); if (მონაცემები [0] == 0x7E) {Serial.println ("მივიღე პაკეტი"); ხოლო (! Serial2.available ()); for (i = 1; i <55; i ++) {data = Serial2.read (); დაგვიანება (1); } თუ (მონაცემი [15] == 0x7F) /////// შეამოწმეთ თუ არა სწორი მონაცემები {თუ (მონაცემები [22] == 0x08) //////// დარწმუნდით, რომ სენსორის ტიპი სწორია {rms_x = ((uint16_t) (((მონაცემები [24]) << 16) + ((მონაცემები [25]) << 8) + (მონაცემები [26]))/100); rms_y = ((uint16_t) (((მონაცემები [27]) << 16) + ((მონაცემები [28]) << 8) + (მონაცემები [29]))/100); rms_z = ((uint16_t) (((მონაცემები [30]) << 16) + ((მონაცემები [31]) << 8) + (მონაცემები [32]))/100); max_x = ((uint16_t) (((მონაცემები [33]) << 16) + ((მონაცემები [34]) << 8) + (მონაცემები [35]))/100); max_y = ((uint16_t) (((მონაცემები [36]) << 16) + ((მონაცემები [37]) << 8) + (მონაცემები [38]))/100); max_z = ((uint16_t) (((მონაცემები [39]) << 16) + ((მონაცემები [40]) << 8) + (მონაცემები [41]))/100);

min_x = ((uint16_t) (((მონაცემები [42]) << 16) + ((მონაცემები [43]) << 8) + (მონაცემები [44]))/100); min_y = ((uint16_t) (((მონაცემები [45]) << 16) + ((მონაცემები [46]) << 8) + (მონაცემები [47]))/100); min_z = ((uint16_t) (((მონაცემები [48]) << 16) + ((მონაცემები [49]) << 8) + (მონაცემები [50]))/100);

cTemp = (((((მონაცემები [51]) * 256) + მონაცემები [52])); მცურავი ბატარეა = ((მონაცემები [18] * 256) + მონაცემები [19]); მცურავი ძაბვა = 0.00322 * ბატარეა; Serial.print ("სენსორის ნომერი"); Serial.println (მონაცემები [16]); Serial.print ("სენსორის ტიპი"); Serial.println (მონაცემები [22]); Serial.print ("Firmware Version"); Serial.println (მონაცემები [17]); Serial.print ("ტემპერატურა ცელსიუსში:"); Serial.print (cTemp); Serial.println ("C"); Serial.print ("RMS ვიბრაცია X ღერძში:"); სერიული. ბეჭდვა (rms_x); Serial.println ("მგ"); Serial.print ("RMS ვიბრაცია Y ღერძში:"); სერიული. ბეჭდვა (rms_y); Serial.println ("მგ"); Serial.print ("RMS ვიბრაცია Z ღერძში:"); Serial.print (rms_z); Serial.println ("მგ");

Serial.print ("მინიმალური ვიბრაცია X ღერძში:");

Serial.print (min_x); Serial.println ("მგ"); Serial.print ("მინიმალური ვიბრაცია Y- ღერძში:"); Serial.print (min_y); Serial.println ("მგ"); Serial.print ("მინიმალური ვიბრაცია Z ღერძში:"); Serial.print (min_z); Serial.println ("მგ");

Serial.print ("ADC მნიშვნელობა:");

Serial.println (ბატარეა); Serial.print ("ბატარეის ძაბვა:"); სერიული. ბეჭდვა (ძაბვა); Serial.println ("\ n"); if (ძაბვა <1) {Serial.println ("ბატარეის შეცვლის დრო"); }}} სხვა {for (i = 0; i <54; i ++) {Serial.print (data ); Serial.print (","); დაგვიანება (1); }}}}

დაკავშირება UbiDots MQTT API– სთან

ჩართეთ სათაურის ფაილი MQTT პროცესისთვის

#მოიცავს "PubSubClient.h"

განსაზღვრეთ სხვა ცვლადები MQTT– ისთვის, როგორიცაა კლიენტის სახელი, ბროკერის მისამართი, ჟეტონის ID (ჩვენ ვიღებთ ნიშნის ID– ს EEPROM– დან)

#განსაზღვრეთ MQTT_CLIENT_NAME "ClientVBShightime123" char mqttBroker = "things.ubidots.com"; char დატვირთვა [100]; char თემა [150]; // ცვლადის შექმნა ნიშნის ID შესანახად String tokenId;

შექმენით ცვლადები სხვადასხვა სენსორული მონაცემების შესანახად და შექმენით char ცვლადი თემის შესანახად

#განსაზღვრეთ VARIABLE_LABEL_TEMPF "tempF" // ცვლადი იარლიყის შემოწმება #განსაზღვრეთ VARIABLE_LABEL_TEMPC "tempC" // ცვლადი იარლიყის დადგენა #განსაზღვრეთ VARIABLE_LABEL_BAT "ღამურა" #განსაზღვრეთ VARIABLE_LABEL_HUMID "ცვლადი ეტიკეტი" // მონიშვნა

char თემა 1 [100];

char თემა 2 [100]; char თემა 3 [100];

მონაცემების გამოქვეყნება აღნიშნულ MQTT თემაზე, დატვირთვა გამოიყურება {"tempc": {მნიშვნელობა: "tempData"}}

sprintf (topic1, "%s", ""); sprintf (topic1, "%s%s", "/v1.6/devices/", DEVICE_LABEL); sprintf (დატვირთვა, "%s", "");

// ასუფთავებს დატვირთვას sprintf (დატვირთვა, "{"%s / ":", VARIABLE_LABEL_TEMPC);

// ამატებს მნიშვნელობას sprintf (დატვირთვა, "%s {" მნიშვნელობა / ":%s}", დატვირთვა, str_cTemp);

// ამატებს მნიშვნელობას sprintf (დატვირთვა, "%s}", დატვირთვა);

// ხურავს ლექსიკონის ფრჩხილებს Serial.println (დატვირთვა);

Serial.println (client.publish (topic1, payload)? "Published": "notpublished");

// იგივე გააკეთე სხვა თემისთვისაც

client.publish () აქვეყნებს მონაცემებს UbiDots– ში

ნაბიჯი 7: მონაცემების ვიზუალიზაცია

მონაცემების ვიზუალიზაცია
მონაცემების ვიზუალიზაცია
  • გადადით Ubidots– ში და შედით თქვენს ანგარიშზე.
  • გადადით საინფორმაციო დაფაზე მონაცემების ჩანართიდან, რომელიც ჩამოთვლილია ზემოთ.
  • ახლა დააჭირეთ ღილაკს "+" ახალი ვიჯეტების დასამატებლად.
  • აირჩიეთ ვიჯეტი სიიდან და დაამატეთ ცვლადი და მოწყობილობები.
  • სენსორის მონაცემები შეიძლება ვიზუალიზდეს დაფაზე სხვადასხვა ვიჯეტის გამოყენებით.

საერთო კოდი

HTML და ESP32– ის Over კოდი შეგიძლიათ იხილოთ ამ GitHub საცავში.

  1. ncd ESP32 გარღვევის დაფა.
  2. ncd უკაბელო ტემპერატურის და ტენიანობის სენსორები.
  3. pubsubclient
  4. UbiDots

გირჩევთ: