Სარჩევი:

როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: 5 ნაბიჯი (სურათებ
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: 5 ნაბიჯი (სურათებ

ვიდეო: როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: 5 ნაბიჯი (სურათებ

ვიდეო: როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა: 5 ნაბიჯი (სურათებ
ვიდეო: სახლის საძირკველი | ეპ. # 11 2024, ნოემბერი
Anonim
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა
როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების, ჰოლის ეფექტის სენსორის და ზოგიერთი ნაკაწრის გამოყენებით ნოდემკუზე - ნაწილი 2 - პროგრამული უზრუნველყოფა

შესავალი

ეს არის პირველი პოსტის გაგრძელება "როგორ ავაშენოთ საკუთარი ანემომეტრი ლერწმის გადამრთველების გამოყენებით, ჰოლის ეფექტის სენსორი და ზოგიერთი ნაკაწრი ნოდემკუზე - ნაწილი 1 - აპარატურა" - სადაც მე ვაჩვენებ, თუ როგორ უნდა შევიკრიბოთ ქარის სიჩქარე და მიმართულების საზომი მოწყობილობები. აქ ჩვენ გამოვიყენებთ გაზომვის კონტროლის პროგრამულ უზრუნველყოფას, რომელიც განკუთვნილია ნოდემკუში გამოყენებისთვის Arduino IDE გამოყენებით.

პროექტის აღწერა

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

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

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

ნაბიჯი 1: დააინსტალირეთ Arduino IDE, ESP8266 დაფები და ბიბლიოთეკები და თქვენი ThingSpeak ანგარიში

Arduino IDE, ESP8266 დაფებისა და ბიბლიოთეკების და თქვენი ThingSpeak ანგარიშის დაყენება
Arduino IDE, ESP8266 დაფებისა და ბიბლიოთეკების და თქვენი ThingSpeak ანგარიშის დაყენება
Arduino IDE, ESP8266 დაფებისა და ბიბლიოთეკების და თქვენი ThingSpeak ანგარიშის დაყენება
Arduino IDE, ESP8266 დაფებისა და ბიბლიოთეკების და თქვენი ThingSpeak ანგარიშის დაყენება

დააინსტალირეთ Arduino IDE და Nodemcu

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

შემდეგი ნაბიჯი, Nodemcu დაფის დაყენებისათვის გამოიყენეთ ეს სახელმძღვანელო Magesh Jayakumar Instructables– დან, რომელიც ძალიან სრულყოფილია. როგორ დააყენოთ Nodemcu no Arduino IDE

ბიბლიოთეკების დაყენება

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

ThingSpeak ბიბლიოთეკა -

ESP8266 ბიბლიოთეკა -

ThingSpeak ანგარიშის შექმნა

ThingSpeak– ის გამოსაყენებლად (https://thingspeak.com/) თქვენ უნდა შექმნათ ანგარიში (ის ჯერ კიდევ უფასოა გარკვეული რაოდენობის ურთიერთქმედებებისთვის), სადაც შეგიძლიათ შეინახოთ მონაცემები თქვენს ანემომეტრში და მონიტორინგი გაუწიოთ ქარის პირობებს თქვენს სახლში, თუნდაც მობილური ტელეფონის საშუალებით. ThingSpeak– ის გამოყენებით, თქვენ შეგიძლიათ მისცეთ საზოგადოებას წვდომა თქვენს შეგროვებულ მონაცემებზე, ვინც დაინტერესებულია. ეს არის ThingSpeak– ის კარგი უპირატესობა. შეიყვანეთ საწყისი გვერდი და მიყევით ნაბიჯებს თქვენი ანგარიშის შესაქმნელად.

ანგარიშის შექმნის შემდეგ შეიყვანეთ ეს სამეურვეო პროგრამა - ThingSpeak Getting Started - თქვენი არხების შესაქმნელად. საკმაოდ კარგად არის ახსნილი. მოკლედ, თქვენ უნდა შექმნათ არხი, სადაც მონაცემები შეინახება. ამ არხს აქვს ID და ძირითადი API, რომელიც უნდა იყოს მითითებული ესკიზში ყოველ ჯერზე, როდესაც გსურთ მონაცემების ჩაწერა. ThingSpeak ინახავს ყველა მონაცემს ბანკში და აჩვენებს მათ ყოველ ჯერზე, როდესაც შეხვალთ თქვენს ანგარიშზე, თქვენი კონფიგურაციის გზით.

ნაბიჯი 2: ესკიზის შესწავლა

ესკიზის შესწავლა
ესკიზის შესწავლა
ესკიზის შესწავლა
ესკიზის შესწავლა

დიაგრამა

დიაგრამაში შეგიძლიათ გაიგოთ ესკიზის ფლუკოგრამა. როდესაც გაიღვიძებთ (დააკავშირებთ) ნოდემკუს, ის დაუკავშირდება თქვენს Wi-Fi ქსელს, რომლის პარამეტრები თქვენ გაქვთ დაკონფიგურირებული და დაიწყებთ 1 წუთის დროის დათვლას გაზომვების შესასრულებლად. პირველ რიგში, ის დაითვლის ანემომეტრის ბრუნვებს 25 წამის განმავლობაში, გამოთვალეთ ხაზოვანი სიჩქარე და წაიკითხეთ ქარის მიმართულება. შედეგები ნაჩვენებია OLED– ზე. გაიმეორეთ იგივე ნაბიჯები და ამ მეორე მოსმენისთვის ის გადაეცემა ThingSpeak- ს.

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

პროგრამების სტრუქტურა

დიაგრამაში შეგიძლიათ ნახოთ ესკიზის სტრუქტურა.

ანემომეტრი_ინსტრუქციული

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

კომუნიკაციები

შეაერთეთ WiFi და გაგზავნეთ მონაცემები ThingSpeak– ში.

რწმუნებათა სიგელები.ჰ

თქვენი WiFi ქსელის გასაღებები და თქვენი ანგარიშის იდენტიფიკატორები ThingSpeak– ში. ეს არის ადგილი, სადაც თქვენ შეცვლით თქვენი გასაღებების ID- ებს და API- ებს.

განსაზღვრავს.ჰ

იგი შეიცავს პროგრამის ყველა ცვლადს. აქ შეგიძლიათ შეცვალოთ კითხვის დრო ან რამდენ ხანს უნდა დაიძინოს ნოდემქუმ.

ფუნქციები

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

oledDisplay

ეკრანზე აჩვენეთ ქარის სიჩქარისა და მიმართულების შედეგები.

ნაბიჯი 3: ახსნა…

განმარტებები…
განმარტებები…
განმარტებები…
განმარტებები…
განმარტებები…
განმარტებები…
განმარტებები…
განმარტებები…

დამაგრების შეწყვეტა

ანემომეტრის ბრუნვა იზომება ფუნქციით attachInterrupt () (და detachInterrupt ()) Nodemcu– ს GPIO 12 (pin D6) (მას აქვს შეწყვეტის ფუნქცია მის D0-D8 ქინძისთავებზე).

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

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

სინტაქსი: attachInterrupt (პინი, გამოძახების ფუნქცია, შეწყვეტის ტიპი/რეჟიმი);

pin = D6

გამოძახების ფუნქცია = rpm_anemometer - ითვლის თითოეულ იმპულსს ცვლადზე.

შეწყვეტის ტიპი/რეჟიმი = RISING - შეწყვეტა, როდესაც პინი დაბალიდან მაღალზე გადადის.

მაგნიტოს მიერ ჰოლის სენსორში წარმოქმნილ თითოეულ იმპულსზე, პინი მიდის დაბალიდან მაღალამდე და დათვლის ფუნქცია გააქტიურებულია და აჯამებს იმპულსს ცვლადში, დადგენილი 25 წამის განმავლობაში. მას შემდეგ, რაც დრო ამოიწურება, მრიცხველი გათიშულია (detachInterrupt ()) და რუტინული გამოთვლის სიჩქარეს გათიშვისას.

ქარის სიჩქარის გამოთვლა

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

  • რადიო არის გაზომვა ანემომეტრის ცენტრალური ღერძიდან პინგ -პონგის ბურთის წვერამდე. თქვენ ძალიან კარგად უნდა გაზომოთ თქვენი - (იხ. დიაგრამაზე, რომელიც ამბობს 10 სმ).
  • RPS (ბრუნვები წამში) = ბრუნვები / 25 წამი
  • RPM (ბრუნვა წუთში) = RPS * 60
  • OMEGA (კუთხოვანი სიჩქარე - რადიანი წამში) = 2 * PI * RPS
  • ხაზოვანი_ სიჩქარე (მეტრი წამში) = OMEGA * RADIO
  • Linear_Velocity_kmh (Km საათში) = 3.6 * Linear_Velocity და ეს არის ის, რაც გაიგზავნება ThingSpeak– ში.

წაიკითხეთ ქარის ველის მიმართულება

ქარის ველის პოზიციის წასაკითხად, რათა განსაზღვროს ქარის მიმართულება, პროგრამა აგზავნის დაბალ და მაღალ სიგნალებს მულტიპლექსერზე A, B, C პარამეტრების ყველა კომბინაციით (muxABC მატრიცა) და დაელოდეთ PIN- ზე შედეგის მიღებას ეს შეიძლება იყოს ნებისმიერი ძაბვა 0 -დან 3.3 ვ -მდე. კომბინაციები ნაჩვენებია დიაგრამაში.

მაგალითად, როდესაც C = 0 (დაბალი), B = 0 (დაბალი), A = 0 (დაბალი) მულტიპლექსერი აძლევს მას პინ 0 მონაცემს და აგზავნის სიგნალს A0– ზე, რომელსაც კითხულობს ნოდემკუ; თუ C = 0 (დაბალი), B = 0 (დაბალი), A = 1 (მაღალი) მულტიპლექსერი გამოგიგზავნით პინ 1 -ის მონაცემებს და ასე შემდეგ, სანამ არხის 8 კითხვა არ დასრულდება.

ვინაიდან სიგნალი არის ანალოგური, პროგრამა გარდაიქმნება ციფრულ (0 ან 1), თუ ძაბვა 1.3 ვ -ზე ნაკლები ან ტოლია სიგნალი არის 0; თუ ის 1.3 ვ -ზე მეტია სიგნალი არის 1. მნიშვნელობა 1.3V არის თვითნებური და ჩემთვის ის ძალიან კარგად მუშაობდა. ყოველთვის არის დენის მცირე გაჟონვა და ეს იცავს, რომ არ არსებობს ცრუ დადებითი.

ეს მონაცემები ინახება ვექტორულ ვალში [8], რომელიც შედარებული იქნება მისამართების მასივთან, როგორც კომპასი. იხილეთ დიაგრამაზე მატრიცა. მაგალითად, თუ მიღებული ვექტორი არის [0, 0, 1, 0, 0, 0, 0, 0, 0] ის მატრიცაში მიუთითებს E მიმართულებას და შეესაბამება 90 გრადუსიან კუთხეს; თუ [0, 0, 0, 0, 0, 0, 1, 1] მატრიცაში მიუთითებს WNW მისამართს და შეესაბამება 292.5 გრადუსიან კუთხეს. N შეესაბამება [1, 0, 0, 0, 0, 0, 0, 0, 0] და 0 გრადუსიანი კუთხე.

ის, რაც გაიგზავნება ThingSpeak– ში არის კუთხით, რადგან ის მხოლოდ რიცხვებს იღებს.

ნაბიჯი 4: კომუნიკაცია

კომუნიკაციები
კომუნიკაციები
კომუნიკაციები
კომუნიკაციები

როგორ გავაგზავნოთ მონაცემები ThingSpeak– ში

ფუნქცია thingspeaksenddata () პასუხისმგებელია მონაცემების გაგზავნაზე.

ThingSpeak.setField (1, float (linear_velocity_kmh)) - სიჩქარის მონაცემების გაგზავნა ჩემი არხის ველში 1

ThingSpeak.setField (2, float (wind_Direction_Angle)) - მისამართის მონაცემების გაგზავნა ჩემი არხის ველში 2

ThingSpeak.writeFields (myChannelNumber, myWriteAPIKey) - გაგზავნეთ ჩემს არხზე myChannelNumber, დაწერილი myWriteAPIKey API მითითებული TS– ით. ეს მონაცემები შეიქმნა TS– ის მიერ თქვენი ანგარიშის და არხის შექმნისას.

ზემოთ მოცემულ სურათებში შეგიძლიათ ნახოთ თუ როგორ აჩვენებს ThingSpeak მიღებულ მონაცემებს.

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

ნაბიჯი 5: ძირითადი ცვლადები

ქარის ფურცლის პარამეტრები

  • MUX_A D5 - mux pi A to Nodemcu pin D5
  • MUX_B D4 - mux pin B to Nodemcu pin D4
  • MUX_C D3 - mux pin C to Nodemcu pin D3
  • READPIN 0 - ანალოგური შეყვანა NodeMcu = A0
  • NO_PINS 8 - mux ქინძის რაოდენობა
  • val [NO_PINS] - პორტები 0 -დან 7 -მდე
  • wind_Direction_Angle - ქარის მიმართულების კუთხე
  • სიმებიანი windRose [16] = {"N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"} - კარდინალები, გირაოები და ქვე -უზრუნველყოფები
  • windAng [16] = {0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180, 202.5, 225, 247.5, 270, 292.5, 315, 337.5} - თითოეული მიმართულების კუთხეები
  • ციფრი [16] [NO_PINS] - მიმართულებების მატრიცა
  • muxABC [8] [3] - ABC მუქსის კომბინაციები

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

  • rpmcount - დაითვალეთ რამდენი სრული ბრუნვა გააკეთა ანემომეტრმა გამოყოფილ დროში
  • დროის გაზომვა = 25.00 - გაზომვის ხანგრძლივობის დრო წამებში
  • timetoSleep = 1 - ნოდემკუს გაღვიძების დრო წუთებში
  • sleepTime = 15 - დრო, რომ დაიძინოთ წუთებში
  • rpm, rps - ბრუნვის სიხშირეები (ბრუნვები წუთში, ბრუნვები წამში)
  • რადიუსი - მეტრი - ანემომეტრის ფრთის სიგრძის ზომა
  • linear_velocity - ხაზოვანი სიჩქარე m/seg
  • linear_velocity_kmh - ხაზოვანი სიჩქარე კმ/სთ -ში
  • ომეგა - რადიალური სიჩქარე რადი/სეგ -ში

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

შეიყვანეთ თქვენი wifi ქსელის მონაცემები და ThingSpeak ID და API Writer Key ნაწილში Credentials.h და შეინახეთ. ატვირთე ნოდემკუზე და სულ ესაა.

სისტემის მუშაობის შესამოწმებლად მე გირჩევთ კარგ მბრუნავ ვენტილატორს.

მობილური ტელეფონით მონაცემებზე წვდომისთვის გადმოწერეთ IOS ან Android პროგრამის სახელწოდება ThingView, რომელიც, საბედნიეროდ, ჯერ კიდევ უფასოა.

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

თუ გაინტერესებთ, შედით ჩემს ThingSpeak არხის ID არხზე: 438851, რომელიც არის საჯარო და იქ ნახავთ ქარისა და მიმართულების გაზომვებს ჩემს სახლში.

მე ნამდვილად იმედი მაქვს გაერთეთ.

თუ თქვენ გაქვთ რაიმე ეჭვი, ნუ დააყოვნებთ დამიკავშირდით.

პატივისცემით

გირჩევთ: