Სარჩევი:

ESP32 ამინდის სადგური მზის ენერგიაზე: 9 ნაბიჯი
ESP32 ამინდის სადგური მზის ენერგიაზე: 9 ნაბიჯი

ვიდეო: ESP32 ამინდის სადგური მზის ენერგიაზე: 9 ნაბიჯი

ვიდეო: ESP32 ამინდის სადგური მზის ენერგიაზე: 9 ნაბიჯი
ვიდეო: Arduino Nano, BME280 და SSD1306 OLED ამინდის სადგური 2024, ივნისი
Anonim
Image
Image
ESP32 ამინდის სადგური მზის ენერგიაზე
ESP32 ამინდის სადგური მზის ენერგიაზე
ESP32 ამინდის სადგური მზის ენერგიაზე
ESP32 ამინდის სადგური მზის ენერგიაზე

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

მიზანია ამინდის სადგურის დიზაინი თითქმის ყველა შესაძლო მახასიათებლით:

  • აჩვენეთ მიმდინარე პირობები, დრო, ტემპერატურა, ტენიანობა, წნევა
  • აჩვენეთ პროგნოზი მომდევნო დღეებში
  • განახლება ეთერში
  • ჩამონტაჟებული ვებ გვერდი კონფიგურაციისა და მონაცემების წარმოდგენისთვის
  • ატვირთეთ მონაცემები ღრუბელში ისტორიის სტატისტიკისათვის
  • ინტეგრირებული Aple Home Kit ან MQTT
  • დამოუკიდებელი Accu იკვებება შესაძლო დატენვით ან მზის პანელთან დაკავშირებით

მე არ შემიძლია დავამატო მეტი და არა მეტი წარმოსახვა, რა სხვა უნდა იყოს ან რა შეიძლება იყოს

ნაბიჯი 1: საჭირო ნაწილები

ნაწილები, რომლებიც აუცილებელია
ნაწილები, რომლებიც აუცილებელია
ნაწილები, რომლებიც საჭიროა
ნაწილები, რომლებიც საჭიროა
ნაწილები, რომლებიც საჭიროა
ნაწილები, რომლებიც საჭიროა
  • ESP32 (მე გამოვიყენე dev მოდული)
  • 2.8 "240x320 TFT LCD SPI ILI9341
  • პლასტიკური ქეისი
  • 3 x 18650 აკუ
  • ამინდის სენსორი BME280 ტემპერატურის, ტენიანობის და წნევის გასაზომად
  • USB ლითიუმის დამტენი მოდული
  • DC-DC ნაბიჯი UP18650
  • ბატარეის დამჭერი (3 ცალი)
  • HC-SR505 მოძრაობის დეტექტორი
  • 220 Om რეზისტორი
  • 2x 10 kOm რეზისტორები
  • TIP120 NPN ტრანზისტორი (დარლინგტონი) შეიძლება გამოყენებულ იქნას ნებისმიერი სხვა თავსებადი
  • ButtonWires, switch, solder board….

ნაბიჯი 2: გაყვანილობა და შეკრება

გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა
გაყვანილობა და აწყობა

პირველი ნაბიჯი არის სადგურების უფლებამოსილების შეკრება.

პლასტმასის ქეისი ორ ნაწილად მაქვს გაყოფილი, ერთი მათგანი გამოიყენება ბატარეის, გადამრთველის, USB დამტენისა და DC-DC– ის გასასვლელად. იცოდეთ USB დამტენი მოდული საკმაოდ heting ამიტომ მე გამოვიყენე ალუმინის ფირფიტა და დააყენა USB დამტენი გადატანა Star 922 წებოს გამოყენებით.

მეორე ნაბიჯი არის კონტროლერების ნაწილის შეკრება.

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

მე გამოვიყენე პურის დაფა ამ მიზნით შემდეგი ნაბიჯებით

  • Solder ESP32 dev დაფა
  • შედუღების ფარი TFT ჩვენების შესანარჩუნებლად
  • შეაერთეთ სხვა ელექტრონული კომპონენტები: BME280, რეზისტორები, ღილაკები
  • შედუღების გაყვანილობა კომპონენტებს შორის დიაგრამის მიხედვით

მესამე ნაბიჯი არის პლასტმასის მეორე ნაწილზე პურის დაფის დამონტაჟების მომზადება. მე დავბეჭდე ჩემს 3D პრინტერზე ორი ბარი, დავაყენე ისინი ბრედბორდზე ხრახნებით და გავაკეთე მართკუთხა ჭრა ჩვენების ეკრანისთვის.

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

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

  • შედუღების გაყვანილობა დენის წყაროსთვის
  • შედუღების გაყვანილობა ბატარეის ძაბვის სტატუსისთვის
  • შედუღების და დამონტაჟების მოძრაობის დეტექტორი

საბოლოო ნაბიჯი:

  • DC-DC კონვერტორის დაყენება 5 ვ გამომავალი ძაბვის დარეგულირებით
  • დააკავშირეთ ელექტროსადგურის კონტროლერის ორი ნაწილი: დენის მავთულები და ძაბვის კითხვა

მოძრაობის დეტექტორისა და ღილაკისთვის მე გავაკეთე დამატებითი ხვრელები სახის მხარეს.

ნაბიჯი 3: ატვირთეთ Firmware ESP32– ზე

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

გთხოვთ დაათვალიეროთ github გვერდი ESPHomeController.ეს შეიცავს სრულ ინსტრუქციას შედგენისა და დაყენების შესახებ.

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

როგორც კი პირველად ატვირთავთ firmware- ს, ESP32 დაიწყება კონფიგურაციის რეჟიმში (წვდომის წერტილის რეჟიმი)

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

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

ESP გადატვირთულია ამის შემდეგ როგორც WiFi კლიენტი და დაუკავშირდება თქვენს Wifi- ს.

როგორც sson ავრცელებს კავშირს, ის ავტომატურად დაამონტაჟებს Spiffs ფაილურ სისტემას და ჩამოტვირთავს საჭირო ფაილებს ვებ პორტალზე:

  • index.html
  • filebrowse.html
  • js/bundle.min.js.gz

ჩამოტვირთვა ხდება https://github.com/Yurik72/ESPHomeController/tree/… საქაღალდედან

ახლა თქვენ შეგიძლიათ ნახოთ ფაილის შინაარსი ბრაუზერის საშუალებით. ამისათვის თქვენ უნდა მიუთითოთ თქვენი ESP32 IP მისამართი

თქვენ შეგიძლიათ იპოვოთ იგი ერთ -ერთი შემდეგი გზით:

  • სერიული პორტის მონიტორის გამოყენება ESP32 ჟურნალის სანახავად
  • ნებისმიერი tcp სკანერის გამოყენება თქვენი ქსელის მოწყობილობების სკანირებისთვის
  • დააჭირეთ ღილაკს ამინდის სადგურზე და ნახავთ სისტემის ინფორმაციას

დაათვალიერეთ https://192.168.0. XX/browse და ნახავთ თქვენი ESP ფაილების ჩამონათვალს

(192.168.0. XX არის თქვენი მოწყობილობის IP მისამართი

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

ნაბიჯი 4: მზა პროგრამული უზრუნველყოფის ატვირთვა

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

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

1. გადმოტვირთეთ Flash ატვირთვის ინსტრუმენტები ამ გვერდიდან

2. ჩამოტვირთეთ თანდართული (ამონაწერი არქივიდან) ფაილები HomeController.bin და bootloader_qio_80m.bin თქვენს მყარ დისკზე

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

4. დააჭირეთ დაწყებას

ნაბიჯი 5: კონფიგურაცია

კონფიგურაციის მომზადების დაწყებამდე გჭირდებათ:

  1. შექმენით თქვენი არხი ნივთებზე და გასაღები თქვენთვის. მოამზადეთ 4 ველი და სწორად დაასახელეთ ისინი ტემპერატურა, ტენიანობა, წნევა, ძაბვა
  2. დარეგისტრირდით Weather.com– ზე თქვენი api გასაღების მისაღებად

Thingspeak საჭიროა თქვენი მონაცემების ასატვირთად და ტენდენციებისა და ღირებულებების მონიტორინგისთვის

ამინდი აუცილებელია პროგნოზის მონაცემების მისაღებად.

კარგი, საბოლოოდ თქვენ უნდა შექმნათ services.json ფაილი შემდეგი შინაარსით

[{"სერვისი": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," საშუალებას აძლევს ძილს ": ჭეშმარიტი," ძილის ტიპი ": 1," ძილის შუალედი ": 900000," გადატვირთვა ": 18000000}, {" სერვისი ":" BME280Controller "," name ":" BME "," enableed ": true, "ინტერვალი": 900000, "i2caddr": 118, "uselegacy": true, "temp_corr":-3.0, "hum_corr": 10.0}, {"service": "WeatherClientController", "name": "WeatherForecast", "ჩართულია": ჭეშმარიტი, "ინტერვალი": 500000, "uri": "https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = ka -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, "pin": 36, "service": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, "cfmt": "%. 2f V", "acctype": 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "ნივთები kapi "}, {" ჩართულია ": true," ინტერვალი ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pin ": [27]}]

გთხოვთ შეცვალოთ

  • thingspeakapi თქვენი thingspeak api გასაღებით
  • weatherapi თქვენი ამინდის api გასაღებით
  • გეოკოდი თქვენი მდებარეობით, რომლისთვისაც გსურთ მიიღოთ პროგნოზი

ვიდრე მეორე ფაილის triggers.json მომზადება

[{"type": "BMEToWeatherDisplay", "source": "BME", "destination": "WeatherDisplay"}, {"type": "TimeToWeatherDisplay", "source": "Time", "destination": "WeatherDisplay "}, {" type ":" WeatherForecastToWeatherDisplay "," source ":" WeatherForecast "," destination ":" WeatherDisplay "}, {" type ":" BMEToThingSpeak "," source ":" BME "," destination ": "ThingSpeak", "t_ch": 1, "h_ch": 2, "p_ch": 3}, {"type": "ButtonToWeatherDisplay", "source": "Button", "destination": "WeatherDisplay"}, { "type": "LDRToThingSpeak", "source": "LDR", "destination": "ThingSpeak", "ch": 4}]

ორივე ფაილი უნდა გაიზარდოს esp- ის ფესვამდე.

ამის გაკეთება შეგიძლიათ ბრაუზერის საშუალებით https://192.168.0. XX/browse, სადაც https://192.168.0. XX არის თქვენი მოწყობილობის IP მისამართი

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

ნაბიჯი 6: დარეგულირება და ენერგიის მოხმარება

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

მე ვიყენებ ჩემს მოწყობილობას მზის პანელთან კავშირით და დარწმუნებული ვარ, რომ მას შეუძლია „უსასრულოდ“იმუშაოს

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

შეამცირეთ TFT ეკრანის ქვედა შუქის LED მოხმარება

გაზომვის მიხედვით ის ჭამს 15-20 mA (ბევრს), ამიტომ მე გამოვიყენე ტაქტიკა მოძრაობის დეტექტორთან. ის მშვენივრად მუშაობს მოძრაობის დეტექტორებს შეუძლიათ ამოიცნონ ნებისმიერი გამოვლენა 8-10 მეტრამდე და გაზარდონ ძაბვა სიგნალის კაბელზე. ეს არის გახსნა ტრანზისტორი და უკანა Led მიიღოს ძალა. ჩვეულებრივ, დეტექტორი ინარჩუნებს ამ მდგომარეობას 10 წამამდე, რაც საკმარისზე მეტია მონიტორის სანახავად, მაგრამ თუ გააგრძელებთ მოძრაობას სიგნალი კვლავ მაღალია და LED ნათდება.

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

2. შეამცირეთ ენერგიის მოხმარება ESP32- ით

როდესაც ESP დაკავშირებულია WiFi– სთან, ის მუდმივად ჭამს 7-10 mA– ს, მე ვსაუბრობ მუდმივ დროზე და არა გაშვებაზე და პირველ კავშირზე. ეს შეიძლება იყოს მისაღები, თუ თქვენ ყოველთვის ხედავთ რეალურ თარიღსა და დროს, შედიხართ თქვენს სისტემაში Apple სახლის ნაკრებიდან

ჩემი მზის ენერგიისთვის ზამთარში ასევე უნდა ემთხვეოდეს სამუშაოები დამატებითი ენერგიის წყაროების გარეშე, ამიტომ მე გადავწყვიტე, რომ პერიოდულად დამეყენებინა ESP32 ძილის რეჟიმში (ჭამა არის 1 mA– ზე ნაკლები). ეს ჩემთვის კარგია, მაგალითად ESP სძინავს 20 წუთი, ვიდრე გაღვიძება, ეკრანის განახლება (ფაქტობრივი მონაცემები და პროგნოზი) აგზავნის მონაცემებს საუბრისას და ისევ ძილის რეჟიმში.

მინუსებია:

  • ამინდის ეკრანი აჩვენებს დროის მოძველებულ მნიშვნელობებს
  • ძილის დროს ბრაუზერისა და Apple Home Kit– ისგან სადგური მიუწვდომელია

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

გთხოვთ დაათვალიეროთ services.json ფაილი და ხაზი

[{"სერვისი": "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org "," საშუალებას აძლევს ძილს ": true," sleeptype ": 1," sleepinterval ": 900000," restartinterval ": 18000000}

"ჩართავს ძილს": ჭეშმარიტი საშუალებას აძლევს ძილს საერთოდ, თუ ყალბი დააყენეთ ან ამოიღეთ პარამეტრი (ყალბი ნაგულისხმევია) ESP არასოდეს დაიძინებს

"sleepinterval": 900000 ეს არის მილი, ანუ 15 წთ, ნიშნავს რომ ყოველ 15 წუთში ESP გაიღვიძებს და აკეთებს საჭირო პერსონალს

ასე რომ, ახლა ყველას შეუძლია მარტივად ითამაშოს აუცილებლობის მიხედვით

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

შიდა გათბობის ზემოქმედების შესამცირებლად BME280 ტემპერატურის სენსორზე

Firts გავაკეთე რამდენიმე მილის გარშემო სენსორი და ხვრელები. იმოძრავეთ ჩემს რეჟიმში, როდესაც LED ჩვეულებრივ გამორთულია და ESP სძინავს არც ისე მნიშვნელოვანია. სხვა შემთხვევებში BME280 სენსორი უნდა გადაადგილდეს სადმე, რათა გამოირიცხოს შიდა გათბობის გავლენა. რა მცირედი გავლენა აღმოვაჩინე, ამიტომ ორი პარამეტრია კომპენსაციისთვის

"hum_corr": 10.0

რაც ნიშნავს იმას, რომ ეს ღირებულებები დაემატება გაზომვის შემდეგ

მეორე არის ბატარეის ძაბვის გაზომვა, {"ჩართულია": "ჭეშმარიტი", "ინტერვალი": 600000, "პინი": 36, "სერვისი": "LDRController", "name": "LDR", "cvalmin": 0.0, "cvalmax": 7.2, " cfmt ":"%. 2f V "," acctype ": 10}, "კალვალინი": 0.0

"cvalmax": 7.2

ამ მიზნებისათვის არის იმის გამო, რომ ძაბვა იზომება რეზისტორების გამყოფების შემდეგ და 3.3 V– სთან შედარებით, cvalmax– ის მნიშვნელობით შეგიძლიათ მიაღწიოთ ძაბვის ზუსტ რეგულირებას თქვენი მულტიმეტრიული მნიშვნელობით

ნაბიჯი 8: მოწყობილობის დამატება Apple Home Kit- ში

მოწყობილობის დამატება Apple Home Kit- ში
მოწყობილობის დამატება Apple Home Kit- ში

დაბოლოს, როდესაც თქვენი მოწყობილობა სწორად მუშაობს, ის შეიძლება დაემატოს Apple Home Kit- ს და თქვენ შეძლებთ მის დანახვას

სენსორების მნიშვნელობები Apple– ის მთავარ ეკრანზე.

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

შემდეგ გახსენით Home Kit აპლიკაცია თქვენს iOS მოწყობილობაზე და შეარჩიეთ ან შექმენით ახალი Home1. დააჭირეთ დამატებას (+)

2. აირჩიეთ აქსესუარის დამატება.

3. დააჭირეთ მე არ მაქვს კოდი ან არ შემიძლია სკანირება (დამატებული იქნება სკანირება)

4. თუ ყველაფერი კარგად მიდის, თქვენ უნდა ნახოთ თქვენი ახალი esp მოწყობილობა სიაში (იხ. სურათი)

5. აირჩიეთ მოწყობილობა და დაადასტურეთ დამატება ოფიციალური სერტიფიკაციის გარეშე

6. ჩაწერეთ პაროლი 11111111

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

ამ პარამეტრის საფუძველზე თქვენ ნახავთ ორ მოწყობილობას Apple– ზე

1. ტემპერატურის სენსორი და Hum სენსორი, ღრმად წასვლისას ის აჩვენებს ღირებულებებს სრულ ეკრანზე

2. სინათლის სენსორი:) სინამდვილეში Apple- ს შეუძლია აჩვენოს ligth Ambience, მაგრამ არა Voltage, ამიტომ ბატარეის ძაბვა ნაჩვენებია Lux- ში

ნაბიჯი 9: OTA: განახლებები ჰაერში

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

განახლების ორი შესაძლებლობა არსებობს

  1. კონფიგურაცია https://192.168.0. XX/browse შეგიძლიათ შეხვიდეთ თქვენს ფაილურ სისტემაზე ESP- ზე და შეცვალოთ კონფიგურაციის ფაილები
  2. თქვენ შეგიძლიათ სრულად განაახლოთ firmware. ამ მიზნებისათვის, თქვენ ჯერ უნდა შექმნათ ახალი. ეს შეიძლება გაკეთდეს Arduino– ს ან Visual Studio IDE– ს საშუალებით. შემდეგ ჩაწერეთ ბრაუზერი https://192.168.0. XX/update, შეარჩიეთ თქვენი firmware და დააჭირეთ განახლებას. დაელოდეთ სანამ პროცესი დასრულდება და თქვენ მიიღებთ პასუხს OK, წინააღმდეგ შემთხვევაში გაიმეორეთ ნაბიჯი ისევ

გირჩევთ: