לחצן מצוקה עם ESP8266

לחצן מצוקה עם ESP8266

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

הדמוגרפיה בעולם המערבי עברה שינוי מהותי ב- 50 השנים האחרונות וכיום אחוז הקשישים מתוך האוכלוסיה גדול משמעותית מבעבר. נפלאות הרפואה ושיפור התזונה העלו את תוחלת החיים הממוצעת של אדם בישראל וכיום היא נמצאת על 81.2 שנים – מהגבוהות בעולם המערבי. זהו ממוצע כך שצריך לקחת בחשבון שהרבה אנשים עוברים את גיל 90 ואפילו את גיל 100. אבל אליה וקוץ בה, קשישים הם אוכלוסיה פגיעה במיוחד לתאונות כמו התחלקות במדרגות או במקלחת לכן הרבה בני משפחה בוחרים בשירות של לחצן מצוקה.

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

פעמון דלת אלחוטי

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

blog-emergency-button

 

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

blog-emergency-open

 

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

לסיום נבדוק את הקוטביות של החוטים כדי לדעת איזה מהם הוא הפלוס ואיזה הוא המינוס. את הפלוס נכניס לפין דיגיטלי D2 ב- ESP8266 ואת המינוס כמובן לאפס.

blog-emergency-polarity

 

blog-emergency-esp8266

 

טוויליו מגשר בין האינטרנט לסלולרי

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

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

אחרי שנרשמים לאתר שלהם מקבלים מספר טלפון וגם אסימון(token) ומספר זיהוי חשבון.

שרת אינטרנט לשליחת הבקשה

דבר אחרון שנצטרך הוא שרת לשים עליו את הקוד והוא זה שיפנה אל טוויליו את הבקשה. אפשר להרים שרת כזה על המחשב האישי שלנו (LAMP למי שמכיר) או על רספברי פיי, או בחברה לאחסון שרתים. בתיקיית השורש של השרת שהיא בדרך כלל var/www/html ניצור קובץ חדש שנקרא emergency.php. בקובץ זה נכניס את הפרטים מטוויליו ונשלח סמס למספר הרצוי:


<?php

require('twilio-php-master/Services/Twilio.php');

 $account_sid = 'your account sid';

 $auth_token = 'your account token'; 

$client = new Services_Twilio($account_sid, $auth_token);

$client->account->messages->create(array(

   'To' => "send sms to this number for example +972534448888",

   'From' => "your twilio number for example +13233456781",

   'Body' => "קריאת חירום" ));

?>

חשוב לזכור להעביר לאותה התיקיה בשרת גם את ספריית טוויליו PHP שבה נמצאות כל הפונקציות לשליחת סמס וטלפונים.

שליחת בקשה מלוח ESP

הפרט האחרון שנשאר לנו הוא הקוד ששולח בקשה מ- ESP8266 אל השרת כדי להפעיל את קובץ PHP שכתבנו. הקוד הוא פשוט מאוד – אם יש זרם בפין 4 הלוח מתחבר לאינטרנט ומפעיל את הקובץ על השרת. אין צורך סתם להיות מחוברים לאינטרנט אלא להתחבר רק כשיש צורך. זכרו שפין 4 בתוכנה הוא פין 2 בלוח!

#include <ESP8266WiFi.h> 
const char* ssid = "your ssid"; 
const char* password = "your password";
const char* host = "your server name or ip";

void setup() { 
  Serial.begin(115200);
  delay(10);
}

void loop() { 

  if (digitalRead(4) == HIGH){
  Serial.println("button pressed");
  WiFi.begin(ssid,password);
  WiFiClient client; 
  Serial.println("wifi connected");
  const int httpPort = 80; 
  String url = "/emergency.php/";

  if (client.connect(host, httpPort)){ 
    delay(10);
      if(client.print(String("GET ") + url + " HTTP/1.1\r\n" +
     "Host: " + host + "\r\n" + "Connection: close\r\n\r\n") ){ 
       Serial.println("message sent");
       delay(20000);
       } 
    } 
}

הנה הקוד המלא.

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

תגובה אחת על הפוסט “לחצן מצוקה עם ESP8266

  1. אלדד הלוי אומר:

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

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *