การนำ ESP8266 มาประยุกต์ใช้ในโรงพยาบาล โดยการกดปุ่มเพือเรียกรถเข็น รถนอน จากเวรเปลมารับ ผ่าน Line notify
แนวคิด
ผมเคยทำงานในโรงพยาบาล และพบว่าที่โรงพยาบาลจะมีเวรเปลคอยรับส่งคนไข้ที่ไม่สามารถช่วยเหลือตัวเองได้ ซึ่งในบางครั้งเวรเปลก็จะกระจายไปตามตึกต่างๆ เพื่อส่งคนไข้ หากมีคนมาที่จุดบริการ แล้วไม่มีเวรเปล คงดี ถ้าเพียงแค่กดปุ่มแล้วเวรเปล แล้วเวรเปลมารับที่จุดนั้น โดยหลังจากการกดปุ่ม ระบบจะแจ้งไปยังไลน์กลุ่มของเวรเปล เพื่อเวรเปลเห็นใครอยู่ใกล้จุดนั้นก็มารับ โดยอาจสร้างเป็น 2 ปุ่ม คือ ปุ่มสำหรับรถเข็น และอีก 1 ปุ่ม สำหรับรถนอน
หลักการ
สร้าง Line group ของเวรเปล ของสร้าง Line notify นำ token มาใช้ แล้วเขียนโปรแกรมใส่ใน esp8266 ซึงอาจจะทำกล่องดีๆ มาครอบไว้ แล้วต่อกับ wifi ของโรงพยาบาล อาจใช้ไฟจากถ่าน หรือไฟจากโรงพยาบาลเองก็ได้ ซึ่งในแต่ละจุด เราจะเขียนโปรแกรมเพื่อส่งจุดที่ต้องการเวรเปล ไปด้วย เพื่อให้แยกจุดออกจากกัน จุดไหนเรียกก็ไปจุดนั้น
อุปกรณ์
1.ESP8266 node mcu V.2 ( ราคา 200-300 บาท)
2.ปุ่มกดใหญ่ๆ (ราคา 10-20 บาท)
3.กล่องปิดเพื่อความสวยงาม ( ไม่เกิน 100 บาท)
4.สาย USB (ไม่เกิน 50 บาท)
ตัวอย่าง code C++
////////////////////
void Line_Notify(String message) ;
#include <ESP8266WiFi.h>
// Config connect WiFi
#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "wifi_password"
// Line config
#define LINE_TOKEN "line token key"
#define SW D5
String message = " Help me please !!! AT Emergency room ";
void setup() {
pinMode(SW, INPUT);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
}
void loop() {
if (digitalRead(SW) == HIGH) {
while(digitalRead(SW) == HIGH) delay(10);
Serial.println("Enter !");
Line_Notify(message);
// Serial.println();
}
delay(10);
}
void Line_Notify(String message) {
WiFiClientSecure client;
if (!client.connect("notify-api.line.me", 443)) {
Serial.println("connection failed");
return;
}
String req = "";
req += "POST /api/notify HTTP/1.1\r\n";
req += "Host: notify-api.line.me\r\n";
req += "Authorization: Bearer " + String(LINE_TOKEN) + "\r\n";
req += "Cache-Control: no-cache\r\n";
req += "User-Agent: ESP8266\r\n";
req += "Content-Type: application/x-www-form-urlencoded\r\n";
req += "Content-Length: " + String(String("message=" + message).length()) + "\r\n";
req += "\r\n";
req += "message=" + message;
// Serial.println(req);
client.print(req);
delay(20);
// Serial.println("-------------");
while(client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
break;
}
//Serial.println(line);
}
// Serial.println("-------------");
}
#include <ESP8266WiFi.h>
// Config connect WiFi
#define WIFI_SSID "ssid"
#define WIFI_PASSWORD "wifi_password"
// Line config
#define LINE_TOKEN "line token key"
#define SW D5
String message = " Help me please !!! AT Emergency room ";
void setup() {
pinMode(SW, INPUT);
Serial.begin(115200);
WiFi.mode(WIFI_STA);
// connect to wifi.
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("connecting");
while (WiFi.status() != WL_CONNECTED) {
Serial.print(".");
delay(500);
}
Serial.println();
Serial.print("connected: ");
Serial.println(WiFi.localIP());
}
void loop() {
if (digitalRead(SW) == HIGH) {
while(digitalRead(SW) == HIGH) delay(10);
Serial.println("Enter !");
Line_Notify(message);
// Serial.println();
}
delay(10);
}
void Line_Notify(String message) {
WiFiClientSecure client;
if (!client.connect("notify-api.line.me", 443)) {
Serial.println("connection failed");
return;
}
String req = "";
req += "POST /api/notify HTTP/1.1\r\n";
req += "Host: notify-api.line.me\r\n";
req += "Authorization: Bearer " + String(LINE_TOKEN) + "\r\n";
req += "Cache-Control: no-cache\r\n";
req += "User-Agent: ESP8266\r\n";
req += "Content-Type: application/x-www-form-urlencoded\r\n";
req += "Content-Length: " + String(String("message=" + message).length()) + "\r\n";
req += "\r\n";
req += "message=" + message;
// Serial.println(req);
client.print(req);
delay(20);
// Serial.println("-------------");
while(client.connected()) {
String line = client.readStringUntil('\n');
if (line == "\r") {
break;
}
//Serial.println(line);
}
// Serial.println("-------------");
}
/////////////////////
มี ID Line ที่สามารถติดต่อเป็นการส่วนตัวไหมคะ
ตอบลบ