جدول المحتويات:

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 خطوات (بالصور)
فيديو: 20 Python Packages That Are Actually Great! 2024, شهر نوفمبر
Anonim
ESP32 Scraper-parser-mailer و Live Mapper
ESP32 Scraper-parser-mailer و Live Mapper
ESP32 Scraper-parser-mailer و Live Mapper
ESP32 Scraper-parser-mailer و Live Mapper
ESP32 Scraper-parser-mailer و Live Mapper
ESP32 Scraper-parser-mailer و Live Mapper

مرحبا بالعالم! هذا هو أول Instructable! أنا ماركو من جروسيتو بإيطاليا ، لست مطورًا ، ولست مهندسًا إلكترونيًا ، لكنني مرشد بيئي في متنزهنا الطبيعي المحلي (منتزه ماريما الطبيعي).

في تعاوني ، نعمل كثيرًا مع جولات الزورق والجولات الطبيعية والهادئة على نهر أومبروني لمراقبة الطيور وقليلًا من الشعور بالاسترخاء.

لكن نهر أومبرون مشهور أيضًا بنوعه المميز من التدفق: من الصيف "صفر" إلى تدفق الخريف والشتاء بعدة آلاف من الأمتار المكعبة من المياه في الساعة.

لهذا السبب ، تتم مراقبة نهر Ombrone باستمرار من خلال خدمة القياس الهيدرومتري الإقليمية الممتازة (SIR) ، مع موقع رائع يجعل البيانات المجمعة متاحة.

الآن نحن ننتظر نهاية الموسم وفيضانات الخريف الأولى لإزالة الرصيف والزوارق …

ولكن عندما نبدأ الحديث عن تجريف الاعراب esp32ing وما إلى ذلك؟ لحظة أخرى

أثناء الإغلاق الإيطالي ، قمت بأول درس طرفة في اردوينو ، رائع … واستمررت في اللعب مع المستشعرات و arduino C. لذا إذا وجدت الكود الخاص بي خامًا أو مليئًا بالفجوات المنطقية غير المنطقية ، ففكر في هذا!

لقد فعلت الكثير من الأشياء فقط لإضاعة الوقت ولكن مع هذا الخطر المستمر للفيضان قررت أن أفعل شيئًا رائعًا: بفضل ESP32 مع عامل شكل اردوينو (Wemos d1 r32) الذي ظللت ملفوفًا لعدة أشهر لأنني اعتقدت أنه "صعب" ، لقد كان لدي الكثير من الرضا:

لقد قمت بعمل مكشطة تقوم بإحضار البيانات وتحليلها من صفحة ويب SIR وعرض المتغيرات التي تم الحصول عليها على شاشة i2c LCD رخيصة ، وكومض تردد سطوع على بعض المصابيح على خريطة واقعية.

لذلك إذا حدث فيضان من الجانب الجبلي ، فسوف يتم تحذيري من زيادة السطوع (تغيير المستوى) وزيادة التردد (تغيير المستوى في ساعة واحدة) لمصابيح LED على الخريطة … ولكن يمكن لـ ESP32 أيضًا إرسال رسائل بريد إلكتروني! فلماذا لا تفعل وظيفة لهذا؟

دعنا نذهب لرؤية الرمز أدناه الآن!

اللوازم

  • اللوحة القائمة على ESP32: لقد استخدمت Wemos d1 r32 لأن لها دبابيس أنثوية ومن السهل التعامل معها
  • المصابيح ، الأحمر هو أكثر "تنبيه مثل"
  • I2C 16x2 LCD iv'e أزرق فقط ولكن الأخضر أكثر أناقة
  • مجلس الفلين رخيصة
  • وقت الليل (اختياري)

الخطوة 1: الكود

الرمز
الرمز
الرمز
الرمز

لقد وجدت عبر الإنترنت دروسًا تعليمية مبهمة فقط تستخدم مواقع خارجية لتحليل البيانات ، لذلك حاولت اختبار قوة نوى esp32 التي تحلل البيانات مباشرة على السبورة … بدون مشاكل!

لذلك إذا قمت بعرض مصدر صفحة SIR ، فيمكنه فهم كيفية عمله: لحسن الحظ ، يستخدمون قيم "مفصولة بفاصلة" لعرض بياناتهم ، لذلك باستخدام هذا الرمز ، أبحث عن محطة هيدروغرافية (رمز TOSnumber) وأحصي عدد الفواصل (كفاصل) يحتوي على القيمة التي أريدها (وقم بتخزينها كمتغير) ، ثم أعد تعيينها على أنها سطوع LED والوقت بالمللي لوميض "مستوى التباين"

يقع جوهر هذه الكاشطة في علامة تبويب

ind = payload.indexOf ("TOSstation_number") ؛ // احصل على الموضع (ind) من حيث تبدأ في عد الفواصل

String my_var = getValue_ind (الحمولة، '،'، 8) ؛ // حيث 8 هي الخلية الثامنة المحددة بفواصل (فاصل)

"الحمولة" هي ما أحصل عليه من الويب تم تنظيفه مسبقًا من "الاقتباسات" و "& nbsp" ؛

ووظيفة getValue_ind الموجودة في علامة التبويب الرئيسية

سلسلة getValue_ind (سلسلة بيانات ، فاصل أحرف ، فهرس int) {

وجدت int = 0 ؛ int strIndex = {0، -1} ، int maxIndex = data.length () - 1 ؛ لـ (int i = ind؛ i <= maxIndex && found <= index؛ i ++) {// من موضع ind if (data.charAt (i) ==eparator || 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 مختلفة

هذا هو أحدث إصدار من الكود (؟) ، هناك الكثير من الجهود ، لذلك سأقدر أي اقتراح!

- لتقويم سطوع الصمام للقيم المنخفضة ، - لوظيفة "الخريطة" لمتغيرات النقطة العائمة - لاستخدام النواة الثانية على ESP32 ، - لفهم كيفية طباعة بريد html من سلسلة مع sprintf قضى الكثير من "الوقت الذي يقضيه في التعلم" ، لذا اقرأ التعليقات على ملفات.ino أو على جيثب!

كإعدادات تحميل ، استخدمت الأدوات: مخطط التقسيم: لا يوجد OTA للحصول على مساحة أكبر لهذا الرمز الضخم

استمتع

انقر هنا للحصول على الكود على جيثب

الخطوة الثانية: الخريطة

الخريطة
الخريطة
الخريطة
الخريطة
الخريطة
الخريطة

يتم تحفيز هذا المعلم على رمز ESP32 حتى أتمكن من إعطائك بعض الكلمات الرئيسية والروابط والأدوات المستخدمة فقط:

الخدمة الممتازة لاستخراج المناطق المتجهة من openstreetmap

  • QGis "ostic" لاستيعابها
  • البحث عن جدول البيانات لتبسيط الخريطة الخاصة بك
  • قم بإنشاء تخطيط طباعة وتصدير الخريطة بتنسيق svg على تنسيق ورق A3
  • استمتع مع الرسام "الأكثر سلاسة"
  • اطبعها

الخطوة الثالثة: حفلة الغراء الساخن

حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن
حفلة الغراء الساخن

لذلك يمكنني أن أقترح قطع ثقوب المصباح والعرض على الورق قبل تثبيته على لوح الفلين

الأسلاك بسيطة حقًا ويتم تنفيذها بشكل سيئ من قبلي: 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: المنتج النهائي

المنتج المنتهي
المنتج المنتهي

لذلك هذه الصورة ليست الأفضل ، ولكن عندما يكون لدينا بعض فيضان النهر ، سأضع مقطع فيديو رائعًا!

موصى به: