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

ESP32 Scraper-parser-mailer և Live Mapper. 4 քայլ (նկարներով)
ESP32 Scraper-parser-mailer և Live Mapper. 4 քայլ (նկարներով)

Video: ESP32 Scraper-parser-mailer և Live Mapper. 4 քայլ (նկարներով)

Video: ESP32 Scraper-parser-mailer և Live Mapper. 4 քայլ (նկարներով)
Video: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 2024, Նոյեմբեր
Anonim
ESP32 Scraper-parser-mailer և Live Mapper
ESP32 Scraper-parser-mailer և Live Mapper
ESP32 Scraper-parser-mailer և Live Mapper
ESP32 Scraper-parser-mailer և Live Mapper
ESP32 Scraper-parser-mailer և Live Mapper
ESP32 Scraper-parser-mailer և Live Mapper

Բարեւ աշխարհ! Սա իմ առաջին հրահանգն է: Ես Մարկոն եմ Իտալիայի Գրոսսետոյից, ես մշակող չեմ, ես էլեկտրոնային ինժեներ չեմ, բայց ես բնապահպանական ուղեցույց եմ մեր տեղական բնական պարկում (Մարեմմա բնական պարկ):

Իմ կոոպերատիվում մենք շատ ենք աշխատում կանոե շրջագայություններով, բնագիտական և հանգիստ շրջագայություններով Օմբրոնե գետի վրա `թռչնադիտարկման և մի փոքր հանգստանալու համար:

Բայց Օմբրոն գետը հայտնի է նաև իր բնորոշ հոսքով. Ամառային «զրոյից» մինչև աշուն-ձմեռ հոսքը ժամում մի քանի հազար խորանարդ մետր ջուր է:

Այդ պատճառով Օմբրոն գետը մշտապես վերահսկվում է հիանալի հիդրոմետ ծառայության (SIR) կողմից ՝ ֆանտաստիկ տեղանքով, որը հասանելի է դարձնում հավաքագրված տվյալները:

Այժմ մենք սպասում ենք սեզոնի ավարտին և աշնանային առաջին ջրհեղեղներին ՝ նավահանգիստը և կանոները հեռացնելու համար…

Բայց երբ սկսում ենք խոսել esp32ing և այլն վերլուծելու քերծվածքների մասին: մի պահ ևս

Իտալական արգելափակման ընթացքում ես արեցի arduino թարթման առաջին դասը, թույն… և ես շարունակեցի խաղալ սենսորների և arduino C- ի հետ: Այսպիսով, եթե իմ կոդը գտնում եք կոպիտ կամ անհեթեթ տրամաբանական բացերով լի, հաշվի առեք սա:

Ես շատ բաներ արեցի պարզապես ժամանակ կորցնելու համար, բայց ջրհեղեղի այս մշտական ռիսկով որոշեցի ինչ -որ զով բան անել. ESP32- ի շնորհիվ arduino ձևի գործոնով (Wemos d1 r32), որը ես ամիսներ շարունակ փաթաթված էի պահում, քանի որ կարծում էի, որ «դժվար է»:, Ես իսկապես շատ գոհունակություններ ունեի.

Ես արել եմ քերիչ, որը բերում և վերլուծում է տվյալները SIR վեբ էջից և ցուցադրում է էժան i2c LCD էկրանին ձեռք բերված փոփոխականները, և քանի որ պայծառության հաճախականությունը թարթում է իրատեսական քարտեզի որոշ լուսարձակների վրա:

Այսպիսով, եթե ջրհեղեղը գալիս է լեռան կողմից, ես նախազգուշացվելու եմ քարտեզի վրա լուսարձակների աճող պայծառությունից (մակարդակի փոփոխությունից) և աճող հաճախականությունից (մակարդակի փոփոխություն մեկ ժամում) … բայց ESP32- ը կարող է նաև նամակներ ուղարկել: Ուրեմն ինչու դրա համար գործառույթ չանել:

եկեք հիմա տեսնենք ներքևի ծածկագիրը:

Պարագաներ

  • ESP32- ի վրա հիմնված տախտակ. Ես օգտագործել եմ Wemos d1 r32- ը, որովհետև կանացի կապում կան, և ավելի հեշտ է դրանք կարգավորել
  • leds, կարմիրն ավելի «զգոն է»
  • I2C 16x2 LCD- ը միայն կապույտ է, բայց կանաչն ավելի ոճային է
  • էժան խցանափայտ
  • գիշերային ժամ (ըստ ցանկության)

Քայլ 1: Կոդ

Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը
Օրենսգիրքը

առցանց ես գտել եմ միայն գոլորշիացնող ձեռնարկներ, որոնք օգտագործում են արտաքին կայքերը տվյալների վերլուծության համար, ուստի ես փորձեցի esp32 միջուկների հզորությունը փորձարկել տվյալները անմիջապես տախտակի վրա … առանց խնդիրների:

եթե դիտում եք SIR էջի աղբյուրը կարող է հասկանալ, թե ինչպես է այն աշխատում. բարեբախտաբար, նրանք օգտագործում են «նման ստորակետով առանձնացված» արժեքներ `իրենց տվյալները ցուցադրելու համար, ուստի այս ծածկագրով ես փնտրում եմ հիդրոոգրաֆիկ կայան (կոդ TOSnumber) և հաշվում ստորակետների թիվը (որպես տարանջատիչ), որոնք պարունակում են իմ ուզած արժեքը (և այն պահում են որպես փոփոխական), այնուհետև այն վերափոխում են որպես լուսադիոդի պայծառություն և ժամանակ միլիլիսներում `« տատանումների մակարդակի »համար թարթելու համար

Այս քերիչի միջուկը http ներդիրում է.

ind = payload.indexOf ("TOSstation_number"); // ստացեք պաշտոնը (ind), որտեղից սկսեք հաշվել ստորակետներ

Լարային my_var = getValue_ind (բեռնվածություն, ',', 8); // որտեղ 8 -ը ութերորդ բջիջն է, որը սահմանված է ստորակետներով (անջատիչ)

«բեռնվածությունը» այն է, ինչ ես ստանում եմ համացանցից, որը նախկինում մաքրվել է «մեջբերումներից» և «& nbsp»;

և getValue_ind գործառույթը, որը գտնվում է հիմնական ներդիրում

String getValue_ind (Լարային տվյալներ, նշանի անջատիչ, int ինդեքս) {

int գտնված = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// from ind position if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} վերադարձը գտնվեց> ինդեքս? data.substring (strIndex [0], strIndex [1]) ՝ ""; }

հարմարեցված է https://stackoverflow.com/a/14824108 կայքից

ծածկագիրը էջը խնդրում է ամեն 15 րոպեն մեկ, այն մոտ 44 Կբ է, չեմ կարծում, որ մեծ բեռ է սերվերների և ESP32- ի համար: Շատ ոլորումից խուսափելու համար ես ծրագիրը բաժանել եմ տարբեր գործառույթների, կարդացեք մեկնաբանությունները

այստեղ կոդի տեղադրումը իսկապես խառնաշփոթ է … ես ուղղակիորեն դնում եմ.ino ֆայլերը:

Ես օգտագործել եմ arduino IDE- ի ներդիրների հնարավորությունը, այնպես որ ես ունեմ տարբեր.ino ֆայլեր:

սա կոդի վերջին տարբերակն է (?), շատ ջանքեր կան, այնպես որ ես կգնահատեմ ցանկացած առաջարկ:

- ցածր արժեքների համար led պայծառության ուղղման համար, - «քարտեզ» գործառույթի համար `լողացող կետի փոփոխականների համար - ESP32- ի երկրորդ միջուկի օգտագործման համար, - հասկանալու համար, թե ինչպես պետք է տպել html նամակ լարից sprintfI ունեն շատ ժամանակ անցկացրեց իրական ժամանակի համար, այնպես որ կարդացեք.ino ֆայլերի կամ github- ի մեկնաբանությունների վրա:

որպես վերբեռնման պարամետրեր ես օգտագործել եմ Գործիքներ. Բաժանման սխեմա. ՈՉ OTA ՝ այս հսկայական կոդի համար ավելի շատ տարածք ունենալու համար

զվարճանալ

կտտացրեք այստեղ github- ի ծածկագրի համար

Քայլ 2: Քարտեզ

Քարտեզը
Քարտեզը
Քարտեզը
Քարտեզը
Քարտեզը
Քարտեզը

այս ուսուցումը ներառված է ESP32 ծածկագրի վրա, որպեսզի կարողանամ ձեզ տրամադրել միայն որոշ հիմնաբառեր, հղումներ և օգտագործված գործիքներ.

վեկտորալ տարածքների արդյունահանման հիանալի ծառայություն openstreetmap

  • «ostic» QGis ՝ դրանք մարսելու համար
  • որոնեք հատկանիշների աղյուսակ ՝ ձեր քարտեզը պարզեցնելու համար
  • ստեղծել տպագիր դասավորություն և արտահանել քարտեզը svg ձևաչափով A3 թղթի ձևաչափով
  • զվարճացեք «ավելի հարթ» նկարազարդողի հետ
  • տպել այն

Քայլ 3. Թեժ սոսնձի երեկույթ

Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ
Թեժ սոսնձի երեկույթ

այնպես որ ես կարող եմ առաջարկել թղթի վրա փակել լուսադիոդի և ցուցադրման անցքերը, նախքան այն ամրացնել խցանափայտի վրա

էլեկտրամոնտաժը իսկապես պարզ է և վատ կատարված իմ կողմից: P

Իմ զոդման մակարդակը. Աղավնի

ինչպես տեսնում եք ծածկագրից led- ները գնում են IO կապում

#սահմանել LED_PIN0 14 // si #սահմանել LED_PIN1 27 // buon #սահմանել LED_PIN2 16 // sass #սահմանել LED_PIN3 17 // tur #սահմանել LED_PIN4 25 // ist #սահմանել LED_PIN5 26 // berr

փնտրեք ESP32 pinout հասկանալու համար

Քայլ 4: Ավարտված արտադրանք

Պատրաստի արտադրանք
Պատրաստի արտադրանք

այնպես որ այս լուսանկարը լավագույնը չէ, բայց երբ գետի ջրհեղեղ ընկնենք, ես գեղեցիկ տեսանյութ կդնեմ:

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