Բովանդակություն:

ESP32 Եղանակային կայանի արևային էներգիա ՝ 9 քայլ
ESP32 Եղանակային կայանի արևային էներգիա ՝ 9 քայլ

Video: ESP32 Եղանակային կայանի արևային էներգիա ՝ 9 քայլ

Video: ESP32 Եղանակային կայանի արևային էներգիա ՝ 9 քայլ
Video: Arduino Nano, BME280 և SSD1306 OLED եղանակային կայան 2024, Հունիսի
Anonim
Image
Image
ESP32 Եղանակային կայանի արևային էներգիա
ESP32 Եղանակային կայանի արևային էներգիա
ESP32 Եղանակային կայանի արևային էներգիա
ESP32 Եղանակային կայանի արևային էներգիա

Այս ձեռնարկում մենք պատրաստվում ենք կառուցել WiFi միացված եղանակային կայանի նախագիծ:

Թիրախը եղանակային կայանի նախագծումն է ՝ գրեթե բոլոր հնարավոր հատկանիշներով.

  • Showույց տալ ընթացիկ պայմանները, ժամանակը, ջերմաստիճանը, խոնավությունը, ճնշումը
  • Showույց տալ առաջիկա օրերի կանխատեսումը
  • Թարմացում եթերում
  • Ներկառուցված վեբ կայք ՝ կազմաձևման և տվյալների ներկայացման համար
  • Պատմության վիճակագրության համար տվյալները ամպի վրա վերբեռնեք
  • Ինտեգրված Aple Home Kit- ի կամ MQTT- ի հետ
  • Acceped Accu սնուցվում է հնարավոր լիցքավորմամբ կամ միանում արևային վահանակին

Չեմ կարող ավելին և ոչ ավելին երևակայություն ավելացնել, թե ինչ այլ բան պետք է լինի կամ կարող է լինել

Քայլ 1: Պահանջվող մասեր

Պահանջվող մասեր
Պահանջվող մասեր
Պահանջվող մասեր
Պահանջվող մասեր
Պահանջվող մասեր
Պահանջվող մասեր
  • ESP32 (ես օգտագործել եմ dev module)
  • 2,8 "240x320 TFT LCD SPI ILI9341
  • Պլաստիկ պատյան
  • 3 x 18650 Accu
  • Եղանակի սենսոր BME280 ՝ ջերմաստիճանը, խոնավությունը և ճնշումը չափելու համար
  • USB լիթիումի լիցքավորման մոդուլ
  • DC-DC քայլ UP18650
  • մարտկոցի պահոց (3 հատ)
  • HC-SR505 Շարժման դետեկտոր
  • 220 Om դիմադրություն
  • 2x 10 kOm դիմադրիչներ
  • TIP120 NPN տրանզիստորը (Դարլինգթոն) կարող է օգտագործվել ցանկացած այլ համատեղելի
  • ButtonWires, անջատիչ, զոդման տախտակ….

Քայլ 2: Էլեկտրամոնտաժ և հավաքում

Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում
Հաղորդալարերի մոնտաժում

Առաջին քայլը կայանների հզորությունների հավաքումն է:

Ես պլաստիկ պատյանը բաժանեցի երկու մասի, որոնցից մեկն օգտագործվում է մարտկոցի, անջատիչի, USB լիցքավորիչի և DC-DC- ի համար: Տեղյակ եղեք USB լիցքավորիչի մոդուլը բավականին ուշադիր, ուստի ես օգտագործել եմ ալյումինի ափսե և դրա վրա տեղադրել USB լիցքավորիչ ՝ օգտագործելով Star 922 սոսինձ:

Երկրորդ քայլը վերահսկիչների մասի հավաքումն է:

Տեսեք միացման սխեմա, թե ինչպես պետք է այն միացված լինի

Այս նպատակով ես օգտագործել եմ Հացի տախտակ ՝ հետևյալ քայլերով

  • Sոդման ESP32 dev տախտակ
  • Oldոդման վահան `TFT էկրանը պահելու համար
  • Sոդեք այլ էլեկտրոնային բաղադրիչներ `BME280, դիմադրիչներ, կոճակներ
  • Բաղադրիչների միջև զոդման միացում ըստ սխեմայի

Երրորդ քայլը պլաստիկ պատյանի երկրորդ հատվածին հացի տախտակի տեղադրումն է պատրաստել: Իմ 3d տպիչի վրա ես տպել եմ երկու ձող, դրանք պտուտակներով ամրացրել և կտրատել ուղղանկյուն կտրվածքով:

Ես պլաստմասե ձողեր եմ սոսնձել պլաստիկ պատյանի մարմնի վրա: Այժմ, երբ սոսինձը չորանում է, հացի տախտակը հանվում է պտուտակներով:

Հաջորդ քայլը հետևյալն է.

  • Էլեկտրաէներգիայի աղբյուրի զոդման լարեր
  • Oldոդման լարեր մարտկոցի լարման կարգավիճակի համար
  • Sոդման և ամրացման շարժման դետեկտոր

Վերջնական քայլ.

  • կարգաբերեք DC-DC փոխարկիչը `կարգավորելով ելքային լարման 5 վ
  • միացրեք կայանի վերահսկիչի երկու մաս `հոսանքի լարերին և լարման ընթերցմանը

Շարժման դետեկտորի և կոճակի համար ես լրացուցիչ անցքեր եմ արել դեմքի կողմից:

Քայլ 3: Ներբեռնեք որոնվածը ESP32- ում

Այս նախագծի համար ես օգտագործել եմ ունիվերսալ ծրագրակազմ, որը մշակվել է իմ կողմից

Խնդրում ենք դիտել github էջը ESPHomeController. Սա պարունակում է ամբողջական հրահանգներ, թե ինչպես կազմել և կարգավորել:

! Եթե ծանոթ չեք կոմպիլյացիայի և Arduino- ի հետ, նայեք մի քայլ ՝ պատրաստ որոնվածը ներբեռնելու համար

Երբ առաջին անգամ բեռնում եք որոնվածը, 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: Պատրաստի որոնվածի բեռնում

Պատրաստի որոնվածի բեռնում
Պատրաստի որոնվածի բեռնում

Այս բաժինը հատուկ լսողական լսողների համար է, ովքեր չեն պատրաստվում ինքնուրույն որոնվածը արտադրել: Պարզապես պետք է վերբեռնել «պատրաստ» որոնվածը

1. Չբեռնեք ֆլեշ վերբեռնման գործիքներ այս էջից

2. Ներբեռնեք կցված (քաղվածք արխիվներից) HomeController.bin և bootloader_qio_80m.bin ֆայլերը ձեր կոշտ սկավառակի վրա

3. Սկսեք ներբեռնման ESP32 գործիքը և արժեքները մուտքագրեք ըստ էկրանի պատկերի

4. Կտտացրեք սկիզբը

Քայլ 5: Կազմաձևում

Նախքան կազմաձևման պատրաստումը սկսելը, ձեզ հարկավոր է.

  1. Ստեղծեք ձեր ալիքը բաների և բանալիի համար: Պատրաստեք 4 դաշտ և ճիշտ անվանեք դրանք peratերմաստիճան, Խոնավություն, Pressնշում, Լարում
  2. Գրանցվեք Weather.com- ում ՝ ձեր api բանալին ստանալու համար

Thingspeak- ը անհրաժեշտ է ձեր տվյալները վերբեռնելու և միտումները և արժեքները վերահսկելու համար

Եղանակը անհրաժեշտ է կանխատեսման տվյալներ ստանալու համար:

Լավ, վերջապես ձեզ հարկավոր է ստեղծել services.json ֆայլ հետևյալ բովանդակությամբ

[{"ծառայություն". "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org »,« թույլ է տալիս քնել ». ճշմարիտ, «ընդմիջում» ՝ 900000, «i2caddr» ՝ 118, «uselegacy» ՝ ճշմարիտ, «temp_corr» ՝-3.0, «hum_corr» ՝ 10.0}, {«ծառայություն» ՝ «WeatherClientController», «անուն» ՝ «WeatherForecast», «միացված» ՝ ճշմարիտ, «միջակայք» ՝ 500000, «uri» ՝ «https://api.weather.com/v3/wx/forecast/daily/5day?geocode=50.30, 30.70 & format = json & units = m & language = hy -US & apiKey = weatherapi "}, {" service ":" WeatherDisplayController "," name ":" WeatherDisplay "," enabled ": true," interval ": 500}, {" enabled ":" true "," interval ": 600000, «կապ» ՝ 36, «ծառայություն» ՝ «LDRController», «name» ՝ «LDR», «cvalmin» ՝ 0.0, «cvalmax» ՝ 7.2, «cfmt» ՝ «%. 2f V», «ակտիպ»: 10}, {"service": "ThingSpeakController", "name": "ThingSpeak", "enabled": true, "interval": 1200000, "value": [1, 1, 1, 1, 0, 0, 0, 0], "apiKey": "thingspea kapi "}, {" enabled ": true," interval ": 1," pin ":" "," service ":" ButtonController "," name ":" Button "," pins ": [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 էկրանի հիմնական լուսադիոդի սպառումը:

Չափման համաձայն այն ուտում է 15-20 մԱ (շատ), ուստի ես մարտավարություն եմ կիրառել Շարժման դետեկտորի հետ: Այն հիանալի է աշխատում Շարժման դետեկտորներ, որոնք ունակ են ճանաչել ցանկացած հայտնաբերում մինչև 8-10 մետր և բարձրացնել լարումը ազդանշանային մալուխի վրա: Սա բացումներ է տրանզիստոր և հետնահոս Led ստանում են ուժ: Սովորաբար դետեկտորը պահում է այս վիճակը մինչև 10 վրկ, ինչը ավելի քան անհրաժեշտ է մոնիտորը տեսնելու համար, բայց շարժումները շարունակելու դեպքում ազդանշանը դեռ բարձր է, և LED լուսավորվում է:

Նման մոտեցումն ինձ տալիս է մեծ տնտեսություն ՝ առանց լրացուցիչ էֆեկտների, ես որևէ խնդրի չեմ հանդիպում ՝ երբ ցանկանամ տեսնել իմ էկրանը

2. Նվազեցրեք էներգիայի սպառումը ESP32- ով

Երբ ESP- ն միացված է WiFi- ին, այն անընդհատ ուտում է 7-10 մԱ, ես խոսում եմ մշտական ժամանակի մասին, այլ ոչ թե գործարկման և առաջին միացման: Սա կարող է ընդունելի լինել, եթե դուք միշտ տեսել եք իրական ամսաթիվը և ժամը, մուտք գործել ձեր համակարգ Apple տնային հավաքածուից

Իմ արևային էներգիայի համար նույնպես ձմռանը այն պետք է համապատասխանի առանց լրացուցիչ էներգիայի աղբյուրների աշխատանքներին, Հետևաբար, ես որոշեցի պարբերաբար տեղադրել ESP32 քնի ռեժիմը (ուտելը 1 մԱ -ից պակաս է): Սա լավ է ինձ համար, օրինակ ՝ ESP- ն քնում է 20 րոպե, քան արթնանում, էկրանը թարմացնելը (իրական տվյալները և կանխատեսումը) տվյալները ուղարկում է բաների խոսքին և նորից քնի ռեժիմին:

Թերությունները հետևյալն են.

  • Եղանակի էկրանը ցուցադրում է ժամանակի հնացած արժեքներ
  • Քնի ժամանակ դիտարկիչից և Apple Home Kit- ից հասանելի չէ կայանը

Ձեզանից է կախված որոշելը, թե որն է ավելի կարևորը, կարող եք դա պարզապես վերակազմավորել:

Խնդրում ենք դիտել services.json ֆայլը և տողը

[{"ծառայություն". "TimeController", "name": "Time", "enabled": true, "interval": 1000, "timeoffs": 7200, "dayloffs": 3600, "server": "pool.ntp.org »,« թույլ է տալիս քնել »՝ ճշմարիտ,« քնի տիպ »՝ 1,« քնի ժամանակ »՝ 900000,« վերսկսման ժամանակ »՝ 18000000}

«թույլ է տալիս քնել». ճշմարիտը ընդհանրապես հնարավորություն է տալիս քնել, եթե այնտեղ տեղադրեք կեղծ կամ հեռացնեք պարամետրը (կեղծը կանխադրված է) ESP- ն երբեք չի քնի

«sleepinterval». 900000 սա միլիոն է, կամ 15 րոպե, նշանակում է, որ յուրաքանչյուր 15 րոպե ESP- ն կարթնանա և կատարում է անհրաժեշտ անձնակազմ

Այսպիսով, այժմ բոլորը հեշտությամբ կարող են խաղալ ըստ անհրաժեշտության

Քայլ 7: Սենսորների կարգավորում

Ներքին ջեռուցման ազդեցությունը BME280 ջերմաստիճանի տվիչի վրա նվազագույնի հասցնելու համար

Հարմարանքներ Ես մի խողովակ արեցի սենսորի և անցքերի շուրջ: Սարսափել իմ ռեժիմում, երբ 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 Վ -ի հետ, խաղալով 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. pերմաստիճանի տվիչ և Hum սենսոր, խորանալով այն արժեքները կցուցադրի ամբողջ էկրանին

2. Լույսի ցուցիչ:) Իրականում Apple- ն ի վիճակի է ցուցադրել ligth Ambience, բայց ոչ Voltage, հետևաբար մարտկոցի լարումը ցուցադրվում է Lux- ում

Քայլ 9: OTA. Օդային թարմացումներ

Նախքան որևէ թարմացում սկսելը ավելի լավ է վերագործարկել ESP32- ը, ինչպես արդեն նշվել է, առաջին քսան րոպեն չի քնելու

Թարմացման երկու հնարավորություն կա

  1. Կազմաձևում ՝ օգտագործելով https://192.168.0. XX/browse կարող եք մուտք գործել ձեր ֆայլային համակարգ ESP- ով և փոխել կազմաձևման ֆայլերը
  2. Դուք կարող եք ամբողջությամբ թարմացնել որոնվածը: այս նպատակների համար նախ պետք է ստեղծել նորը: Դա կարելի է անել Arduino- ի կամ Visual Studio IDE- ի միջոցով: Այնուհետև մուտքագրեք դիտարկիչ https://192.168.0. XX/update, ընտրեք ձեր որոնվածը և սեղմեք թարմացում: Սպասեք, մինչև գործընթացը ավարտվի, և պատասխանը լավ կստանաք, հակառակ դեպքում նորից կրկնում եք քայլը

Խորհուրդ ենք տալիս: