תוכן עניינים:

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 שלבים (עם תמונות)
וִידֵאוֹ: The HARDEST part about programming 🤦‍♂️ #code #programming #technology #tech #software #developer 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

שלום עולם! זה ההנחיה הראשונה שלי! אני מרקו מגרוסטו איטליה, אני לא מפתח, אני לא מהנדס אלקטרוניקה אבל אני מדריך סביבתי בפארק הטבע המקומי שלנו (פארק הטבע Maremma).

בקואופרטיב שלי אנחנו עובדים הרבה עם טיולי קאנו, טיולים נטורליסטיים ורגועים בנהר אומברון לצפייה בציפורים ומרגיע קצת חוש.

אבל נהר אומברון מפורסם גם בזכות זרימת המים האופיינית לו: מהקיץ "אפס" ועד זרימת סתיו-חורף של כמה אלפי מטרים מעוקבים של מים לשעה.

מסיבה זו, נהר אומברון נמצא במעקב מתמיד על ידי השירות ההידרומטרי האזורי המעולה (SIR), עם אתר פנטסטי שהופך את הנתונים שנאספים לזמינים.

כעת אנו מחכים לסוף העונה ולשיטפונות הסתיו הראשונים להסרת הרציף והקאנו …

אבל כשאנחנו מתחילים לדבר על גרידת ניתוח esp32ing וכו '? עוד רגע אחד

במהלך הנעילה האיטלקית עשיתי את השיעור הראשון של מבזק ארדואינו, מגניב … והמשכתי לשחק עם חיישנים וארדואינו C. אז אם אתה מוצא את הקוד שלי גס או מלא בפערים הגיוניים שטויות, שקול זאת!

עשיתי הרבה דברים רק כדי לבזבז זמן אבל עם הסיכון המתמיד הזה להצפות החלטתי לעשות משהו מגניב: בזכות ESP32 עם גורם צורה של ארדואינו (Wemos d1 r32) ששמרתי עטוף במשך חודשים כי חשבתי "קשה", באמת היו לי הרבה סיפוקים:

עשיתי מגרד שמביא ונתח נתונים מדף אינטרנט של SIR ומציג את המשתנים שהתקבלו ב- LCD i2c זול, וכמהבהב תדר בהירות בכמה נוריות במפה מציאותית.

אז אם תגיע הצפה מצד ההר אני אזהיר מהבהירות הגוברת (שינוי הרמה) והתדירות הגוברת (שינוי הרמה תוך שעה) של הנורות במפה … אך ה- ESP32 יכול לשלוח גם מיילים! אז למה שלא תעשה פונקציה בשביל זה?

בוא נלך לראות את הקוד למטה עכשיו!

אספקה

  • לוח מבוסס ESP32: השתמשתי ב- Wemos d1 r32 כי יש לו סיכות נקבות וקל יותר לטפל בו
  • leds, אדום הוא יותר "דרוך כמו"
  • I2C 16x2 LCD הוא רק כחול אך הירוק מסוגנן יותר
  • לוח שעם זול
  • שעת לילה (אופציונלי)

שלב 1: הקוד

הקוד
הקוד
הקוד
הקוד

באינטרנט מצאתי רק הדרכות אדיות המשתמשות באתרים חיצוניים כדי לנתח נתונים, אז ניסיתי לבדוק את העוצמה של ליבות esp32 המנתחות את הנתונים ישירות על הלוח … ללא בעיות!

כך שאם אתה מציג את מקור דף ה- SIR יכול להבין כיצד הוא פועל: למרבה המזל הם משתמשים בערכי "פסיק מופרד כמו" להצגת הנתונים שלהם, כך שעם קוד זה אני מחפש תחנה הידרוגרפית (קוד TOSnumber) וסופר את מספר הפסיקים (כמפריד) המכילים את הערך שאני רוצה (ומאחסנים אותו כמשתנה), ולאחר מכן מעבירים אותו מחדש כבהירות וזמן מוביל באלפיות עבור מהבהב "רמת וריאציה"

הליבה של מגרד זה נמצאת בכרטיסייה

ind = payload.indexOf ("TOSstation_number"); // קבל את המיקום (ind) מהיכן להתחיל לספור פסיקים

מחרוזת my_var = getValue_ind (מטען, ',', 8); // כאשר 8 הוא התא השמיני המוגדר על ידי פסיקים (מפריד)

"מטען" הוא מה שאני מקבל מהאינטרנט שניקה בעבר מ"ציטוטים "ו-" & nbsp ";

והפונקציה getValue_ind הנמצאת בכרטיסייה הראשית

String getValue_ind (נתוני מחרוזות, מפריד תווים, אינדקס int) {

int נמצא = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1; for (int i = ind; i <= maxIndex && found <= index; i ++) {// from ind position if (data.charAt (i) == מפריד || i == maxIndex) {נמצא ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i + 1: i; }} נמצאה החזרה> אינדקס? data.substring (strIndex [0], strIndex [1]): ""; }

מותאם מתוך

הקוד מבקש את הדף כל 15 דקות, הוא בערך 44Kb, אני לא חושב שהוא עומס גדול על השרתים ועל ה- ESP32.. כדי להימנע מדי גלילה חילקתי את התוכנית בפונקציות שונות, קרא את ההערות

כאן הדבקת הקוד היא באמת בלגן … שמתי את קבצי ה-ino ישירות

השתמשתי בתכונת הכרטיסיות של arduino IDE כך שיש לי קבצי.ino שונים

זו הגרסה האחרונה של הקוד (?), יש הרבה מאמצים, אז אני אעריך כל הצעה!

- ליישור בהירות הלדים לערכים נמוכים, - לפונקציית "מפה" למשתנים של נקודה צפה - לשימוש בגרעין השני ב- ESP32, - להבנת כיצד להדפיס דואר HTML מחרוזת עם sprintfI יש ביליתי הרבה "זמן חנונים" אמיתי אז קרא על ההערות על קבצי.ino או על github!

כהגדרות העלאה השתמשתי בכלים: תוכנית מחיצות: אין OTA כדי שיהיה לי יותר מקום לקוד הענק הזה

תעשה חיים

לחץ כאן לקוד ב- github

שלב 2: המפה

המפה
המפה
המפה
המפה
המפה
המפה

תור זה כלול בקוד ESP32, כך שאוכל לתת לך רק כמה מילות מפתח, קישורים וכלים המשמשים:

השירות המצוין לחלץ אזורים וקטוריאליים מפתחי openstreetmap

  • את ה- QGis ה"אוסטיים "לעיכולם
  • חפש טבלת תכונות לפשט את המפה שלך
  • צור פריסת הדפסה וייצא את המפה בפורמט svg בפורמט נייר A3
  • ליהנות עם המאייר ה"חלק יותר"
  • תדפיס את זה

שלב 3: מסיבת הדבק החם

מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם
מסיבת הדבק החם

כדי שאוכל להציע לחתוך את החורים של הלד והתצוגה על הנייר לפני שתתקן אותו על לוח הפקק

החיווט ממש פשוט ונעשה על ידי רע: P

רמת ההלחמה שלי: יונה

כפי שאתה יכול לראות מהקוד הלדים עוברים לסיכות IO

#define LED_PIN0 14 // si #define LED_PIN1 27 // buon #define LED_PIN2 16 // sass #define LED_PIN3 17 // tur #define LED_PIN4 25 // ist #define LED_PIN5 26 // berr

חפש pinout ESP32 כדי להבין

שלב 4: המוצר המוגמר

המוצר המוגמר
המוצר המוגמר

אז התמונה הזו לא הכי טובה, אבל כשיהיה לנו שיטפון נהר אעלה סרטון נחמד!

מוּמלָץ: