Სარჩევი:

ESP32 WiFi ამინდის სადგური BME280 სენსორით: 7 ნაბიჯი (სურათებით)
ESP32 WiFi ამინდის სადგური BME280 სენსორით: 7 ნაბიჯი (სურათებით)

ვიდეო: ESP32 WiFi ამინდის სადგური BME280 სენსორით: 7 ნაბიჯი (სურათებით)

ვიდეო: ESP32 WiFi ამინდის სადგური BME280 სენსორით: 7 ნაბიჯი (სურათებით)
ვიდეო: Arduino Nano, BME280 და SSD1306 OLED ამინდის სადგური 2024, ივლისი
Anonim
Image
Image
ESP32 WiFi ამინდის სადგური BME280 სენსორით
ESP32 WiFi ამინდის სადგური BME280 სენსორით
ESP32 WiFi ამინდის სადგური BME280 სენსორით
ESP32 WiFi ამინდის სადგური BME280 სენსორით

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

ამ ვიდეოში ჩვენ ვაპირებთ ამის გაკეთებას. ეს არის კიდევ ერთი ამინდის სადგურის პროექტი, რომელიც მე ვიცი, მაგრამ ამჯერად ჩვენ ვიყენებთ ახალ ESP32 ჩიპს! ჩვენ ასევე ვიყენებთ ახალ BME280 სენსორს, რომელიც ზომავს ტემპერატურას, ტენიანობას და ბარომეტრულ წნევას. როდესაც ჩვენ გავააქტიურებთ პროექტს, ის უკავშირდება WiFi ქსელს და ის აპირებს ჩემი ადგილმდებარეობის ამინდის პროგნოზის ამოღებას openweathermap ვებგვერდიდან. შემდეგ ის აჩვენებს პროგნოზს ამ 3.2”Nextion Touch Display სენსორის კითხვებთან ერთად! კითხვები განახლდება ყოველ ორ წამში და ამინდის პროგნოზი ყოველ საათში! როგორც ხედავთ, ამ პროექტში ჩვენ ვიყენებთ უახლეს ტექნოლოგიებს, რომლებიც ხელმისაწვდომია დღეს შემქმნელისთვის! თუ თქვენ ხართ წვრილმანი ვეტერანი, შეგიძლიათ ააწყოთ ეს პროექტი ხუთ წუთში.

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

Დავიწყოთ!

ნაბიჯი 1: მიიღეთ ყველა ნაწილი

მიიღეთ ყველა ნაწილი
მიიღეთ ყველა ნაწილი

ამ პროექტის შესაქმნელად ჩვენ გვჭირდება შემდეგი ნაწილები:

  • ESP32 დაფა ▶
  • BME280 I2C სენსორი ▶
  • 3.2”შემდეგი ჩვენება ▶
  • პატარა პურის დაფა ▶
  • ზოგიერთი მავთული ▶

პროექტის ღირებულება დაახლოებით 30 დოლარია.

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

ნაბიჯი 2: ESP32

Image
Image
ESP32
ESP32

ეს არის პირველი პროექტი, რომელსაც მე ვაშენებ ახალი ESP32 ჩიპით.

თუ თქვენ არ იცნობთ მას, ESP32 ჩიპი არის პოპულარული ESP8266 ჩიპის მემკვიდრე, რომელიც ჩვენ ბევრჯერ გამოვიყენეთ წარსულში. ESP32 არის მხეცი! ის გთავაზობთ ორ 32 პროცესორის ბირთვს, რომლებიც მუშაობენ 160 MHz– ზე, მასიური მეხსიერება, WiFi, Bluetooth და მრავალი სხვა ფუნქცია, რომლის ღირებულებაა დაახლოებით 7 $! საოცარი პერსონალი!

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

ნაბიჯი 3: შემდეგი ჩვენება

Image
Image
BME280 სენსორი
BME280 სენსორი

ასევე, ეს არის პირველი პროექტი, რომელსაც ვქმნი Nextion სენსორული დისპლეით.

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

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

ნაბიჯი 4: BME280 სენსორი

BME280 სენსორი
BME280 სენსორი

BME280 Bosch– ის ახალი დიდი სენსორით.

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

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

უკვე ბევრი ბიბლიოთეკაა შემუშავებული ამ სენსორისთვის, ასე რომ ჩვენ შეგვიძლია გამოვიყენოთ იგი ძალიან მარტივად ჩვენს პროექტებში! სენსორის ღირებულება დაახლოებით 5 დოლარია. შეგიძლიათ მიიღოთ აქ ▶

შენიშვნა: ჩვენ გვჭირდება BME280 სენსორი. ასევე არის BMP280 სენსორი, რომელიც არ გთავაზობთ ტენიანობის გაზომვას. ფრთხილად შეუკვეთეთ საჭირო სენსორი.

ნაბიჯი 5: ნაწილების დაკავშირება

ნაწილების დაკავშირება
ნაწილების დაკავშირება
ნაწილების დაკავშირება
ნაწილების დაკავშირება
ნაწილების დაკავშირება
ნაწილების დაკავშირება

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

ვინაიდან BME280 სენსორი იყენებს I2C ინტერფეისს, ჩვენ მხოლოდ ორი მავთულის დაკავშირება გვჭირდება ESP32– თან დასაკავშირებლად. მე დავამატე სენსორი 26 და 27 პინზე. თეორიულად, ESP32 დაფის ყველა ციფრული პინი შეიძლება გამოყენებულ იქნას I2C პერიფერიულ მოწყობილობებთან. პრაქტიკაში, მე აღმოვაჩინე, რომ ზოგიერთი ქინძისთავები არ მუშაობს, რადგან ისინი დაცულია სხვა გამოყენებისთვის. პინები 26 და 27 მშვენივრად მუშაობს!

ეკრანზე მონაცემების გასაგზავნად საჭიროა მხოლოდ ერთი მავთულის დაკავშირება ESP32– ის TX0 პინთან. ეკრანის მდედრობითი მავთულის დასაკავშირებლად იძულებული გავხდი დამეხვია პინი, რადგან ESP32 დაფა ძალიან დიდია ამ პურის დაფისთვის.

ნაწილების შეერთების შემდეგ, ჩვენ უნდა ჩავტვირთოთ კოდი ESP32– ზე და GUI უნდა ჩავტვირთოთ Nextion ეკრანზე. თუ პროგრამის ESP32 დაფაზე ატვირთვა გიჭირთ, გააჩერეთ BOOT ღილაკი Arduino IDE– ზე ატვირთვის ღილაკზე დაჭერის შემდეგ.

GUI Nextion ეკრანზე ჩასატვირთად, დააკოპირეთ WeatherStation.tft ფაილი, რომელსაც მე გაგიზიარებთ ცარიელ SD ბარათზე. მოათავსეთ SD ბარათი SD ბარათის სლოტში ეკრანის უკანა ნაწილში. შემდეგ ჩართეთ ეკრანი და GUI დატვირთული იქნება. შემდეგ ამოიღეთ SD ბარათი და ისევ შეაერთეთ დენი.

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

ნაბიჯი 6: პროექტის კოდი

პროექტის კოდექსი
პროექტის კოდექსი
პროექტის კოდექსი
პროექტის კოდექსი
პროექტის კოდექსი
პროექტის კოდექსი

ამინდის მონაცემების გასაანალიზებლად, ჩვენ გვჭირდება შესანიშნავი Arduino JSON ბიბლიოთეკა. ჩვენ ასევე გვჭირდება ბიბლიოთეკა სენსორისთვის.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

ახლა ვნახოთ კოდი.

თავდაპირველად, ჩვენ უნდა დავაყენოთ SSID და ჩვენი WiFi ქსელის პაროლი. შემდეგი, ჩვენ უნდა შევიტანოთ უფასო APIKEY operweathermap.org ვებ გვერდიდან. საკუთარი API გასაღების შესაქმნელად, თქვენ უნდა დარეგისტრირდეთ ვებგვერდზე. ამინდის მიმდინარე მონაცემებისა და პროგნოზის მიღება უფასოა, მაგრამ ვებგვერდი გთავაზობთ მეტ ვარიანტს, თუ თქვენ მზად ხართ გადაიხადოთ გარკვეული თანხა. შემდეგი, ჩვენ უნდა ვიპოვოთ ჩვენი ადგილმდებარეობის ID. იპოვეთ თქვენი ადგილმდებარეობა და დააკოპირეთ პირადობის მოწმობა, რომელიც შეგიძლიათ იხილოთ თქვენი ადგილმდებარეობის URL- ში.

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

const char* ssid = "yourSSID"; const char* პაროლი = "yourPassword"; სიმებიანი ქალაქი ID = "253394"; // სპარტა, საბერძნეთი სიმებიანი APIKEY = "yourAPIkey"; #განსაზღვრეთ ALTITUDE 216.0 // სიმაღლე სპარტაში, საბერძნეთი

ახლა ჩვენ მზად ვართ გავაგრძელოთ.

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

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

ეკრანის განახლებისთვის, ჩვენ უბრალოდ ვუგზავნით რამდენიმე ბრძანებას სერიულ პორტს ასე:

void showConnectingIcon () {Serial.println (); სიმებიანი ბრძანება = "weatherIcon.pic = 3"; Serial.print (ბრძანება); endNextionCommand (); }

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

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

ნაბიჯი 7: საბოლოო აზრები და გაუმჯობესებები

საბოლოო აზრები და გაუმჯობესებები
საბოლოო აზრები და გაუმჯობესებები

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

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

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

უკაბელო კონკურსი
უკაბელო კონკურსი
უკაბელო კონკურსი
უკაბელო კონკურსი

მეორე ადგილი უკაბელო კონკურსში

გირჩევთ: