Мазмуну:
Video: ESP32 Скрепер-талдоочу-почтачы жана Live Mapper: 4 кадам (Сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:36
Салам дүйнө! Бул менин биринчи көрсөтмөм! Мен Италиянын Гроссето шаарынан Марко болом, мен иштеп чыгуучу эмесмин, электрондук инженер эмесмин, бирок биздин жергиликтүү жаратылыш паркында (Маремма жаратылыш паркы) экологиялык жетекчи болом.
Менин кооперативде биз каноэ турлары, канаттууларды байкоо жана бир аз эс алуу үчүн 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 -кадам: Ысык желим партиясы
ошондуктан мен тыгындын тактайына бекитүүдөн мурун кагаздагы дисплейдин жана дисплейдин тешиктерин кесүүнү сунуштай алам
зым чынында эле жөнөкөй жана жаман мен тарабынан жасалган: 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 -кадам: Даяр продукт
Ошентип, бул сүрөт эң жакшы эмес, бирок биз дарыяда сел болгондо, мен жакшы видео койом!
Сунушталууда:
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөө жана жаздыруу: 9 кадам (сүрөттөр менен)
Bluetooth LE жана RaspberryPi менен температураны көзөмөлдөп жана жаздырыңыз: Бул көрсөтмө Blue Lios (BLEHome) жана RaspberryPi 3B Bluetooth LE сенсорунун катасы менен көп түйүндүү температураны көзөмөлдөө тутумун кантип чогултуу жөнүндө. Bluetooth LE стандартынын өнүгүшүнө рахмат. азыр жеткиликтүү
Резисторлор жана конденсаторлор жана транзисторлор менен DIY аба рейддик сиренасы: 6 кадам (сүрөттөр менен)
Резисторлор жана конденсаторлор жана транзисторлор менен DIY аба рейддик сиренасы: Бул жеткиликтүү Air Raid Siren DIY долбоору жөн эле резисторлордон жана конденсаторлордон жана транзисторлордон турган өз билимиңизди байыта турган изилдөө үчүн ылайыктуу. Ал балдар үчүн улуттук коргонуу билимине ылайыктуу
Программалануучу светодиоддор жана ыңгайлаштырылган база жана логотип менен 2D Art: 5 кадам (сүрөттөр менен)
Программалануучу светодиоддор жана ыңгайлаштырылуучу база жана логотип менен 2D Art: Насаатка кош келиңиз! Бүгүн мен сизге 2D Art Projectти логотип менен жана сиз тандаган жалпы дизайн менен кантип жасоону көрсөтөм. Мен бул долбоорду жасадым, анткени ал адамдарга программалоо, зым тартуу, 3D моделдөө жана башка көптөгөн көндүмдөрдү үйрөтө алат. Бул
WiFi жана IR Remote жана Android колдонмосун колдонуп NodeMCU жана IR алуучу менен 8 релелик көзөмөл: 5 кадам (сүрөттөр менен)
WiFi жана IR Remote жана Android тиркемесин колдонуп NodeMCU жана IR алуучу менен 8 реле көзөмөлү: wifi жана ир алыскы жана андроид колдонмосу аркылуу nodemcu жана IR кабыл алгычты колдонуп 8 реле өчүргүчтөрүн көзөмөлдөө БУЛ ЖЕРДЕ
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: Киришүү: Бул Ардуино тактасын, Sensor (DHT11), Windows компьютери жана Processing (бекер жүктөлүүчү) программасын колдонуп, Температураны, Нымдуулукту санариптик жана тилке графасынын формасы, убакытты жана күндү көрсөтүү жана эсептөө убактысын иштетүү