Мазмұны:

ESP32 скрепер-талдаушы-жіберуші және Live Mapper: 4 қадам (суреттермен)
ESP32 скрепер-талдаушы-жіберуші және Live Mapper: 4 қадам (суреттермен)

Бейне: ESP32 скрепер-талдаушы-жіберуші және Live Mapper: 4 қадам (суреттермен)

Бейне: ESP32 скрепер-талдаушы-жіберуші және Live Mapper: 4 қадам (суреттермен)
Бейне: ESP32, более мощная чем любая другая Ардуино 2024, Қараша
Anonim
ESP32 скрепер-талдаушы-жіберуші және Live Mapper
ESP32 скрепер-талдаушы-жіберуші және Live Mapper
ESP32 скрепер-талдаушы-жіберуші және Live Mapper
ESP32 скрепер-талдаушы-жіберуші және Live Mapper
ESP32 скрепер-талдаушы-жіберуші және Live Mapper
ESP32 скрепер-талдаушы-жіберуші және Live Mapper

Сәлем Әлем! Бұл менің бірінші нұсқаулық! Мен Гроссето Италиядан Марко, мен әзірлеуші емеспін, электронды инженер емеспін, бірақ мен жергілікті табиғи саябақта (Маремма табиғи паркі) экологиялық бағыттаушымын.

Менің кооперативте біз каноэ -турлармен, Омброне өзенінде натуралистік және тыныш турлармен көп жұмыс жасаймыз, олар құстарды бақылап, біршама босаңсытады.

Бірақ Омброне өзені ағынның өзіндік түрімен де танымал: жаздан «нөлге» дейін күзгі-қысқы ағынмен сағатына бірнеше мың текше метр су.

Осы себепті, Омброне өзенін керемет аймақтық гидрометриялық қызмет (SIR) үнемі бақылап отырады, бұл керемет сайтпен жиналған деректерді қол жетімді етеді.

Енді біз маусымның аяқталуын және док пен каностарды алып тастау үшін күздің алғашқы су тасқынын күтеміз …

Бірақ біз esp32ing т.б талдауды қысқарту туралы айта бастағанда? тағы бір сәт

Итальяндық блокада кезінде мен бірінші arduino blink сабағын өткіздім, керемет … мен сенсорлармен және arduino C -мен ойнауды жалғастырдым, сондықтан егер сіз менің кодты өрескел немесе логикалық бос орындарға толы деп тапсаңыз, мұны ескеріңіз!

Мен көп нәрсені тек уақытты босқа өткізу үшін жасадым, бірақ мен үнемі су басу қаупімен керемет нәрсе жасауды шештім: «қиын» деп ойлағандықтан, мен оны айлар бойы орап сақтаған arduino форма факторы бар ESP32 (Wemos d1 r32) арқасында., Мен шынымен көп қанағаттандым:

Мен SIR веб-бетінен деректерді әкелетін және талдайтын және арзан i2c LCD дисплейінде алынған айнымалыларды көрсететін және нақты картада кейбір жарық диодтарында жарықтық жиілігі жыпылықтайтын скрепер жасадым.

егер таудан су тасқыны келсе, маған картадағы жарық диодтарының жарықтылығының жоғарылауы (деңгейдің өзгеруі) және жиіліктің жоғарылауы (бір сағат ішінде деңгейдің өзгеруі) ескертеді … бірақ ESP32 электрондық поштаны да жібере алады! Сонымен, неге бұл үшін функция жасамасқа?

енді төмендегі кодты көруге барайық!

Жабдықтар

  • ESP32 негізіндегі тақта: Мен Wemos d1 r32 себебін қолдандым, оның түйреуіштері бар және оларды өңдеу оңай
  • қызыл, қызыл - «сергек»
  • I2C 16x2 СКД тек көк түске боялған, бірақ жасыл түс стильді
  • арзан тығын тақтасы
  • түнгі уақыт (міндетті емес)

1 -қадам: Кодекс

Кодекс
Кодекс
Кодекс
Кодекс

Интернетте мен тек қана деректерді талдау үшін сыртқы сайттарды қолданатын бұлыңғыр оқулықтарды таптым, сондықтан мен деректерді тікелей тақтада талдайтын esp32 ядроларының қуатын тексеруге тырыстым … еш қиындықсыз!

егер сіз SIR бетінің көзін көрсеңіз, оның қалай жұмыс істейтінін түсінуге болады: Бақытымызға орай, олар өз мәліметтерін көрсету үшін «үтірмен бөлінген» мәндерін қолданады, сондықтан мен осы кодпен гидрографиялық станцияны іздеймін (коды TOSnumber) және үтір санын есептеймін (Мен қалаған мәнді қамтитын бөлгіш ретінде (және оны айнымалы ретінде сақтаңыз), содан кейін оны «вариация деңгейінің» жыпылықтауы үшін миллиметрдегі жарықтылық пен уақыт ретінде қайта өңдеңіз.

Бұл қырғыштың өзегі http қойындысында:

ind = payload.indexOf («TOSstation_number»); // үтірді санауды бастайтын орынды (индексті) алыңыз

My_var = getValue_ind жолы (пайдалы жүктеме, ',', 8); // мұнда 8 - үтірмен анықталатын сегізінші ұяшық (бөлгіш)

«пайдалы жүктеме» - бұл бұрын «тырнақшалар» мен «& nbsp» -тен тазартылған интернеттен алатындарым;

және негізгі қойындыда орналасқан getValue_ind функциясы

GetValue_ind жолы (Жол деректері, таңбалауыш, int индексі) {

int табылды = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// ind mövqциясынан, егер (data.charAt (i) == бөлгіш || i == maxIndex) {табылған ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} қайтару табылды> индекс? data.substring (strIndex [0], strIndex [1]): «»; }

stackoverflow.com/a/14824108 сайтынан бейімделген

код әр 15 минут сайын бетті сұрайды, бұл шамамен 44 Кб, мен серверлер мен ESP32 үшін үлкен жүктеме деп ойламаймын. Тым көп айналдыруды болдырмау үшін мен бағдарламаны әр түрлі функцияларға бөлдім, түсініктемелерді оқыңыз

мұнда кодты қою өте қиын … мен.ino файлдарын тікелей қойдым

Мен arduino IDE қойындыларын қолдандым, сондықтан менде әр түрлі.ino файлдары бар

бұл кодтың соңғы нұсқасы (?), көп күш жұмсалады, сондықтан мен кез келген ұсынысты бағалаймын!

- төмен мәндер үшін жарықтылықты түзету үшін, - өзгермелі нүкте айнымалысы үшін «карта» функциясы үшін - ESP32 -де екінші ядро қолдану үшін, - sprintfI бар жолдан html поштасын қалай басып шығару керектігін түсіну үшін. шынайы «уақытты» көп өткізді, сондықтан.ino файлдарындағы немесе github -дағы пікірлерді оқыңыз!

жүктеу параметрлері ретінде мен құралдарды қолдандым: бөлу схемасы: бұл үлкен код үшін көбірек орын болуы үшін OTA жоқ

масайрау

github кодын алу үшін мына жерді басыңыз

2 -қадам: Карта

Карта
Карта
Карта
Карта
Карта
Карта

Бұл ұстаным ESP32 кодында жазылған, сондықтан мен сізге тек кейбір кілт сөздерді, сілтемелер мен қолданылатын құралдарды бере аламын:

https://extract.bbbike.org/ Openstreetmap формасындағы векторлық аймақтарды шығарудың тамаша қызметі

  • оларды қорытуға арналған «ostic» QGis
  • картаны жеңілдету үшін атрибуттар кестесін іздеңіз
  • басып шығару макетін жасаңыз және картаны svg форматында A3 форматында экспорттаңыз
  • «тегіс» иллюстратормен көңілді болыңыз
  • басып шығарыңыз

3 -қадам: Ыстық желім партиясы

Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы
Ыстық желім партиясы

сондықтан мен тығын тақтасына бекітпес бұрын қағаздағы светодиод пен дисплейдің тесіктерін кесуді ұсынамын

сымдар шынымен қарапайым және мен нашар жасадым: P

Менің дәнекерлеу деңгейім: көгершін

кодтан көріп отырғаныңыздай, светодиодтар IO түйреуіштеріне өтеді

#LED_PIN0 14 // si #анықтау LED_PIN1 27 // buon #LED_PIN2 16 анықтау // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr

түсіну үшін ESP32 түйінін іздеңіз

4 -қадам: Дайын өнім

Дайын өнім
Дайын өнім

сондықтан бұл фото ең жақсы емес, бірақ бізде өзен тасқыны болғанда, мен жақсы видео қоямын!

Ұсынылған: