Съдържание:
- Консумативи
- Стъпка 1: Кодът
- Стъпка 2: Картата
- Стъпка 3: Партито с горещо лепило
- Стъпка 4: Готовият продукт
Видео: ESP32 Scraper-parser-mailer и Live Mapper: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Здравей свят! Това е първият ми Instructable! Аз съм Марко от Гросето Италия, не съм разработчик, не съм електронен инженер, но съм екологичен водач в нашия местен природен парк (природен парк Маремма).
В моята кооперация работим много с обиколки с кану, натуралистични и спокойни обиколки по река Омброне за наблюдение на птици и малко смисъл за релаксация.
Но река Омброне е известна и с характерния си вид поток: от лятното „нулево“до есенно-зимния поток от няколко хиляди кубически метра вода на час.
Поради тази причина река Ombrone се наблюдава постоянно от отличната регионална хидрометрична услуга (SIR), с фантастичен сайт, който прави събраните данни достъпни.
Сега чакаме края на сезона и първите есенни наводнения за премахване на дока и канутата …
Но когато започнем да говорим за остъргване на синтактичния анализ на esp32ing и т.н.? още един момент
По време на италианското блокиране направих първия arduino мигащ урок, готино … и продължих да си играя със сензори и arduino C. Така че, ако намерите моя код груб или пълен с безсмислени логически пропуски, помислете за това!
Направих много неща само за да губя време, но с този постоянен риск от наводнение реших да направя нещо готино: благодарение на ESP32 с ардуино форм -фактор (Wemos d1 r32), който държах опакован в продължение на месеци, защото мислех, че е „трудно“, Наистина имах много удовлетворения:
Направих скрепер, който пренася и анализира данни от SIR уеб страница и показва променливите, получени на евтин i2c LCD, и като мигаща честота на яркост на някои светодиоди на реалистична карта.
така че ако наводнение дойде от планинската страна, ще бъда предупреден от нарастващата яркост (промяна на нивото) и от нарастващата честота (промяна на нивото за един час) на светодиодите на картата … но ESP32 може също да изпраща имейли! Така че защо да не направите функция за това?
нека да видим кода по -долу сега!
Консумативи
- База, базирана на ESP32: Използвал съм Wemos d1 r32, защото има женски щифтове и е по -лесно за работа
- светодиоди, червеното е по -скоро "нащрек като"
- I2C 16x2 LCD е само син, но зеленият е по -стилен
- евтина коркова дъска
- нощно време (по избор)
Стъпка 1: Кодът
онлайн намерих само изпарени уроци, които използват външни сайтове за анализиране на данни, затова се опитах да тествам силата на ядрата esp32, които анализират данните директно на дъската … без проблеми!
така че, ако видите страницата SIR, източникът може да разбере как работи: за щастие те използват стойности, разделени със запетая, като за показване на техните данни, така че с този код търся хидрографска станция (код TOSnumber) и преброявам броя на запетаите (като разделител), които съдържат желаната от мен стойност (и я съхраняват като променлива), след което я пренареждат като яркост на светодиода и време в милис за мигане на „ниво на вариация“
Ядрото на този скрепер е в раздел
ind = payload.indexOf ("TOSstation_number"); // получаваме позицията (ind) откъдето започваме да броим запетаи
Низ 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 позиция if (data.charAt (i) == разделител || i == maxIndex) {намерен ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} връщане намерено> индекс? data.substring (strIndex [0], strIndex [1]): ""; }
адаптирано от
кодът иска страницата на всеки 15 минути, това е около 44Kb, не мисля, че е голямо натоварване за сървърите и за ESP32.. За да избегна твърде много превъртане, разделих програмата на различни функции, прочетете коментарите
тук поставянето на код е наистина бъркотия … поставих директно.ino файловете
Използвах функцията tabs на arduino IDE, така че имам различни.ino файлове
това е последната версия на кода (?), има много усилия, така че ще оценя всяко предложение!
- за изправяне на яркостта на светодиода за ниски стойности, - за функцията "map" за променливи с плаваща запетая - за използването на второ ядро на ESP32, - за разбиране как да отпечатате html поща от низ с sprintf прекарахте много истинско "време за нерви", така че прочетете коментарите към.ino файловете или в github!
като настройки за качване използвах Инструменти: Схема на дяловете: НЯМА OTA, за да има повече място за този огромен код
забавлявай се
щракнете тук за кода на github
Стъпка 2: Картата
този урок е фокусиран върху кода ESP32, така че мога да ви дам само някои ключови думи, връзки и използвани инструменти:
отличната услуга за извличане на векторни области от openstreetmap
- "остичните" QGis за тяхното усвояване
- потърсете таблица с атрибути за опростяване на картата
- създайте оформление за печат и експортирайте картата във формат svg на хартиен формат А3
- забавлявайте се с „по -гладкия“илюстратор
- отпечатайте го
Стъпка 3: Партито с горещо лепило
така че мога да предложа да изрежете дупките за светодиода и дисплея на хартията, преди да ги фиксирате върху корковата дъска
окабеляването е наистина просто и лошо направено от мен: P
Моето ниво на запояване: Гълъб
както можете да видите от кода, светодиодите отиват към IO щифтове
#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
потърсете разпечатване на ESP32 за разбиране
Стъпка 4: Готовият продукт
така че тази снимка не е най -добрата, но когато имаме речно наводнение, ще пусна хубаво видео!
Препоръчано:
LED светлина (и) със захранване от батерията със слънчево зареждане: 11 стъпки (със снимки)
LED светлини (и), захранвани от батерии, със слънчево зареждане: Жена ми учи хората как да правят сапун, повечето от часовете й бяха вечер и тук през зимата се стъмва около 16:30 ч. Някои от нейните ученици имаха проблеми с намирането на нашите къща. Имахме табела отпред, но дори и с улично осветление
Лек хак за стая със зрителни увреждания със слухови увреждания: 7 стъпки (със снимки)
Лек хак на стаята със слухови увреждания на вратата: Проблем: баща ми е регистриран като глух, а майка ми е с увреден слух и поради това често им е трудно да чуят звънеца на вратата. Това би могло да бъде проблем, претърпян и от много други.Купиха мигащ светлинен звънец на вратата, за да им помогнат с
Висящи бижута със слънчево захранване на сърцето със светкавици: 11 стъпки (със снимки)
Висящи бижута със слънчево захранване за сърце: Тази инструкция е за сърце със слънчева енергия с пулсиращ червен светодиод. Той измерва около 2 " до 1,25 ", включително USB раздела. Той има една дупка през горната част на дъската, което улеснява окачването. Носете го като огърлица, обеци, връзки на щифт
IoT Mouse-Friendly Live Trap: 6 стъпки (със снимки)
IoT Mouse-Friendly Live Trap: Това е капан за улавяне на мишките, без да ги наранява, така че можете да ги пуснете навън. Ако сензорът за близост открие мишката, серво моторът ще затвори вратата. Ще получите незабавно съобщение и/или имейл, за да ви уведомим, че сте ограничили
Персонализиран часовник със стрелки за снимки: 5 стъпки (със снимки)
Персонализиран часовник със стрелки за снимки: Някои хора наблюдават часовника. Сега всеки може да бъде часовник. Други проекти персонализират лицето на часовника. Този персонализира стрелките на часовника. Изглежда скъп, но е по -малко от 5 долара и около 30 минути на часовник. Перфектен за Chr