جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
مرحبا بالعالم! هذا هو أول 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: المنتج النهائي
لذلك هذه الصورة ليست الأفضل ، ولكن عندما يكون لدينا بعض فيضان النهر ، سأضع مقطع فيديو رائعًا!