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

Wifi միացված OLED ESP32 մեքենայի չափիչներ. 3 քայլ (նկարներով)
Wifi միացված OLED ESP32 մեքենայի չափիչներ. 3 քայլ (նկարներով)

Video: Wifi միացված OLED ESP32 մեքենայի չափիչներ. 3 քայլ (նկարներով)

Video: Wifi միացված OLED ESP32 մեքենայի չափիչներ. 3 քայլ (նկարներով)
Video: Using Heltec ESP32 OLED Wifi Kit 2024, Նոյեմբեր
Anonim
Image
Image
Wi -Fi- ով միացված է OLED ESP32 մեքենայի չափիչ սարքերը
Wi -Fi- ով միացված է OLED ESP32 մեքենայի չափիչ սարքերը

Ներածություն առաջին…

Ես մեքենայի չափիչներ եմ կառուցում որպես մի տեսակ կրկին ու կրկին զբաղմունք: Տե՛ս https://www.instructables.com/id/Remote-Car-Monit… և https://www.instructables.com/id/Remote-Car-Monit… ևս երկու վերջին օրինակների համար: Ինձ հատկապես դուր են գալիս նրանք, որոնք խառնվում են մեքենայի օրիգինալ մասերին: Այսպիսով, ինչու՞ է սա տարբերվում և ինչն է ինձ ոգեշնչել այն կառուցելու համար: Պատասխանը երկու բան է.

1) ESP32 - Ես ուզում էի նոր երեխային փորձել բլոկային չիպի վրա, մանավանդ որ դրա համար arduino- ի վրա հիմնված գործիքաշղթան բավականին հասուն է: ESP32- ը միացնելու հետաքրքիր բաներից մեկը IOT- ն է `ներկառուցված wifi և bluetooth հնարավորություններով: Համայնքը գրել է բազմաթիվ գրադարաններ ՝ դա որոշ չափով պարզ դարձնելու համար (վեբ սերվերներ, AP- ներ, wifi հաճախորդներ, mDNS և այլն և այլն):

2) Էժան OLED էկրաններ. Դեռ 2007 -ին ես չափիչ սարքեցի TFT- ի միջոցով, որը ժամացույցի տեղում նստած էր GD (2004-2007) WRX- ի վրա: TFT- ն գալիս է տարբեր համերով: Ոմանք ավելի լավ են աշխատում գիշերը, ոմանք ավելի լավ են աշխատում ցերեկը և այլն: Բայց նրանցից ոչ մեկը չի աշխատում բոլոր պայմաններում: Ես չհասկացա իմ ճանապարհների սխալը, մինչև որ իմ օգտագործած չափիչներից մեկն անօգուտ եղավ ֆորումի անդամի արևոտ ճանապարհին: Մուտքագրեք OLED- ը, որոնք հիանալի են ավտոմոբիլային ծրագրերի համար: Նրանք գիշերը շատ պայծառ չեն և (որ ավելի կարևոր է) տեսանելի են արևի լույսի մեծամասնության պայմաններում:

Սա երկուսը մեկին ուսանելի է, քանի որ ես գրել եմ ամեն ինչ երկու սովորական մեքենաների չափիչների ՝ նավթի ճնշման և տուրբո ճնշման համար: Երկուսն էլ ըստ էության նույն բանն են. Փոքր գործոնի չափիչ `անալոգային անալոգային արտաքին էկրանով` ցուցադրված դիսկրետ թվերով և առավելագույններով: Երկուսն էլ գործում են որպես wifi AP և վեբ սերվերներ: Երբ մեկը նրանց միանում է համակարգչի կամ բջջային հեռախոսի միջոցով, տեսանելի է EKG ոճի գծապատկեր (սա որոշ չափով նորարարական մաս է):

Պարագաներ

HELTEC ESP32 մոդուլ-ձեռք բերեք wifi տարբերակ

Յուղի ճնշման հատուկ մասեր

Յուղի ճնշման ցուցիչ - Ես օգտագործել եմ ավտոմատ 5222 Յուղի ճնշման տվիչի միացման մասեր - սա տարբերվում է մեքենայով և տեղադրման վայրով: Խնդրում ենք խորհրդակցել սպասարկման ձեռնարկների, ֆորումների, տեխնիկայի և այլնի հետ և դա անել ճիշտ, որպեսզի նավթի արտահոսք չլինի:

Բարձրաչափի հատուկ մասեր

  • Օդի ճնշման տվիչ (միայն այն դեպքում, եթե ցանկանում եք խթանիչ ցուցիչ կազմել) -
  • Օդային գուլպաներ
  • T կցամասեր

Իմ օգտագործած գրադարաններն անփոխարինելի էին

Smoothiecharts - https://smoothiecharts.org/ Գերազանց և թեթև թարմացվող կենդանի գծապատկերներ: Շատ հարմարեցված է և չի ապավինում js գրադարանին ինտերնետում այլուր հղում կատարելու վրա: Սա թույլ է տալիս կարգավորել «տեղական-IOT» տիպը և ամբողջ գրադարանը տեղավորվել մեկ տողում ՝ վեբ սերվերի հայտարարության կոդի մեջ:

ESPAsyncWebServer -https://github.com/me-no-dev/ESPAsyncWebServer- անում է այն, ինչ ասում է վանդակում և լավ է անում

ThingPulse OLED գրաֆիկական գրադարան (երբեմն զանգահարեք squix գրադարան) - https://github.com/ThingPulse/esp8266-oled-ssd130… - ESP չիպերի համար շատ արդյունավետ և պարզ գրաֆիկա: Ինձ թույլ տվեց մի քանի ծույլ ծրագրավորում անել և դեռ համոզիչ անիմացիաներ ստանալ:

Գործիքներ/այլ

eringոդման երկաթ - օգտագործվում է սենսորների համար երկար մալուխներ անցկացնելու, տախտակի վրա վերնագրեր տեղադրելու, փոքրանալու, փաթաթելու և այլն փաթաթելու համար:

պտուտակահան/վարդակներ/մեքենայի այլ գործիքներ - անհրաժեշտ է մեքենայի վրա սենսորներ տեղադրելու համար

երկկողմանի ժապավեն - չափիչ սարքեր տեղադրել տներում և բնակարան տեղադրել մեքենայում (տաք սոսինձ և այլ բաներ կարող են աշխատել, բայց ես նախընտրում եմ 3M երկկողմանի արտաքին երեսպատման ժապավենը: Այն լավ է պահվում և կարող է հանվել առանց իրերը վնասելու):

մկրատ - ժապավենի և խողովակների և փակման կապերի համար

կայծակաճարմանդ - իրերը միասին պահելու, լարերը գծի տակ և շարժիչի խցիկում միացնելու, սենսորները տեղում պահելու և այլն:

Քայլ 1. Առաջին ծածկագիրը/Երկրորդ սարքավորումները

Կոդ առաջին/Սարքաշար երկրորդ
Կոդ առաջին/Սարքաշար երկրորդ
Կոդ առաջին/Սարքաշար երկրորդ
Կոդ առաջին/Սարքաշար երկրորդ

Կոդը կարելի է ներբեռնել այստեղ ՝

Յուղի ճնշում -

Խթանել ճնշումը -

Բարձրացրեք ճնշումը դեմքերով ՝ անալոգային տեսքի չափիչների փոխարեն -

Գրաֆիկական կոդ. ThingPulse գրադարանը այնքան արդյունավետ է, որ կարող եք xbms գծել միմյանց վրա և համոզիչ արդյունքներ ստանալ:

Չափիչ պատկերներն իրականում եկել են բաց կոդով գրաֆիկական շտեմարանից (https://thenounproject.com/): Նկարիչը Iconic, CY (https://thenounproject.com/icon/490005/):

Ես gimp- ի միջոցով ստեղծեցի 20 տարբեր շրջանակներ, որտեղ ասեղը մատնացույց էր անում յուրաքանչյուր նշանի նշանը: Faceպտերես պատկերակները պատկերված են NOVITA ASTRI- ով, ID- ով և այստեղ են ՝

Այնուհետև ես այս բոլորը վերածեցի const uint8_t զանգվածների ՝ օգտագործելով այս տեխնիկան (ակնարկ. Եթե գույները շրջված են դրանք ցուցադրելիս, պարզապես շրջեք գույները բնօրինակի վրա). Https://blog.squix.org/2015/05/esp8266- նոդեմկու-հո…

Կենդանի անիմացիոն ծածկագիրը բավականին պարզ է

  • Ստացեք կարդալ սենսորից
  • Մասշտաբի ընթերցում (ես այն դարձրեցի 1 -ից 1 -ը `դրական խթանման արժեքների համար և ասեղը շարժեցի միայն այն ժամանակ, երբ այն խթանման մեջ է, ոչ թե երբ վակուումում է)
  • Նկարեք xbm և մնացած թվերի համար նշեք մնացած ամեն ինչ:
  • լվանալ և կրկնել

Սենսորային ծածկագիր. Ես կրկին օգտագործում եմ սենսորային ծածկագիրը, որն օգտագործել եմ այս երկու տվիչների համար մի քանի այլ նախագծերի համար: Ես ավելացրեցի որոշակի միջինացում `ցնցող սենսորներից հեռու մնալու համար: Սա ներառում է յուրաքանչյուր «ընթերցում» կարդալը միջինը 5 ընթերցում:

Խթանման կոդ (սենսորը տալիս է 0-5 վոլտից անալոգային արժեք, որը ADC- ն վերածում է քայլերի 0-1024-ի):

int getBoost () {float rboost = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); // float Արդյունք PSI = (rboost*(. 00488)/(. 022) +20) /6.89 - մթնոլորտ; // kpa float- ի համար թողարկում է /6.89 արդյունքը PSI = (((rboost /4095) + 0.04) /0.004) * 0.145 - մթնոլորտ; // 0.145 -ով մինչև calc psi // 4096 արժեքներ esp32 /*rBoost = rBoost + 1; եթե (rBoost> = 20) {rBoost = 0; }*/ վերադարձ (արդյունք PSI); }

Յուղի ճնշման կոդ (սենսորը փոխում է իր դիմադրությունը ՝ հիմնվելով իր զգացած ճնշման վրա, ուստի լարման բաժանարար է պահանջվում այն 0-5 վ լարման վերածելու համար տե՛ս ՝ https://electronics.stackexchange.com/questions/3…https:/ /www.instructables.com/id/Remote-Car-Monito… (ներքևում) ՝ լրացուցիչ տեղեկությունների համար):

int getOilPSI () {float psival = ((analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36) + analogRead (36))/5); psival = -0.0601*psival + 177.04 - 14.5; վերադարձ psival; }

Վեբ սերվեր և AP ֆունկցիոնալություն. AP- ի գործառույթը բավականին պարզ է. Ակնթարթային և AP օբյեկտ ESSID- ով, որը ցանկանում եք հեռարձակել և գաղտնաբառ, և ձեզ համար ամեն ինչ լավ է:

const char *ssid = "boost_gauge_ap"; const char *գաղտնաբառ = "գաղտնաբառ";

WiFi.softAP (ssid, գաղտնաբառ);

Այն նույնիսկ ունի DHCP սերվեր, այնպես որ դրա մասին անհանգստանալու կարիք չունեք: Լռելյայն IP- ն 192.168.1.4 է (գաղափար չկա, թե ինչու, դա հենց ընտրյալն է): Վեբ սերվերի բիթը մի փոքր ավելի բարդ է և պահանջում է մի փոքր հետազոտություն: Հիմնականում դուք ցանկանում եք async վեբ սերվեր, որպեսզի այն կարողանա ստանալ կենդանի թարմացման տվյալներ: Բարեբախտաբար, դրա համար կա գրադարան: Ես javascript- ի մշակող չեմ, այնպես որ ես շփվել եմ գրադարանների գծապատկերների և գծապատկերների փունջի հետ, մինչև որ չսայթաքեցի smoothie գծապատկերների վրա: Այլ գծապատկերային գրադարաններ գրված են այնպես, որ ժառանգեն համացանցի այլ գրադարանների բոլոր տեսակի ծածկագրերը, որոնք դինամիկ կերպով բեռնվում են էջը մատուցելիս: Ես ուզում էի, որ սա անկախ ինտերնետից աշխատեր, այնպես որ սա մեծ գտածո էր: Երկրորդ, այն պետք է այնքան փոքր լիներ, որ տեղավորվեր arduino- ի վրա, և ինչպես տեսնում եք ծածկագրում, այն տեղավորվում է մեկ char զանգվածի մեջ:

Վեբ սերվերի հայտարարագրեր. // instantiate it and pick port (80 is standard for http)… server.on ("/", HTTP_GET, (AsyncWebServerRequest *request) {request-> send (200, "text/html", "… // վեբ էջը + smoothiecharts գրադարանը հսկայական char զանգվածում)); server.on ("/val", HTTP_GET, (AsyncWebServerRequest *request) {// առաջին էջը իրականում կոչում է այս շատ փոքր էջ, որը պարզապես վերադարձնում է արժեքի պահանջը -> ուղարկել (200, "text/html", Sboost);}); server.begin ();

Քայլ 2: Սարքավորումներ և լարեր

Սարքավորումներ և լարեր
Սարքավորումներ և լարեր
Սարքավորումներ և լարեր
Սարքավորումներ և լարեր
Սարքավորումներ և լարեր
Սարքավորումներ և լարեր

Պատկերասրահում պատկերված են երկու սենսորներ, որոնք ես օգտագործում եմ: Ոսկու մեծ գույնը հանդիսանում է նավթի ճնշման ցուցիչ Autometer 2242: Այս սենսորի մարմինն ու թելը հիմնավորված են, իսկ տերմինալը `դիմադրության ընթերցում:

Autometer- ը ձեզ կտրամադրի ճնշման կամ ջերմաստիճանի դիմադրության դիմադրության կոր ՝ դրանց սենսորներից որևէ մեկի համար: Ես դա վերածել եմ լարման `օգտագործելով լարման բաժանարար (տես էլեկտրագծերի դիագրամ):

MPX4250AP օդի ճնշման տվիչը ունի երեք կենդանի կապում և մի քանի չօգտագործված կապում: Դրանք V են, գրունտ և սենսորային ելք: Այն թողարկում է 0-5 վ ընթերցում, որը կարող է կարդալ միկրոկառավարիչը (կամ այս mcu- ի դեպքում 0-3 վոլտ. Այսպիսով, սենսորի ընթերցումը նվազեցվում է լարման բաժանարարի միջոցով): Դրա տեխնիկական բնութագիրը կարող եք գտնել այստեղ ՝

5v- ից 3v տրամաբանությունը նվազեցնելու մի քանի խնդիր կա: Իմ դեպքում ես օգտագործել եմ լարման բաժանարարը պարզության համար, և ես ունեի մասեր իմ աշխատասեղանի շուրջ: Լրացուցիչ բաղադրիչների (երկու դիմադրիչներ) հնարավոր սխալի հիման վրա ընթերցումների մեջ մի փոքր սխալ կներմուծեք: Սա որոշ դեպքերում կարող է ձեր ընթերցումները դարձնել 10% զեղչ: Ես կարող եմ սրանով ապրել: Եթե չեք կարող, գուցե ցանկանաք օգտագործել opamp և ռեզիստորներ կամ տրամաբանական մակարդակի փոխարկիչ (հասանելի է էլեկտրոնիկայի տարբեր մատակարարներից: Sparkfun- ն այստեղ ունի մեկը ՝ https://www.sparkfun.com/products/12009, ես կարող եմ դրան անցնել որպես Ես երբեմն ստանում եմ բարձր ցուցանիշներ այս չափիչի վրա (իրականում ես ցույց եմ տվել այս ապրանքը իմ էլեկտրագծերի գծապատկերում):

Ես սնուցում էի ESP32- ը USB- ի միջոցով: Սա ներառում էր այսպիսի ուղիղ լիցքավորիչի միացում `https://www.amazon.com/gp/product/B00U2DGKOK/ref=p… մեքենային, այնուհետև USB հանգույցի միջոցով այն բաժանելու համար: Դուք կարող եք տեսնել, որ ես օգտագործել եմ ուղղանկյուն USB մալուխներ ՝ փոքր տարածքում ամեն ինչ աշխատելու համար (https://www.amazon.com/gp/product/B00ENZDFQ4/ref=p…):

Այլ լուսանկարներում պատկերված են այն վայրերը, որտեղ ես անցքեր եմ կտրել կամ լար եմ վազել: Յուրաքանչյուր մեքենա տարբեր կլինի: Useգույշ եղեք, դանակներն ու մկրատները սուր են, էլեկտրաէներգիան կարող է վտանգավոր լինել: Խնդրում ենք անջատել մարտկոցը, նախքան իրերը միացնելը:

Քայլ 3. 3D տպագիր բնակարան

3D տպագիր բնակարան
3D տպագիր բնակարան

Դրա համար ես օգտագործել եմ մի քանի 3D տպագիր պատյաններ:

  • Ընդհանուր մեծ 2 էկրանի կլոր չափիչ: Սա կարող եք տեսնել առաջին էջի այս նկարներում: Ես այն դրեցի ժամացույցիս կողքին ՝ գծիկիս վրա:
  • Մեկ չափիչ սեպաձև, որը տեղավորվում է սուբարու իմպրեսայի ժամացույցի տարածքում (wrx, sti և այլն) մոտավորապես 2008-ից մինչև 2014 թվականը:
  • Երկակի չափիչ կտոր, որը տեղավորվում է ղեկի սյուների և փոքր -ինչ կլորացված մակերեսների վրա.

Դուք կարող եք պատճենել և փոփոխել դրանք ՝ ձեր կարիքներին համապատասխան: Նրանցից ոչ մեկը կատարյալ չէ, և բոլորը կպահանջեն մի փոքր հարմարվել:

Որոշ նշումներ.

  • Ես ավարտեցի իմը պլաստիդիպով; դա ծույլերի նախընտրելի մեթոդն է:
  • Պլաստմասսա հղկելով ՝ դա ձեզ համար լավ մասնիկ չի ստեղծում, օգտագործեք համապատասխան դիմակ:
  • Ես PETG- ն օգտագործել եմ իմ բնակարանների համար: ABS- ը նույնպես լավ է: PLA- ն կծռվի տաք արևի տակ ՝ վահանակի վրա:
IoT մարտահրավեր
IoT մարտահրավեր
IoT մարտահրավեր
IoT մարտահրավեր

Երկրորդ մրցանակ IoT մարտահրավերում

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