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

פריצת Xiaomi ESP32 - קבל נתונים באופן אלחוטי: 6 שלבים (עם תמונות)
פריצת Xiaomi ESP32 - קבל נתונים באופן אלחוטי: 6 שלבים (עם תמונות)

וִידֵאוֹ: פריצת Xiaomi ESP32 - קבל נתונים באופן אלחוטי: 6 שלבים (עם תמונות)

וִידֵאוֹ: פריצת Xiaomi ESP32 - קבל נתונים באופן אלחוטי: 6 שלבים (עם תמונות)
וִידֵאוֹ: Sonoff Ihost - Центр управления умным домом без доступа к интернет с Zigbee и Matter 2024, יולי
Anonim
Image
Image
גרסת Xiaomi ESP32 - קבל נתונים באופן אלחוטי
גרסת Xiaomi ESP32 - קבל נתונים באופן אלחוטי

חברים יקרים ברוכים הבאים לעוד הוראה! היום נלמד כיצד להשיג את הנתונים שצג הטמפרטורה והלחות של שיאומי זה משדר באמצעות פונקציונליות ה- Bluetooth של לוח ESP32.

כפי שאתה יכול לראות, אני משתמש בלוח ESP32 ותצוגת TFT צבעונית בגודל 2.8 אינץ '. בתצוגה אנו מציגים את הטמפרטורה והלחות. הדבר המגניב הוא שלא חיברתי חיישנים ללוח ESP32. אני מקבל את הטמפרטורה והלחות באופן אלחוטי מצג הטמפרטורה והלחות המסחרי הזה של Xiaomi. כמה מגניב זה! התצוגה במכשיר ה- Xiaomi מתעדכנת כל שנייה אך אני מעדכן את המסך המחובר ללוח ESP32 כל 10 שניות כדי לחסוך בחשמל במכשיר ה- Xiaomi.

חיישן הטמפרטורה והלחות המגניב הזה של Xiaomi מציג את הטמפרטורה והלחות בתצוגת ה- LCD שלו והוא יכול גם להעביר את הנתונים למכשירי Xiaomi או לאפליקציות אחרות באמצעות פרוטוקול Bluetooth. המכשירים משתמשים בסוללת AAA יחידה ומאחר ומדובר במוצר מסחרי, חיי הסוללה של המכשיר מצוינים. הוא יכול להחזיק על סוללת AAA אחת למשך חודשים, דבר שאיננו יכולים להשיג בפרויקטים של עשה זאת בעצמנו. לפני כמה שבועות גיליתי שכמה חבר'ה חכמים הצליחו להנדס לאחור את הפרוטוקול בו משתמשת שיאומי להעברת הנתונים מהחיישן והצליחו להשיג נתונים אלה באמצעות לוח ESP32. אז ניסיתי את זה, וכפי שאתה יכול לראות זה עובד!

שלב 1: קבל את כל החלקים

קבל את כל החלקים
קבל את כל החלקים

כעת נראה כיצד לבנות את הפרויקט הזה. אנו זקוקים ללוח ESP32, תצוגת ILI9341 בגודל 2.8 אינץ ', חיישן הטמפרטורה והלחות של Xiaomi, לוח לחם וכמה חוטים.

להלן כמה קישורים לחלקים בהם אשתמש במדריך זה.

  • ESP32 ▶
  • 2.8 אינץ 'תצוגה ▶
  • חיישן שיאומי ▶
  • לוח לחם ▶
  • חוטים ▶
  • מד USB ▶
  • Powerbank ▶

שלב 2: לוח ESP32

Image
Image
לוח ESP32
לוח ESP32

אם אינך מכיר אותו, שבב ESP32 הוא ממשיכו של שבב ה- ESP8266 הפופולרי שהשתמשנו בו פעמים רבות בעבר. ה- ESP32 הוא חיה! הוא מציע שתי 32 ליבות עיבוד הפועלות ב -160 מגה -הרץ, כמות עצומה של זיכרון, WiFi, בלוטות 'ותכונות רבות אחרות בעלות של כ -7 $! דברים מדהימים!

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

שלב 3: תצוגת TFT בגודל 2.8 אינץ 'עבור Arduino ו- ESP32

Image
Image
2.8
2.8
2.8
2.8
2.8
2.8

המסך גדול, והוא מציע רזולוציה של 320x240 פיקסלים. בהשוואה לאחד הצגים האהובים עלי, תצוגת TFT הצבעונית בגודל 1.8 אינץ ', אתה יכול לראות אותה הרבה יותר גדולה. המסך מציע גם פונקציונליות מגע המהווה בונוס נוסף וחריץ לכרטיס SD מאחור. הוא משתמש בממשק SPI, כך שהחיבור עם הלוח Arduino או לוח ESP32 הוא פשוט מאוד. עלות התצוגה נמוכה יחסית; זה עולה בסביבות 11 $ וזה לדעתי מחיר הוגן למה שמציעה תצוגה זו.

דבר נוסף בדומה לתצוגה זו הוא שהיא אינה מגיעה כמגן כמו צג המגע בו השתמשנו עד כה. כך נוכל לחבר את המסך לכל לוח, מיני Arduino Pro, STM32, ESP8266 ו- ESP32. זה מאוד חשוב מכיוון שיש לנו כעת תצוגה בעלות נמוכה שנוכל להשתמש בה עם כל לוח. עד כה, תצוגת המגע היחידה שיכולנו להשתמש בה עם לוחות אלה היו תצוגות Nextion שהן יקרות יותר, ולמען האמת למרות שאני משתמש בהן מדי פעם, אני לא ממש אוהב אותן.

שלב 4: חיבור הצג

חיבור הצג
חיבור הצג
חיבור הצג
חיבור הצג
חיבור הצג
חיבור הצג
חיבור הצג
חיבור הצג

ראשית, עלינו לחבר את לוח ESP32 לתצוגת 2.8 אינץ '. תוכל למצוא את הסכימה המצורפת ל- Instructable. אני משתמש בלוח DOIT ESP32 הזה שיצא לפני כשנתיים. גרסה זו של הלוח אינה זמינה עוד מכיוון שיש כעת גרסה חדשה יותר של אותה אשר מציעה יותר סיכות, זו. הסיבה היחידה שאני משתמש בגרסה הישנה של הלוח היא שסיכת ה- GND של הלוח הממוקמת ליד סיכות ה- SPI, באותו צד של הלוח, מה שהופך אותו לידידותי ללוח הלחם.

לאחר חיבור התצוגה ללוח נוכל להפעיל את הפרויקט. לאחר מספר שניות אנו מקבלים נתונים חיים ממכשיר ה- Xiaomi הסמוך. מכיוון שהמכשיר משתמש ב- Bluetooth 4 הטווח שלו די טוב. אנו יכולים בקלות לקבל את הנתונים שמכשיר זה משדר ממרחקים של עד 10 מטרים או יותר! אנו יכולים גם לקבל את רמת הסוללה של מכשיר ה- Xiaomi אך אינני מציג ערך זה על המסך.

אם נשתמש במד USB זה, נוכל לראות שהציור הנוכחי של הפרויקט הזה הוא בסביבות 120-150 mA באמצעות הצג הגדול הזה. אם נשתמש בתצוגת נייר אלקטרוני, הכנס את לוח ESP32 למצב שינה עמוק וקבל נתונים מהחיישן מדי כמה דקות כדי שנוכל להפוך את הפרויקט לידידותי לסוללה. אנסה זאת בסרטון עתידי. פרויקט זה הוא רק הדגמה לכך שאנו יכולים לקבל נתונים מהמכשיר הזה באופן אלחוטי.

שלב 5: קוד הפרויקט

קוד הפרויקט
קוד הפרויקט

בואו נראה את הצד התוכנתי של הפרויקט.

קוד הפרויקט מבוסס על פרויקט זה:

השתמשתי בקוד שמקבל את הנתונים ממכשיר ה- Xiaomi ובניתי איתו פרויקט עצמאי.

במשתנה זה, אנו מצהירים כי עלינו לקבל נתונים טריים כל 10 שניות.

#הגדר SCAN_TIME 10 // שניות

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

METRIC בוליאני = true; // הגדר נכון עבור מערכת מטרית; שקר לאימפריאלי

בפונקציית ההתקנה אנו מאתחלים את התצוגה ואת מודול ה- Bluetooth של לוח ESP32 ולאחר מכן אנו מציירים את ממשק המשתמש על המסך.

הגדרת בטל () {

WRITE_PERI_REG (RTC_CNTL_BROWN_OUT_REG, 0); // השבת את גלאי ההשחמה

tft.begin ();

Serial.begin (115200);

Serial.println ("ESP32 XIAOMI DISPLAY"); initBluetooth ();

drawUI ();

}

לאחר מכן, אנו מחפשים מכשירי Bluetooth בקרבת מקום כל 10 שניות. איננו יוצרים חיבור למכשיר ה- Xiaomi מכיוון שאין בו צורך. אנו סורקים רק ציוד היקפי באנרגיה נמוכה בקרבת Bluetooth ובודקים את מנות הפרסומת המשודרות.

לולאת void () {char printLog [256]; Serial.printf ("התחל סריקת BLE למשך %d שניות … / n", SCAN_TIME); BLEScanResults foundDevices = pBLEScan-> התחל (SCAN_TIME); int count = foundDevices.getCount (); printf ("נמצאו ספירת מכשירים: %d / n", count);

עיכוב (100);

}

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

שלב 6: מחשבות ושיפורים אחרונים

מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים
מחשבות ושיפורים אחרונים

כעת, כאשר אנו יודעים כיצד לקבל נתונים באופן אלחוטי מחיישן זה, אנו יכולים לבנות תחנת מזג אוויר מלאה המונעת על ידי סוללות. מכיוון שמכשיר Xiaomi זה הוא מוצר מסחרי, הוא מציע חיי סוללה נהדרים. למרבה הצער, עדיין איננו יכולים להשיג צריכת סוללה דומה בפרויקטים שלנו. לכן, אני מתכוון להשתמש בחיישן זה כחיישן חיצוני לפרויקט תחנת מזג אוויר אשר ישתמש בתצוגת נייר אלקטרוני גדולה. זה יהיה מגניב. כמו כן, אני הולך לחפש מכשירים אחרים התומכים ב- Xiaomi Bluetooth שנוכל לפרוץ להם בצורה דומה. המשך לעקוב.

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

מוּמלָץ: