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

פריצה לדלת המוסך שלך: 5 שלבים
פריצה לדלת המוסך שלך: 5 שלבים

וִידֵאוֹ: פריצה לדלת המוסך שלך: 5 שלבים

וִידֵאוֹ: פריצה לדלת המוסך שלך: 5 שלבים
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, יולי
Anonim
לפרוץ את דלת המוסך שלך
לפרוץ את דלת המוסך שלך
לפרוץ את דלת המוסך שלך
לפרוץ את דלת המוסך שלך
לפרוץ את דלת המוסך שלך
לפרוץ את דלת המוסך שלך

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

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

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

שלב 1: ציוד

ציוד
ציוד
ציוד
ציוד

שפות בשימוש: C ++, MATLAB, Typescript, C, html.

ידע בסיסי באלקטרוניקה דיגיטלית ותקשורת/עיבוד אותות.

עלות: פחות מ 35 $.

דרישות חומרה:

- NooELEC NESDR: לכידת הנתונים. מודול זול מאוד זה מבצע הדגמה דיגיטלית, ומכאן הניידות הגבוהה שלו. דגם זה תואם ל- MATLAB. ($ 18.95)

www.nooelec.com/store/sdr/sdr-receivers/nes…

- Wemos Lolin32 lite: esp32 זה הוא מיקרו -בקר זול, מצויד ב- Wifi ו- Bluetooth. לא נשתמש ב- Wifi ביישום זה, אך ניתן להעלות על הדעת זאת במידה רבה. ($ 4.74)

wiki.wemos.cc/products:lolin32:lolin32_lit…

- CDSENET cc1101: משדר רדיו זה נותן לנו גמישות קיצונית, החל מתדר הספק הנבחר ועד סוג האפנון. ($ 2.63)

www.aliexpress.com/item/2PC-Lot-E07-868MS1…

- חוטים, כותרות, ציוד ריתוך, סוללת ליפו 3.7V לאוטונומיה, אולי אוסצילוסקופ ו/או מנתח לוגי לניפוי באגים, ואגב, סמארטפון …

דרישות תוכנה:

- MATLAB/Simulink: לכידת הנתונים. ניתן להשתמש בתוכנות חלופיות אחרות, כמו Audacity להדמיית נתונים. (רישיון)

fr.mathworks.com/products.html?s_tid=gn_ps

- שרשרת כלים esp-idf: זה ישמש לתכנות ה- esp32. ניתן להשתמש גם ברעיון הארדואינו, אך הוא אינו מאפשר חופש רב כמו מה שנשתמש בו. (חינם)

esp-idf.readthedocs.io/en/latest/get-starte…

- TI SmartRF Studio: זה יעזור לנו להגדיר את רשימות cc1101, בהתאם למפרט שלנו. (חינם)

www.ti.com/tool/SMARTRFTM-STUDIO

- יונית: לבניית האפליקציה. אתה יכול לבחור את האפשרות לבנות אפליקציות מקוריות, אך יונית מאפשרת לנו להריץ את האפליקציה שלנו במכשירי Android ו- IOS כאחד, עם קוד יחיד. הביצועים אינם מבוקשים בענייננו. (חינם)

ionicframework.com/

- הרעיון האהוב עליך…

שלב 2: ריגול השלט הרחוק

ריגול השלט הרחוק
ריגול השלט הרחוק
ריגול השלט הרחוק
ריגול השלט הרחוק
ריגול השלט הרחוק
ריגול השלט הרחוק

נתחיל בהתבוננות בנתונים שהפקודות של השלט מייצרות. לשם כך נשתמש בדונגל rtl-sdr ואנטנה:

fr.mathworks.com/hardware-support/rtl-sdr….

על ידי קישור הקישור הזה, תמצא את חבילת MATLAB, כמו גם ספר בחינם המסביר את כל התנאים וההסברים שלהם. לסיכום מה שמעסיק אותנו, נתוני המעבר הם בצורה של אות IQ: נתוני שלב "אני", בשילוב נתוני רבע "Q". שיטה זו מקלה על תקשורת. יהיה לנו עניין רק לקבל את האות בשלב. כעת נאסוף את המידע הפיזי והדיגיטלי בשלט הרחוק. אם תוכל למצוא תיעוד עליו, יהיה קל יותר. לא מצאתי. כדי שנוכל להתבונן באופן זמני על האות, עלינו לדעת תחילה מהו נושא התדרים של האות הנפלט. נשתמש בדוגמה המצורפת לתיעוד החבילה "ניתוח ספקטרלי עם רדיו RTL-SDR", כדי לדעת בדיוק באיזו תדר אנו צופים עוצמת שיא כאשר אנו שולחים פקודה. במקרה שלי הוא 868.22 מגה -הרץ. התדרים ה"סטנדרטיים "ליישומים מסוג זה הם בסביבות 868 מגה -הרץ.

עם אינדיקציות אלה, נוכל לכתוב קוד MATLAB לשחזור הנתונים. זו מצורפת בתמונה והגיבה. התוצאה מאפשרת לנו למצוא את סוג האפנון: על ידי אחזור המידע הגולמי, הצגת התוצאה רק לאחר ששחזר את החלק האמיתי של האות, אנו יכולים להסיק כי מדובר ב- ASK / OOK וויסות. ואכן, אנו מבחינים כי התדירות אינה משתנה, אולם לאות יש שתי אמפליטודות בלבד: null וקבוע. שאר הקוד מאפשר לנו לשחזר את מעטפת האות שהתקבל, שקל יותר לקרוא את הכרת החשמלית. לאחר הצגתו, אנו יכולים לקבוע את אפנון פס הבסיס: זהו קידוד מנצ'סטר (ראו תמונה מצורפת). אנו יכולים גם להסיק את קצב השידור (סמלים לשנייה). כל המידע הזה שנאסף, נוכל לדעת את מסגרת הנתונים. במקרה שלי, הבייטים שנמצאו הם: 249, 39, 75, 178, 45, 200 וחוזרים על עצמם מספר פעמים, כדי להבטיח שהפקודה תתקבל היטב. למרבה המזל, הקוד אינו מתגלגל, מסגרת הנתונים תמיד זהה.

שלב 3: שלח את אותן מסגרות הנתונים

שלח את אותן מסגרות הנתונים
שלח את אותן מסגרות הנתונים
שלח את אותן מסגרות הנתונים
שלח את אותן מסגרות הנתונים
שלח את אותן מסגרות הנתונים
שלח את אותן מסגרות הנתונים

מכשירי הטקסס אינסטרומנטס cc1101 כל כך גמישים שעדיין תשיג את המטרה שלך, גם אם ההגדרות שמצאת בשלב הקודם שונות לחלוטין משלי. אכן, תוכלו לראות בתיעוד, עמוד 2 (https://www.ti.com/lit/ds/symlink/cc1101.pdf) שהוא מאפשר לבצע אפנון NRZ, מנצ'סטר, FSK, ASK/OOK, כדי להגיע התדרים סביב 433 מגה -הרץ או 868 מגה -הרץ, והרבה דברים אחרים. אני ממליץ לך לקרוא את התיעוד כדי להכיר את המודול הזה.

בקישור זה תמצא כדוגמה את עבודתו של לובוריס בנוגע לבניית פונקציות באמצעות מודול זה:

github.com/loboris/ESP32_CC1101/tree/maste…

אנו הולכים לכתוב את הקוד שלנו ל- esp32 בעזרת שרשרת הכלים esp-idf (ראה קישורים של השלב הראשון). אתה יכול להוסיף את קבצי הקישור בספריית המשנה של הרכיבים של הפרויקט שלך. כדי להגדיר כראוי את cc1101 שלנו, נצטרך לתקן את הרשומות שלו. טקסס אינסטרומנטס מספקת לנו תוכנה שנותנת לנו את ערך הרשומות בהתאם לתצורה שלנו: SmartRF Studio.

מבחינתי, אני מציין לתוכנה שאני רוצה קידוד מנצ'סטר, שתדר הספק שלי הוא 868.22 מגה -הרץ, שסוג האפנון שלי הוא ASK / OOK … נתתי לך להזין את הפרמטרים שלך. במקרה שבו קידוד פס הבסיס שלך אינו זמין, תוכל לשקול קידוד NRZ, על ידי הגדלה נכונה של קצב השידור והתאמת הנתונים.

לאחר שהגדרת את הערכים שלך, יש לך כמה אפשרויות הנוגעות לשימוש במודול: אתה יכול להשתמש בפונקציות שקישרתי אליך, או במה שעשיתי, לקחת רק השראה מהקוד הזה, כדי להגדיר הכל בצורה יותר דרך אכזרית (ראו תמונות מצורפות), והשתמשו רק במה שאנו צריכים.

מכיוון ששבב cc1101 מתקשר על ידי SPI, תמצא בקישור קוד הדוגמא את קובץ הכותרת "spi_master_lobo.h", המכיל פונקציות קלות יותר לשימוש ב- SPI מאשר אם היית צריך להשתמש בו רק עם כלי הכלים. אני מצטרף אליך לצילום התוכנית של תקשורת CC1101 ב- SPI, התמונה צולמה מעמוד 30 בגיליון הנתונים של CC1101. ארבעת החוטים המוצגים הם: CS (Chip Select או SS: Slave Select, או כאן CSn), CLK (או SCLK, השעון, המסופק על ידי המאסטר), MISO (או SO, Master In Slave Out) ו- MOSI (או SI, Master Out Slave In). במקרה שלנו, המאסטר הוא ה- ESP32, והעבד הוא ה- CC1101. תקשורת מתחילה כאשר סיכת ה- CS נמוכה, באופן כללי.

אל תשכח להפעיל באפשרויות המהדר של menuconfig את החריגים C ++ להרכבה.

שלב 4: התחבר למערכת

התחבר למערכת
התחבר למערכת
התחבר למערכת
התחבר למערכת
התחבר למערכת
התחבר למערכת

אם הקוד שלך עובד, עשית את הדבר החיוני. בחלק זה נתמקד כיצד ליצור אפליקציית טלפון המחוברת למערכת. הפתרון המעניין ביותר הוא חיבור באמצעות בלוטות ', מכיוון שהוא מאפשר שימוש בפרוטוקול בעל צריכת חשמל נמוכה: Bluetooth Low Energy (BLE). פרופיל ההיררכיה מוצג בשרטוט המצורף: אנו נקרא ונכתוב את הפקודה במאפיין של שירות. וכמובן, esp32 והסמארטפון שלנו מצוידים ב- bluetooth.

שלב זה מחולק לשני חלקים: החלק esp32 וחלק האפליקציה. התמונה המצורפת מציגה ומסבירה את החלקים העיקריים של הקודים.

תוכל ליצור את UUID שלך על ידי ביצוע הקישור הבא:

www.uuidgenerator.net/

אלה המזהים שיספקו גישה לשירותים ולתכונות של פרופיל BLE שלנו.

בנוגע לקוד esp32 BLE, קולבן עשה עבודה נהדרת והפך את כל הפונקציות C ++ ברמה גבוהה לתואמות:

github.com/nkolban/esp32-snippets/tree/mas…

אתה יכול לשים קבצים אלה בספריית המשנה של הרכיבים. אחרת תצטרך יותר זמן כדי להבין כיצד להשתמש ב- BLE עם שרשרת הכלים esp-idf.

לסיכום של מה שתראה בקוד, אנו יוצרים שרת, שירות ומאפיין, עם ה- UUID המשויכים, ואנו מוסיפים מחלקת התקשרות מוגדרת מחדש, עם שיטה המשויכת לכתיבה: כאשר אנו מקבלים את "O" תו, אנו שולחים פקודת כתיבה ל- cc1101.

כמובן, אל תשכח להפעיל Bluetooth בתצורת הרכיבים של Menuconfig.

לגבי חלק האפליקציה, נשתמש ב- Framework Ionic. תוכל למצוא מידע נוסף אודותיו בקישור המוצג בשלב הראשון, ולפרטים נוספים אודות אופן השימוש ב- BLE עם יונית:

ionicframework.com/docs/native/ble/

ודוגמאות, שנכתבו על ידי דון:

github.com/don/ionic-ble-examples/tree/mas…

אתה יכול לערוך למשל את הדוגמא "התחבר". אנו סורקים התקנים בדף ראשון ומגיעים לדף שני אם נבחר במכשיר שלנו. לאחר מכן אנו ניגשים לממשק שבו תוכל להוסיף כפתור בשיטה המוצגת בתמונה: הוא שולח את הפקודה שלנו "O" עם ה- UUID המתאימים. אתה יכול גם להוסיף בבונה של העמוד הראשון את השיטה "אפשר", לבקש להפעיל את ה- Bluetooth בתחילת האפליקציה.

אני ממליץ לך בחום לחקור את אתר יונית ולגלות את כל הרכיבים (לחצנים, התראות, תיבות סימון …) כדי לשפר את היישום שלך:

ionicframework.com/docs/components/#overvi…

שלב 5: ייעל את צריכת החשמל

ייעל את צריכת החשמל
ייעל את צריכת החשמל
ייעל את צריכת החשמל
ייעל את צריכת החשמל

התחלנו לעבוד על צריכה נמוכה, אז בואו נעבור.

שרשרת הכלים esp-idf מאפשרת לנו להשתמש ב- GUI תצורה, menuconfig: פרמטרים רבים יכולים להוריד את צריכת esp32. קודם כל, מכיוון שאיננו זקוקים ל- Wifi, אנו יכולים להשבית אותו בתצורת רכיב. באותה תיקייה, ב- FreeRTOS, אתה יכול לבחור "הפעל FreeRTOS רק על הליבה הראשונה. לאחר מכן, ספציפי ל- ESP, תוכל להוריד את תדר המעבד ל -80 מגה-הרץ. כל הפונקציות עדיין פועלות במהירות שעון זו. לבסוף, אתה יכול סמן את האפשרות "הפעל מעבד עותק נמוך במיוחד (ULP). תצורה זו גורמת לצריכה הנוכחית לעבור ממאה mA לכשלושים mA. זה עדיין יותר מדי…

ESP32 יכול להתמודד עם שינה עמוקה. רק הליבה דלת האנרגיה דולקת ומחכה להתעוררות.

עיין בקישור הזה למטה לפרטים נוספים:

esp-idf.readthedocs.io/en/latest/api-refere…

למרבה הצער, בגרסה האחרונה הזמינה של שרשרת הכלים esp-idf (3.0), ההתעוררות היחידה הזמינה היא על ידי טיימרים ועל ידי הפרעות ב- GPIO. למרבה המזל, Espressif מבטיחה לנו להתעורר ב- BLE בגרסה הבאה (3.1).

אתה יכול גם להכניס את CC1101 למצב שינה, על ידי שליחת SPI את הפקודה המתאימה להפסקת ההתקן (ראה גליון הנתונים של cc1101, פקודת SPWD, עמוד 51). כדי להכניס את המכשיר למצב שינה או להעיר אותו, אתה יכול לשים נמוך ואז גבוה את סיכת בחירת שבב פיני SPI (מידע נוסף בגליון הנתונים).

תצורות אחרונות אלה אמורות להיות מסוגלות לגרום לצריכת המערכת לעבור מתחת למילי-אמפר …

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

מוּמלָץ: