Tartalomjegyzék:

ESP32 Scraper-parser-mail és Live Mapper: 4 lépés (képekkel)
ESP32 Scraper-parser-mail és Live Mapper: 4 lépés (képekkel)

Videó: ESP32 Scraper-parser-mail és Live Mapper: 4 lépés (képekkel)

Videó: ESP32 Scraper-parser-mail és Live Mapper: 4 lépés (képekkel)
Videó: Is web scraping legal? 🫢😳 2024, November
Anonim
ESP32 Scraper-parser-mailer és Live Mapper
ESP32 Scraper-parser-mailer és Live Mapper
ESP32 Scraper-parser-mailer és Live Mapper
ESP32 Scraper-parser-mailer és Live Mapper
ESP32 Scraper-parser-mailer és Live Mapper
ESP32 Scraper-parser-mailer és Live Mapper

Helló Világ! Ez az első Instructable! Marco vagyok Grosseto Olaszországból, nem vagyok fejlesztő, nem vagyok elektronikai mérnök, de környezetvédelmi vezető vagyok a helyi természeti parkunkban (Maremma természeti park).

Szövetkezetemben sokat dolgozunk kenutúrákkal, naturalisztikus és nyugodt túrákkal az Ombrone folyón madármegfigyelésre és egy kis lazításra.

De az Ombrone folyó híres jellegzetes áramlásáról is: a nyári "nullától" az őszi-téli áramlásig több ezer köbméter víz óránként.

Emiatt az Ombrone folyót folyamatosan figyelemmel kíséri a kiváló regionális hidrometriai szolgálat (SIR), egy fantasztikus webhellyel, amely elérhetővé teszi az összegyűjtött adatokat.

Most várjuk a szezon végét és az első őszi árvizeket, hogy eltávolítsuk a dokkot és a kenukat…

De amikor beszélni kezdünk az esp32 stb. még egy pillanat

Az olasz lezárás során elvégeztem az első arduino pislogó leckét, jó… és folyamatosan játszani kezdtem az érzékelőkkel és az arduino C -vel. Tehát, ha a kódot nyersnek vagy tele van értelmetlen logikai hiányosságokkal, fontolja meg ezt!

Sok mindent csináltam, csak hogy időt vesztegessek, de ezzel az állandó árvízveszéllyel úgy döntöttem, hogy valami jót teszek: egy ESP32 -nek köszönhetően, amely egy arduino formatervezési tényezővel (Wemos d1 r32) készült, amelyet hónapokig csomagoltam, mert "nehéznek" tartottam, Tényleg sok elégedettségem volt:

Csináltam egy kaparót, amely adatokat hoz létre és elemez egy SIR weboldalról, és megjeleníti a kapott változókat egy olcsó i2c LCD-n, és fényerő-frekvencia villog néhány leden egy valósághű térképen.

így ha árvíz érkezik a hegyoldalról, figyelmeztetni fog a térképen lévő LED -ek növekvő fényereje (szintváltozás) és a növekvő gyakoriság (szintváltozás egy óra alatt) … de az ESP32 képes e -maileket is küldeni! Akkor miért nem végez funkciót ehhez?

most nézzük meg az alábbi kódot!

Kellékek

  • ESP32 alapú tábla: Wemos d1 r32 -t használtam, mert női csapok vannak, és könnyebb kezelni
  • LED -ek, a piros inkább "éber"
  • Az I2C 16x2 LCD iv'e csak kék, de a zöld stílusosabb
  • olcsó parafa tábla
  • éjszakai idő (opcionális)

1. lépés: A kód

A kód
A kód
A kód
A kód

online csak gőzös oktatóanyagokat találtam, amelyek külső oldalakat használnak az adatok elemzéséhez, ezért megpróbáltam tesztelni az esp32 magok erejét, amelyek az adatokat közvetlenül a táblán elemzik … gond nélkül!

így ha megnézi a SIR oldal forrását, megértheti, hogyan működik: szerencsére "vesszővel elválasztott" értékeket használ az adatok megjelenítéséhez, ezért ezzel a kóddal egy vízrajzi állomást keresek (kód: TOSnumber) és számolom a vesszőket (elválasztóként), amelyek a kívánt értéket tartalmazzák (és változóként tárolják), majd a LED -es fényerő és az idő milliméterben történő átalakításával a "variációs szint" villog.

Ennek a kaparónak a magja a http lapon található:

ind = payload.indexOf ("TOSstation_number"); // a pozíció (ind) beszerzése a vesszők számításának kezdetétől

String my_var = getValue_ind (hasznos terhelés, ',', 8); // ahol 8 a nyolcadik vesszővel definiált cella (elválasztó)

A "hasznos teher" az, amit az "idézetektől" és "& nbsp";

és a fő lapon található getValue_ind függvény

String getValue_ind (Karakterláncadatok, karakterválasztó, int index) {

int talált = 0; int strIndex = {0, -1}; int maxIndex = adat.hossz () - 1; for (int i = ind; i <= maxIndex && talált <= index; i ++) {// ind pozícióból, ha (data.charAt (i) == elválasztó || i == maxIndex) {talált ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} return found> index? data.substring (strIndex [0], strIndex [1]): ""; }

adaptálva a https://stackoverflow.com/a/14824108 weboldalról

a kód 15 percenként kéri az oldalt, körülbelül 44 KB, szerintem nem nagy terhelés a szerverek és az ESP32 számára. A túl sok görgetés elkerülése érdekében a programot különböző funkciókra osztottam, olvassa el a megjegyzéseket

itt a kód beillesztése valóban rendetlenség … közvetlenül az.ino fájlokat tettem fel

Az arduino IDE lapok funkcióját használtam, így különböző.ino fájljaim vannak

ez a kód legújabb verziója (?), sok erőfeszítésre van szükség, ezért minden javaslatot szívesen fogadok!

- a led fényerő kiegyenesítéséhez alacsony értékek esetén, - a "térkép" funkcióhoz lebegőpontos változók esetén - a második mag használatához az ESP32 -en, - annak megértéséhez, hogyan lehet html levelet nyomtatni egy karakterláncból sprintfI sok igaz "idegesítő időt" töltött, ezért olvassa el az.ino fájlok megjegyzéseit vagy a github -ot!

feltöltési beállításként Eszközök: Partícióséma: NO OTA, hogy több hely legyen ennek a hatalmas kódnak

érezd jól magad

kattintson ide a github kódjáért

2. lépés: A térkép

A térkép
A térkép
A térkép
A térkép
A térkép
A térkép

ezt a tutit az ESP32 kód ösztönzi, így csak néhány kulcsszót, linket és használt eszközt tudok adni:

a kiváló szolgáltatás a vektoros területek kivonásához az openstreetmap -ből

  • az "osztikus" QG -k az emésztéshez
  • keresse az attribútumtáblát a térkép egyszerűsítése érdekében
  • hozzon létre nyomtatási elrendezést, és exportálja a térképet svg formátumban A3 -as papírformátumba
  • érezd jól magad a "simább" illusztrátorral
  • nyomtasd

3. lépés: A Hot Glue Party

A Hot Glue Party
A Hot Glue Party
A Hot Glue Party
A Hot Glue Party
A Hot Glue Party
A Hot Glue Party
A Hot Glue Party
A Hot Glue Party

így azt javasolhatom, hogy vágja le a lyukakat a LED-hez és a kijelzőhöz a papíron, mielőtt rögzítené a parafa táblára

a huzalozás nagyon egyszerű és rosszul csináltam: P

Forrasztási szintem: Galamb

amint a kódból látható, a ledek az IO csapokhoz mennek

#define LED_PIN0 14 // si #define LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr

keresd meg az ESP32 pinout -ot a megértéshez

4. lépés: A késztermék

A késztermék
A késztermék

szóval ez a fotó nem a legjobb, de ha lesz némi folyóvíz, teszek fel egy jó videót!

Ajánlott: