Мазмуну:

ESP32 Скрепер-талдоочу-почтачы жана Live Mapper: 4 кадам (Сүрөттөр менен)
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper: 4 кадам (Сүрөттөр менен)

Video: ESP32 Скрепер-талдоочу-почтачы жана Live Mapper: 4 кадам (Сүрөттөр менен)

Video: ESP32 Скрепер-талдоочу-почтачы жана Live Mapper: 4 кадам (Сүрөттөр менен)
Video: ESP32, более мощная чем любая другая Ардуино 2024, Ноябрь
Anonim
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper
ESP32 Скрепер-талдоочу-почтачы жана Live Mapper

Салам дүйнө! Бул менин биринчи көрсөтмөм! Мен Италиянын Гроссето шаарынан Марко болом, мен иштеп чыгуучу эмесмин, электрондук инженер эмесмин, бирок биздин жергиликтүү жаратылыш паркында (Маремма жаратылыш паркы) экологиялык жетекчи болом.

Менин кооперативде биз каноэ турлары, канаттууларды байкоо жана бир аз эс алуу үчүн Ombrone дарыясында натуралисттик жана тынч турлар менен көп иштейбиз.

Бирок Омброне дарыясы өзүнүн мүнөздүү агымы менен да белгилүү: жайдан "нөлгө" чейин күз-кыш агымына чейин саатына бир нече миң куб суу.

Ушул себептен улам, Омброне дарыясы мыкты аймактык гидрометрический кызмат (SIR) тарабынан дайыма көзөмөлдөнүп турат, чогултулган маалыматтарды жеткиликтүү кылган фантастикалык сайт менен.

Азыр биз сезондун бүтүшүн жана док менен каноолорду алып салуу үчүн күздүн биринчи суу ташкындарын күтүп жатабыз …

Бирок биз esp32ing ж.б. талдоо жөнүндө сөз кыла баштаганда? дагы бир көз ирмем

Италиялык блокада учурунда мен биринчи arduino blink сабагын кылдым, сонун … жана мен сенсорлор жана arduino C. менен ойноону улантып кеттим, андыктан эгер сиз менин кодумду чийки же логикалык боштуктарга толгон деп тапсаңыз, муну эске алыңыз!

Мен көп нерсени жөн эле убакытты текке кетирүү үчүн кылдым, бирок суу каптоо коркунучу менен мен сонун бир нерсе кылууну чечтим: "кыйын" деп ойлогондуктан айлап оролгон ардуино форма факторлуу ESP32 (Wemos d1 r32) жардамы менен., Мен чынында эле көп канааттануу алдым:

Мен SIR веб-баракчасынан маалыматтарды алып, талдай турган жана арзан i2c ЖКда алынган өзгөрмөлөрдү жана реалдуу картада кээ бир леддерде жаркыроо жыштыгын көрсөтүүчү скрепер кылдым.

Ошентип, эгер тоо капталынан сел келсе, мага картандагы леддердин жарыгынын көбөйүшү (деңгээлдин өзгөрүшү) жана жыштыгынын жогорулашы (бир саатта деңгээлдин өзгөрүшү) эскертет … бирок ESP32 электрондук каттарды да жөнөтө алат! Анда эмне үчүн бул үчүн функцияны аткарбайт?

азыр төмөндөгү кодду көрүү үчүн баралы!

Жабдуулар

  • ESP32 негизделген такта: Мен Wemos d1 r32нин себебин аялдын төөнөгүчтөрү менен колдонгом жана аны иштетүү оңой
  • leds, кызыл дагы "сергек"
  • I2C 16x2 ЖК бир гана көк, бирок жашыл дагы саркеч
  • арзан тыгындар тактасы
  • түнкү убакыт (милдеттүү эмес)

1 -кадам: Код

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

Интернетте мен маалыматтарды талдоо үчүн тышкы сайттарды колдонгон гана бышык сабактарды таптым, андыктан маалыматтарды тактада талдоочу esp32 өзөктөрүнүн күчүн текшерүүгө аракет кылдым … эч көйгөйсүз!

эгер сиз SIR баракчасын карасаңыз, анын кантип иштээрин түшүнө алат: бактыга жараша, алар өз маалыматтарын көрсөтүү үчүн "үтүр менен ажыратылган" маанилерди колдонушат, ошондуктан бул код менен мен гидрографиялык станцияны издейм (код TOSnumber) жана үтүрдүн санын эсептеймин (бөлгүч катары) мен каалаган маанини камтыйт (жана аны өзгөрмөлүү катары сактаңыз), андан кийин аны "жарыктын деңгээли" көз ирмемине миллиондогон жарыктык жана убакыт катары кайра караңыз.

Бул кыргычтын өзөгү http өтмөгүндө:

ind = payload.indexOf ("TOSstation_number"); // позицияны (инд) алуу, үтүрдү санап баштоо

String my_var = getValue_ind (пайдалуу жүк, ',', 8); // мында 8 - үтүр (ажыратуучу) менен аныкталган сегизинчи клетка

"пайдалуу жүк" - бул мурда "цитаталардан" жана "& nbsp" ден тазаланган интернеттен алганым;

жана башкы өтмөктө жайгашкан getValue_ind функциясы

String getValue_ind (String data, char separator, int index) {

int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// ind position from 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]): ""; }

stackoverflow.com/a/14824108 ылайыкташтырылган

код ар бир 15 мүнөт сайын баракты сурайт, бул болжол менен 44 Кб, мен серверлер үчүн жана ESP32 үчүн чоң жүк эмес деп ойлойм.. Өтө көп жылдырбоо үчүн программаны ар кандай функцияларга бөлдүм, комментарийлерди окуңуз

бул жерде кодду чаптоо чындыгында баш аламандык … мен.ino файлдарын түздөн -түз койдум

Мен ардуино IDEнин өтмөктөрүн колдондум, ошондуктан менде ар кандай.ino файлдары бар

бул коддун акыркы версиясы (?), көп аракеттер бар, ошондуктан мен ар бир сунушту баалайм!

- төмөн жарыктыктын жарыктыгын тууралоо үчүн, - өзгөрмөлүү чекит өзгөрмөлөрү үчүн "карта" функциясы үчүн - ESP32де экинчи өзөктү колдонуу үчүн, - html почтасын sprintfI менен саптан кантип басып чыгарууну түшүнүү үчүн. көптөгөн чыныгы "нерв убактысын" өткөрдү, андыктан.ino файлдарындагы же githubдагы комментарийлерди окуңуз!

жүктөө орнотуулары катары мен Tools: Partition Scheme: NO OTA бул чоң код үчүн көбүрөөк орунду колдондум

көңүл ачуу

githubдагы код үчүн бул жерди басыңыз

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

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

Бул тутум ESP32 кодуна киргизилген, ошондуктан мен сизге кээ бир ачкыч сөздөрдү, шилтемелерди жана колдонулган куралдарды бере алам:

openstreetmap формасындагы вектордук аймактарды алуу үчүн мыкты кызмат

  • аларды сиңирүү үчүн "ostic" QGis
  • картаңызды жөнөкөйлөтүү үчүн атрибуттар таблицасын издеңиз
  • басып чыгаруу макетин түзүңүз жана картаны svg форматында A3 форматында экспорттоңуз
  • "жылмакай" иллюстратор менен көңүл ачыңыз
  • аны басып чыгаруу

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

Hot Glue Party
Hot Glue Party
Hot Glue Party
Hot Glue Party
Hot Glue Party
Hot Glue Party
Hot Glue Party
Hot Glue Party

ошондуктан мен тыгындын тактайына бекитүүдөн мурун кагаздагы дисплейдин жана дисплейдин тешиктерин кесүүнү сунуштай алам

зым чынында эле жөнөкөй жана жаман мен тарабынан жасалган: P

Менин ширетүү деңгээлим: Көгүчкөн

коддон көрүнүп тургандай, леддер IO казыктарына барат

#define LED_PIN0 14 // si #аныктоо 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 pinout издеңиз

4 -кадам: Даяр продукт

Даяр продукт
Даяр продукт

Ошентип, бул сүрөт эң жакшы эмес, бирок биз дарыяда сел болгондо, мен жакшы видео койом!

Сунушталууда: