Site icon Tech Blog

sms gateway – כך בניתי לעצמי מערכת לשליחת sms.

Sms Gateway - Techblog.co.il

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

במדריך זה אסביר בקצרה איך באמצעות שילוב של טלפון נייד, אפליקציה קטנה בשם Zanzito וכמה שורות קוד הצלחתי להכין לעצמי sms gateway המאפשר לי לשלוח SMS מכל מערכת שאחפוץ בה ובעלות נמוכה מאוד (בסביבות 20 ש"ח לחודש ללא הגבלת שליחה).

אז למה נזדקק עבור הקמת המערכת?

שנתחיל?

שלב א' – התקנת שרת MQTT

MQTT הנו פרוטוקול העברת הודעות "קל משקל" בעל מודל המושתת על פרוטוקול TCP / IP ומשמש לתקשורת בין מכשירי IOT כגון ESP8266, Raspberry Pi וכו '. MQTT נפוץ מאוד בעיקר במכשירים בעלי  משאבים נמוכים ויישומים המופעלים באמצעות סוללות כמו אוטומציה ביתית, מערכות אזעקה, אבטחה ורשתות חיישנים המופעלות באמצעות סוללה.

Mosquitto הוא מתווך (broker) להודעות קוד פתוח המיישם פרוטוקולי MQTT. בעזרת התמיכה הרבה של הקהילה, וקלות ההתקנה הוא הפך לאחד ממתווכי ה MQTT הפופולריים ביותר.

את שרת ה MQTT ניתן להתקין באחת משתי הדרכים הבאות:
– התקנה על גבי לינוקס (Ubuntu / Raspberry pi ועוד) על פי המדריך הבא.
– התקנה באמצעות Docker Container על פי המדריך הבא.

שלב ב' – התקנת והגדרת האפליקציה

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

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

כעת לחצו על Preferences (בשליש התחתון של המסך) על מנת לעבור להגדרות החיבור בין האפליקציה לשרת ה MQTT:

Zanzito Preferences

כעת, לחצו על MQTT Connection על מנת ללהגדיר את החיבור של האפליקציה לשרת ה MQTT Broker.

כאשר:

במידה ותרצו להגדיר הגדרות שונות במידה והטלפון מתחבר לרשת אלחוטית (בדרך כלל משמש למקרים בהם הטלפון לא תמיד נמצא באותה הרשת עם השרת) לחצו על Home Host והגדירו את הפרטים הבאים:

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

כעת, חזרו למסך הראשי ולחצו על היתוש. אם ביצעתם הכל כראוי אתם אמורים לראות בתחתית המסך שהסטטוס השתנה ל Connected.

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

Zanzito Preferences

כעת סמנו את תיבות הסימון של Send SMS וכן של Andorid Notification:

חזרו אחורה וסגרו את מסך ההגדרות. זהו, אנו מוכנים לשלב הבא, שלב הבדיקה ושליחת SMS ראשוני.

שלב ג' – בדיקת המערכת

בחלק זה של המדריך אסביר כיצד ניתן לבדוק שהמערכת עובדת על ידי שליחת sms לבדיקה. אני אשתמש בכלי שנקרא Mqtt Explorer אשר עליו ועל איך להתקין אותו אני מסביר במדריך הבא.

כעת, פתחו את התוכנה והתחברו אל שרת ה MQTT שלכם, אותו התקנתם בחלקו הראשון של המדריך:

לאחר ההתחברות למערכת, אתרו בצד שמאל את המילה Zanzito ותחתי תוכלו לראות את המכשיר שלכם:

בין שאר הדברים שתוכלו לראות במידע שעובר מהאפליקציה לשרת ניתן לראות:

על מנת לשלוח SMS לבדיקה, בחלון הימני של התוכנה תחת publish כתבו את ה topic בצורה הבאה:

סמנו raw בסוג ה data, ובתיבת הטקסט כתבו את תוכן ההודעה:

ולחצו על publish. אם הגדרתם הכל כראוי תוכלו לראות שקיבלתם SMS (בדוגמה למטה תראו SMS ששלחתי לעצמי):

חלק ד' – שליחת SMS באמצעות Micro Service

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

תחילה עלינו להתקין את התלויות הנדרשות עבור עבודתו התקינה של הממשק, לצורך כך כתבו את הפקודה הבאה:

כעת, הורידו את הקוד מהגיט שלי באמצעות הפקודה הבאה:

כעת, כנסו לתיקיה שנוצרה:

וערכו את הקובץ smssender.py, ועדכנו את הערכים בשורות הבאות בהתאם להגדרות שלכם:

כאשר:

כעת נריץ את הקוד ונבדוק שהכל עובד בצורה תקינה. לצורך כך, כתבו את הפקודה הבאה:

הפלט על המסך אמור להראות כך:

כעת, פתחו את הדפדפן והקלידו את את כתובת השרת בתוספת פורט 7040, לדוגמא http:/192.168.0.1:7040. ותקבלו את הממשק הבא:

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

בהצלחה!

Exit mobile version