Мазмұны:
Бейне: ESP32 скрепер-талдаушы-жіберуші және Live Mapper: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:22
Сәлем Әлем! Бұл менің бірінші нұсқаулық! Мен Гроссето Италиядан Марко, мен әзірлеуші емеспін, электронды инженер емеспін, бірақ мен жергілікті табиғи саябақта (Маремма табиғи паркі) экологиялық бағыттаушымын.
Менің кооперативте біз каноэ -турлармен, Омброне өзенінде натуралистік және тыныш турлармен көп жұмыс жасаймыз, олар құстарды бақылап, біршама босаңсытады.
Бірақ Омброне өзені ағынның өзіндік түрімен де танымал: жаздан «нөлге» дейін күзгі-қысқы ағынмен сағатына бірнеше мың текше метр су.
Осы себепті, Омброне өзенін керемет аймақтық гидрометриялық қызмет (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 -қадам: Дайын өнім
сондықтан бұл фото ең жақсы емес, бірақ бізде өзен тасқыны болғанда, мен жақсы видео қоямын!
Ұсынылған:
BBC Micro: бит және Scratch - интерактивті руль және жүргізуші ойыны: 5 қадам (суреттермен)
BBC Micro: бит және Scratch - интерактивті руль және көлік жүргізу ойыны: Менің осы аптадағы тапсырмаларымның бірі - біз жазған Scratch бағдарламасымен интерфейс жасау үшін BBC Micro: bit пайдалану. Мен бұл ThreadBoard тақтасын ендірілген жүйені құрудың тамаша мүмкіндігі деп ойладым! Менің сызатқа шабытым
ScanUp NFC оқу құралы/жазушысы және зағиптарға, нашар көретіндерге және басқа адамдарға арналған дыбыс жазғыш: 4 қадам (суреттермен)
ScanUp NFC Reader/жазушы және зағиптарға, нашар көретіндерге және басқаларға арналған аудиожазғыш: Мен өнеркәсіптік дизайнды оқимын, бұл жоба менің семестрімнің жұмысы. Мақсаты - көру қабілеті нашар және зағип жандарға SD картасына WAV форматында дыбыс жазуға және NFC белгісімен қоңырау шалуға мүмкіндік беретін құрылғы арқылы қолдау көрсету. Сонымен
Bluetooth LE және RaspberryPi көмегімен температураны бақылау және жазу: 9 қадам (суреттермен)
Bluetooth LE және RaspberryPi көмегімен температураны бақылау және тіркеу: Бұл нұсқаулық Blue RADIO (BLEHome) мен RaspberryPi 3B Bluetooth LE сенсорлы қатесі бар температуралық бақылаудың көп түйінді жүйесін қалай қосуға болатындығы туралы. Bluetooth LE стандартының арқасында. қазір қол жетімді
RuuviTag және PiZero W және Blinkt! Bluetooth маякқа негізделген термометр: 3 қадам (суреттермен)
RuuviTag және PiZero W және Blinkt! Bluetooth -маякқа негізделген термометр: Бұл нұсқаулықта RuuviTag -тан Raspi Pi Zero W көмегімен Bluetooth көмегімен температура мен ылғалдылық туралы ақпаратты оқуға және мәндерді екілік сандарда Pimoroni blinkt -те көрсетуге болатын тәсіл сипатталған! pHAT.Немесе қысқаша айтқанда: мемлекетті қалай құру керек
ESP-12E және ESP-12F бағдарламалау және әзірлеу тақтасы: 3 қадам (суреттермен)
ESP-12E және ESP-12F бағдарламалау және әзірлеу тақтасы: Бұл тақтаның міндеті қарапайым болды: ESP-12E және ESP-12F модульдерін NodeMCU тақталары сияқты оңай бағдарламалай білу (яғни түймелерді басудың қажеті жоқ). Қолданылатын IO -ға кіруге болатын нанға арналған түйреуіштер бар. Сериялық тасымалдау үшін бөлек USB қолданыңыз