Оглавление:

ESP32 Scraper-parser-mailer и Live Mapper: 4 шага (с изображениями)
ESP32 Scraper-parser-mailer и Live Mapper: 4 шага (с изображениями)

Видео: ESP32 Scraper-parser-mailer и Live Mapper: 4 шага (с изображениями)

Видео: ESP32 Scraper-parser-mailer и Live Mapper: 4 шага (с изображениями)
Видео: Leveraging OpenAI ChatGPT to Scrape Millions of Email Addresses 2024, Ноябрь
Anonim
ESP32 Скребок-парсер-почтовик и Live Mapper
ESP32 Скребок-парсер-почтовик и Live Mapper
ESP32 Скребок-парсер-почтовая программа и Live Mapper
ESP32 Скребок-парсер-почтовая программа и Live Mapper
ESP32 Скребок-парсер-почтовая программа и Live Mapper
ESP32 Скребок-парсер-почтовая программа и Live Mapper

Привет, мир! Это моя первая инструкция! Я Марко из Гроссето, Италия, я не разработчик, я не инженер-электронщик, но я эколог в нашем местном природном парке (природный парк Маремма).

В моем кооперативе мы много работаем с каноэ-турами, натуралистическими и спокойными турами по реке Омброне для наблюдения за птицами и небольшого расслабления.

Но река Омброне славится еще и своим характерным течением: от летнего «нуля» до осенне-зимнего потока в несколько тысяч кубометров воды в час.

По этой причине река Омброне постоянно контролируется превосходной региональной гидрометрической службой (SIR) с фантастическим участком, который делает собранные данные доступными.

Теперь ждем окончания сезона и первых осенних паводков, чтобы убрать причал и байдарки…

Но когда мы начинаем говорить о парсинге, парсинге esp32ing и т. Д.? еще один момент

Во время итальянской блокировки я провел первый урок по ардуино, круто… и я продолжил экспериментировать с датчиками и ардуино С. Так что, если вы сочтете мой код грубым или полным бессмысленных логических пробелов, подумайте об этом!

Я сделал много вещей, просто чтобы зря тратить время, но с этим постоянным риском затопления я решил сделать что-нибудь крутое: благодаря ESP32 с форм-фактором arduino (Wemos d1 r32), который я держал упакованным в течение нескольких месяцев, потому что считал «сложным», Я действительно получил много удовольствия:

Я сделал скребок, который извлекает и анализирует данные с веб-страницы SIR и отображает полученные переменные на дешевом ЖК-дисплее i2c, а также в виде мерцания яркости и частоты на некоторых светодиодах на реалистичной карте.

поэтому, если наводнение придет со стороны горы, я буду предупрежден увеличением яркости (изменение уровня) и увеличением частоты (изменение уровня за один час) светодиодов на карте … но ESP32 также может отправлять электронные письма! Так почему бы не сделать для этого функцию?

Теперь давайте посмотрим на код ниже!

Запасы

  • Плата на базе ESP32: я использовал Wemos d1 r32, потому что у нее есть женские контакты, и с ней легче обращаться
  • светодиоды, красный цвет более "бдительный"
  • I2C 16x2 LCD iv'e только синий, но зеленый более стильный
  • дешевая пробковая доска
  • ночное время (необязательно)

Шаг 1: Код

Код
Код
Код
Код

в сети я нашел только бессвязные руководства, в которых для анализа данных используются внешние сайты, поэтому я попытался проверить мощность ядер esp32, анализирующих данные непосредственно на плате… без проблем!

поэтому, если вы просматриваете источник страницы SIR, вы можете понять, как он работает: к счастью, они используют значения, разделенные запятыми, для отображения своих данных, поэтому с помощью этого кода я ищу гидрографическую станцию (код TOSnumber) и подсчитываю количество запятых (в качестве разделителя), которые содержат желаемое значение (и сохранить его как переменную), затем переназначить его как яркость светодиода и время в миллисекундах для мигания «уровня вариации»

Ядро этого парсера находится на вкладке

ind = payload.indexOf ("TOSstation_number"); // получаем позицию (ind), откуда начинаем считать запятые

Строка my_var = getValue_ind (полезная нагрузка, ',', 8); // где 8 - восьмая ячейка, определенная запятыми (разделителем)

"полезная нагрузка" - это то, что я получаю из Интернета, ранее очищенный от "цитат" и "& nbsp";

и функция getValue_ind, которая находится на главной вкладке

String getValue_ind (данные строки, разделитель символов, индекс int) {

int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// с позиции ind if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? я + 1: я; }} вернуть найдено> индекс? data.substring (strIndex [0], strIndex [1]): ""; }

адаптировано из

код запрашивает страницу каждые 15 минут, это около 44 КБ, я не думаю, что это большая нагрузка для серверов и ESP32.. Чтобы избежать слишком большой прокрутки, я разделил программу на разные функции, прочтите комментарии

здесь вставка кода - действительно беспорядок… я помещаю файлы.ino напрямую

Я использовал функцию вкладок в Arduino IDE, поэтому у меня есть разные файлы.ino

это последняя версия кода (?), приложено много усилий, поэтому я буду признателен за любое предложение!

- для выравнивания яркости светодиода для низких значений, - для функции "map" для переменных с плавающей запятой - для использования второго ядра на ESP32, - для понимания, как печатать html-сообщение из строки с помощью sprintf У меня есть потратил много настоящего "ботанического времени", так что читайте комментарии к файлам.ino или на github!

в качестве настроек загрузки я использовал Tools: Partition Scheme: NO OTA, чтобы было больше места для этого огромного кода

повеселись

нажмите здесь, чтобы увидеть код на github

Шаг 2: карта

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

этот урок основан на коде ESP32, поэтому я могу дать вам только некоторые ключевые слова, ссылки и используемые инструменты:

отличный сервис для извлечения векторных областей из openstreetmap

  • "Остик" QGis для их переваривания
  • поиск таблицы атрибутов для упрощения карты
  • создать макет для печати и экспортировать карту в формате svg на бумаге формата А3
  • получайте удовольствие от "более плавного" иллюстратора
  • распечатать это

Шаг 3: вечеринка с горячим клеем

Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем
Вечеринка с горячим клеем

поэтому я могу предложить вырезать отверстия для светодиода и дисплея на бумаге, прежде чем закрепить его на пробковой доске

проводка действительно проста и сделана мной плохо: P

Мой уровень пайки: Голубь

как вы можете видеть из кода, светодиоды идут на контакты ввода-вывода

#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: Готовый продукт

Готовый продукт
Готовый продукт

так что это фото не самое лучшее, но когда у нас будет разлив реки, я выложу хорошее видео!

Рекомендуемые: