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

שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד: 4 שלבים
שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד: 4 שלבים

וִידֵאוֹ: שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד: 4 שלבים

וִידֵאוֹ: שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד: 4 שלבים
וִידֵאוֹ: More Equal Animals - by Daniel Larimer - audiobook read by Chuck MacDonald 2024, יולי
Anonim
שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד
שלט רחוק SMS אמין, מאובטח וניתן להתאמה אישית (Arduino/pfodApp) - אין צורך בקידוד

עדכון 6 ביולי 2018: גרסת 3G/2G של הפרויקט הזה, באמצעות SIM5320, זמינה כאן

עדכון: 19 במאי 2015: השתמש בספריית pfodParser גירסה 2.5 ומעלה. זה פותר בעיה מדווחת של אי אפשר מספיק זמן להתחבר לרשת לאחר ההפעלה

מבוא

במה שונה השלט הרחוק של pfodSMS מיישומים אחרים:-

  • זה אמין-תמיד מגיבים לפקודות וההודעות שאבדו מתבקשות מחדש
  • הוא מאובטח - משתמש בהגנה על סיסמה של 128 סיביות
  • הוא אינו דורש כל חשבונות שירותי אינטרנט של צד שלישי - צריך רק כרטיס SIM פעיל (ללא סיכה)
  • ניתן להתאמה אישית - תוכל להשתמש ב- pfodDesigner כדי ליצור תפריט מותאם אישית משלך
  • זה קל - pfodDesigner יוצר את כל הקוד. אתה לא צריך לבצע קידוד.
  • הוא גמיש-כל מסכי ה- pfod זמינים באמצעות SMS, כמו תפריטי משנה, רשימת בחירה מרובת יחידות, קלט טקסט, רישום נתונים ותכנון.

עיין בעיצוב הודעות pfodSMS לאופן האופן שבו חיבור ה- SMS הופך לאמין. עיין באבטחת אתגר ותגובה עבור pfodDevices המחובר לאינטרנט לפרטי האבטחה של 128 ביט. עיין בתפריט pfodDesigner, אנדרואיד / ארדואינו פשוט לפרטים על עיצוב התפריט המותאם אישית שלך. עיין pfodSpecification.pdf לפרטי כל ההודעות והמסכים של pfod שתוכל להוסיף בעצמך.

פרויקט לדוגמא - בקרת SMS מים חמים

כפרויקט לדוגמא מתואר ההוראה המתארת כיצד להפעיל ולכבות את דוד המים החמים באמצעות SMS ולבדוק אם הוא מופעל או כבוי. אתה צריך חשמלאי כדי להתקין אותו.

שלב 1: התחלה מהירה - שלט רחוק SMS

התחלה מהירה - שלט רחוק SMS
התחלה מהירה - שלט רחוק SMS
התחלה מהירה - שלט רחוק SMS
התחלה מהירה - שלט רחוק SMS

להלן מדריך להתחלה מהירה לבניית בקרת SMS חמה של מים חמים.

  1. רכשו את החלקים ברשימה זו..
  2. התקן את גירסת ה- Arduino IDE 1.5.8 והורד והתקן את ספריית pfodParser.
  3. הורד את pfodDesigner בחינם.
  4. עיצוב התפריט המותאם אישית שלך כדי להפעיל ולכבות קלט דיגיטלי ממחוון התפריטים בנייד Android שלך.
  5. צור את הקוד ובחר את מגן SeeedStudio SIM900 GPRS כחיבור. (קיימת גם אפשרות למגן SIM900 של IteadStudio).
  6. העבר את הקוד שנוצר מהנייד שלך ל- IDE (עיין בפרטים pfodAppForAndroidGettingStarted.pdf), הוסף את הסיסמה הסודית שלך, הידור והורד ל- Arduino Mega 2560.
  7. התקן את כרטיס ה- SIM שלך במגן GPRS וחבר את המגן למגה 2560. ודא שהקישורים הטרליים מוגדרים כ- Serial Hardware כפי שמוצג למעלה.
  8. חבר את הפלט הדיגיטלי לממסר במצב מוצק או רגיל בין D3 ל- GND (או איזה סיכה שבחרת ב- pfodDesigner). ראה כיצד להוסיף ממסרים ל- Arduino לפרטים נוספים על ממסרים.
  9. הפעל כוח USB למגה. קוד הספרייה מפעיל עבורך את מגן ה- GPRS.
  10. התקן את pfodApp בנייד האנדרואיד שלך והגדר חיבור SMS למספר טלפון ה- sim של המגן. (עיין בפרטים של pfodAppForAndroidGettingStarted.pdf). הגדר את הסיסמה לחיבור אם הוספת אחת..
  11. התחבר וראה את התפריט המותאם אישית שלך מוצג באמצעות SMS. לחץ על הלחצן כדי להפעיל או לכבות את הממסר..
  12. בקש מהחשמלאי שלך להתקין את הממסר במעגל המים החמים שלך ולחבר את ספק הכוח USB כדי להפעיל את המגה והמגן.

שלב 2: פרטים נוספים

pfodDesigner

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

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

כדי להוסיף סיסמה לחיבור ה- SMS שלך שנה את השורה

parser.connect (& pfodSMS); // חבר את מנתח הזרמת SMS למשהו כמו parser.connect (& pfodSMS, F ("173057F7A706AF9BBE65D51122A14CEE"));

אבל השתמש בסיסמה משלך עד 32 ספרות משושה, 0..9 A.. F. סיסמאות קצרות מ -32 ספרות משושה מרופדות עם 0. ראה Wifi פשוט/אינטרנט pfodDevice עם אבטחת 128 ביט (Arduino) כיצד ליצור סיסמה אקראית ולפלט אותה לקוד QR להקלת קלות ל- Android שלך. ראה גם pfodAppForAndroidGettingStarted.pdf

PfodDesigner ייצר גם קוד לחיבורי Bluetooth ו- wifi באמצעות סידורי ואתרנט באמצעות SPI והכל עם אבטחה 128 ביט אופציונלית

pfodApp

הדבר הראשון שיש להבין הוא ש- SMS הוא איטי ואולי לא יגיע לשם כלל או יגיע לא תקין. אז כאשר אתה מתחבר עם pfodApp יהיה עיכוב כלשהו לפני שתהיה תגובת SMS. אם ההודעה הלכה לאיבוד או התעכבה, pfodApp ישלח אותה אוטומטית מחדש לאחר 3 דקות. לאחר 5 נסיונות חוזרים כאלה, pfodApp יגיד לך שהחיבור אבד. אתה יכול להתאים את הזמן של 3 דקות במסך עריכת החיבורים של pfodApp.

אם אתה מוסיף סיסמה, יש שש הודעות SMS (שלוש לכל כיוון) לפני שהתפריט הראשי מתקבל על ידי pfodApp. הודעות נוספות אלה מתרחשות רק בחיבור הראשוני שלאחריו אין הודעות נוספות בעת שימוש בסיסמה. אז התחל ללא סיסמה כדי לראות שכל דבר עובד ולאחר מכן הוסף את הסיסמה מאוחר יותר.

מגן SMS/GPRS

בעיות אפשריות הן כרטיסי SIM המוגנים במספרי סיכה או שאינם מורשים להתחבר לרשת. ספריית ה- pfod מפעילה באופן אוטומטי את מגן ה- GPRS ומחפשת את תגובת 'מוכן לשיחה'. אם תגובה זו לא מגיעה הספרייה נכבית ומנסה שוב, כך שאם אתה רואה את נורית ההפעלה במגן GPRS דולקת למשך 20 שניות ואז נכבת, יש בעיה בחיבור לרשת. הוצא את ה- SIM ונסה אותו בטלפון רגיל. בדוק שאתה לא מתבקש להזין מספר סיכה.

אם זו לא הבעיה, יהיה עליך להפעיל את איתור באגים בהפעלה, כמתואר להלן, כדי לראות מה קורה.

הפעלת מגן ה- Mega / GPRS

המגן מושך עד 2A בדופק ועד 0.5A ברציפות. בהנחה שאספקת סוללה 12V, ה- 0.5A חורג מהקיבולת של ספק הכוח המשולב. אז אסור להפעיל את המגן הזה מכניסת 7V עד 12V במגה. האלטרנטיבה היא להפעיל את המגה והמגן באמצעות חיבור ה- USB. השתמשתי באספק USB 1A. לצורך הבדיקה השתמשתי ברכזת המופעלת על ידי Belkin (F4U020) כדי למנוע משיכת זרם מופרז מיציאת ה- USB של המחשב שלי.

לאספקת סוללה 12V, אני מציע להשתמש במטען USB 5V לרכב איכותי, 1A ומעלה. אספקת אספקת USB 5V לרכב איכותית אמורה להתמודד עם קפיצות מתח מתח המתרחשות במערכות חשמל לרכב ולכן צריכה להתאים לרוב מערכות הטעינה של 12V.

ממסר מצב מוצק

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

ישנן גרסאות רבות של ממסר מצב מוצק. הקפד לרכוש על זה שיכול להתמודד עם הזרם והמתח של החימום שלך וניתן לשלוט בו על ידי 5V DC וכמה מיליאמפרס זמינים מסיכת הפלט של Arduino. זה המשמש כאן, FOTEK SSR-40 DA, עובר עד 380VAC ב 40Amps ונשלט על ידי כל דבר יותר מאשר 3V dc ולוקח פחות מ 7mA.

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

עיכובים הם רעים

מגן GPRS מעביר הודעות SMS דרך החיבור הטורי בכל עת והלולאה הראשית שלך () חייבת להתקשר cmd = parser.parse (); לעתים קרובות כדי לעבד את הנתונים הטורליים לפני שמאגר 64 בתים בקוד הספרייה של Arduino יתמלא והנתונים יאבדו.

לכן עליך להפעיל את הלולאה הראשית () במהירות. לעולם אל תשתמש בעיכוב () וכדאי לבדוק שאף אחת מהספריות שבהן אתה משתמש אינן מעכבות. באמצעות שיעור ברירת המחדל של 19200 של ה- SIM900 באמצעות חומרה סידרית, לא מצאתי צורך להגדיל את גודל המאגר בקוד הספרייה של Arduino. אני לא משתמש בתוכנות Serial, רק Serial and Serial1, Hardware Serial חיבורים, וכמעט כל ההודעות ש- pfodApp שולח הן קטנות מאוד, 10 או 12 בתים. עם זאת, תוכל להגדיל את גודל מאגר Arduino, אם תרצה בכך על ידי שינוי ההגדרה ב- HardwareSerial.h מ- #define SERIAL_BUFFER_SIZE 64 ל- #define SERIAL_BUFFER_SIZE 128

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

הַתקָנָה

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

שלב 3: הצעות לשיפורים נוספים - התראות, רישום נתונים ותכנון

הפרויקט לדוגמא לעיל רק מציג את אופן ההדלקה או כיבוי המים ומאפשר לך להחליף אותו. אבל חיבור ה- SMS מטפל בכל הודעות ה- pfod (ראה pfodSpecification.pdf)

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

parser.println (זמן); parser.print (','); parser.println (טמפרטורה);

כאשר ספריית pfodSMS רואה את השורה החדשה של println (), היא תשלח את הנתונים הגולמיים כהודעת SMS. בנייד, השאר את pfodApp פועל ברקע והנייד שלך יודיע לך כאשר תתקבל הודעת SMS. פתח שוב את pfodApp כדי להביא אותו לחזית ולאחר מכן פתח את מסך נתוני הגלם מהתפריט הנייד כדי לראות את הנתונים. הערה: הודעות pfodSMS הן תווים UTF-8 יחד עם חיבור ומספרי הודעות, מקודדים באמצעות קידוד Base64 כך שהם לא ייראו כמו טקסט רגיל. עיין בעיצוב הודעות pfodSMS לכל הפרטים.

אתה יכול להשתמש באותו תהליך כדי לשלוח התראה כאשר משהו משתנה מרחוק. כלומר parser.println (F ("טמפרטורת חוץ מתחת 0 ℃")); הערה: התו ℃ UTF-8 במחרוזת. pfodSMS מעביר את כל התווים UTF-8 אל pfodApp.

שלב 4: איתור באגים בעת שימוש בחיבור ה- SMS בספריית PfodParser

איתור באגים בעת שימוש בחיבור ה- SMS בספריית PfodParser
איתור באגים בעת שימוש בחיבור ה- SMS בספריית PfodParser
איתור באגים בעת שימוש בחיבור ה- SMS בספריית PfodParser
איתור באגים בעת שימוש בחיבור ה- SMS בספריית PfodParser

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

איתור באגים בקוד שלך

אם אתה מבצע איתור באגים בקוד שלך, תוכל פשוט להגיב על קו pfodSMS ולחבר את הניתוח ל Serial ולאחר מכן הסר את מגן GPRS והפעל את המגה ממסוף Arduino. כלומר שנה את ההגדרה () ל-

//pfodSMS.init(&Serial, 9); // אל תפעיל את מגן GPRS parser.connect (& Serial); // התחבר מנתח ל- Serial במקום לזרם SMS

לאחר מכן ממסוף ארדואינו תוכל להקליד {.} כדי שהמגה תחזיר את התפריט הראשי ולאחר מכן שולח חזרה את הפקודה שברצונך לבצע, למשל. {A`1} להפעלת הממסר ו {A`0} לביטולו. (בדרך כלל ה- pfodApp שולח עבורך הודעות אלה כאשר אתה לוחץ על המחוון.) לאחר מכן הוסף ניפוי נוסף parser.println () כדי לעקוב אחר הקוד הנוסף שהוספת עושה.

ניטור מגן GPRS

אם אתה רוצה לראות מה מגן GPRS עושה. כיצד הוא מתחיל, מקבל הודעות SMS וכו '. לאחר מכן עליך לשנות את חיווט המגן לחבר אותו ל- Mega Serial1 (סידורי) ולפנות את החיבור הטורי (USB) לפלט באגים לצג ה- Arduino IDE.

כדי לחבר את מגן GPRS ל- Mega 2560 Serial1, הסר את הקישורים המוצגים למעלה והוסף את החוטים לסיכות TX1 ו- RX1 של מגה.

לאחר מכן שנה את קוד ההתקנה () ל-

הגדרת void () {Serial1.begin (19200); // שנה את Serial ל- Serial 1 Serial.begin (57600); // שימו לב לקצב השידור המהיר ליציאה הטורקית USB // לצג Arduino IDE. for (int i = 3; i> 0; i--) {// המתן מספר שניות כדי לראות אם מתוכנתים לנו עיכוב (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& סידורי); // צריך לעשות זאת לפני pfod_SMS.init // או כל שיחת שיטה אחרת של pfod_SMS // לאתחל את ה- SMS ולחבר את המנתח // שנה את השורה הבאה ל- Serial1 pfodSMS.init (& Serial1, 9); // חבר את מגן ה- GPRS של Seeed GP2 ל- Serial1 במקום Serial parser.setDebugStream (& Serial); // צריך לעשות זאת לפני parser.connect // או כל שיטת מנתח אחרת להתקשר parser.connect (& pfodSMS); // התחבר מנתח לזרם SMS}

כעת תוכל לבטל את התגובה לחלק מההגדרות באגים בספריית pfodParser בכתובת של הקובץ pfodSMS_SIM900.cpp.

לדוגמה ביטול תגובה #define DEBUG_SETUP ידפיס (לזרם איתור הבאגים) את המתרחש תוך הפעלת מגן GPRS והכנתו לקבלת הודעות SMS.

ביטול תגובה #define DEBUG ייתן מידע רב על הודעות ה- SMS המתקבלות.

זהו זה !

מוּמלָץ: