Cách gửi tin nhắn văn bản SMS từ dự án Arduino ESP của bạn: 6 bước
Cách gửi tin nhắn văn bản SMS từ dự án Arduino ESP của bạn: 6 bước
Anonim
Cách gửi tin nhắn văn bản SMS từ dự án Arduino ESP của bạn
Cách gửi tin nhắn văn bản SMS từ dự án Arduino ESP của bạn

Tài liệu hướng dẫn này trình bày cách gửi tin nhắn văn bản SMS từ dự án arduino của bạn bằng thiết bị ESP8266 và kết nối WiFi. Tại sao lại sử dụng SMS? * Tin nhắn SMS nhanh hơn và đáng tin cậy hơn nhiều so với tin nhắn thông báo ứng dụng. * Cũng có thể nhận tin nhắn SMS khi không có kết nối dữ liệu di động * Không cần cài đặt ứng dụng bên thứ 3 trên điện thoại thông minh. * SMS cần thiết cho các ứng dụng quan trọng về tin nhắn. Dự án này chỉ cần gửi một tin nhắn văn bản SMS khi nhấn một nút có dây đối với thiết bị ESP. Đối với dự án của bạn, điều này có thể được kích hoạt trên một số trạng thái sự kiện hoặc trình kích hoạt khác

Bước 1: Các bộ phận

Các bộ phận
Các bộ phận
Các bộ phận
Các bộ phận

Đối với bản demo này, bạn sẽ cần: * Thiết bị ESP8266. Tôi đã chọn gói ESP-01, nhưng bất kỳ gói / thiết bị ESP nào khác cũng sẽ hoạt động. * Nguồn cung cấp 3.3v * Kết nối WiFi * Tài khoản Kapow SMS * Mô-đun lập trình Arduino IDE * ESP8266.

Bước 2: Nhà cung cấp SMS

Trong dự án này, tin nhắn văn bản SMS được gửi qua cổng SMS trên internet. Đối với điều này, bạn sẽ cần phải đăng ký một nhà cung cấp SMS. Người đăng ký thường bị tính phí trên mỗi tin nhắn văn bản. Nhà cung cấp dịch vụ SMS mà tôi đã chọn là KAPOW. Tôi nhận thấy rằng hầu hết các nhà cung cấp SMS ở Vương quốc Anh sẽ chỉ giao dịch với các Công ty TNHH chứ không phải cá nhân. Tuy nhiên, KAPOW có và cung cấp một dịch vụ đáng tin cậy và hiệu quả về chi phí. Để mở tài khoản Kapow SMS, hãy truy cập liên kết bên dưới.

www.kapow.co.uk

Bước 3: Nối dây

Nối dây
Nối dây

Sơ đồ đấu dây cho dự án này ở trên

Bước 4: Mã

// Dự án trình diễn ESP8266 để gửi SMS qua KAPOW (www.kapow.co.uk)

// https://www.instructables.com/id/How-to-Send-SMS-… #include #include char _sKapow_Host = "kapow.co.uk"; int _iKapow_Port = 80; / * <<<< THAY ĐỔI CÁC CHI TIẾT BÊN DƯỚI * / // Chi tiết WiFi của bạn: char _sWiFi_SSID = "YourWifiPoint"; // <--- THAY ĐỔI !!! char _sWiFi_Password = "YourWifFiPassword"; // <--- THAY ĐỔI !!! // Chi tiết tài khoản người dùng Kapow của bạn: char _sKapow_User = "YourKapowAccount"; // <--- THAY ĐỔI !!! char _sKapow_Password = "YourKapowPassword"; // <--- THAY ĐỔI !!! char _sKapow_Mobile = "YourMobile"; // >>> THAY ĐỔI CHI TIẾT TRÊN * Nút // được kết nối với GP0 Pin const int gp0_Pin = 0; const int iMaxAttempts = 10; int gp0_State = 0; void setup () {Serial.begin (9600); Serial.println ("\ nDemo: Gửi SMS qua KAPOW"); // khởi tạo pin nút bấm làm đầu vào // và kéo nó lên cao (bên trong) pinMode (gp0_Pin, INPUT_PULLUP); // thiết lập kết nối Wifi WifiConnect (); } void loop () {// đọc trạng thái nút nhấn gp0_State = digitalRead (gp0_Pin); // nhấn nút có thấp không? if (gp0_State == 0) {Serial.println ("Nút Nhấn để Gửi SMS…"); SendSmsKapow (_sKapow_Mobile, "Đây + là + a + Kiểm tra + SMS + Tin nhắn + đã gửi + từ + thiết bị + ESP + của bạn"); } Serial.println ("Đang ngủ trong 1 giây"); chậm trễ (1000); } void WifiConnect () {Serial.print ("\ nKết nối với WiFi:"); Serial.println (_sWiFi_SSID); WiFi.begin (_sWiFi_SSID, _sWiFi_Password); while (WiFi.status ()! = WL_CONNECTED) {// thử lại sau Serial.print thứ hai ("."); chậm trễ (1000); } if (WiFi.status () == WL_CONNECTED) Serial.println ("Đã kết nối với WiFi"); } bool SendSmsKapow (char * sMobile, char * sMessage) {WiFiClient clientSms; int iAttempts = 0; Serial.print ("Đang kết nối với máy chủ KAPOW"); while (! clientSms.connect (_sKapow_Host, _iKapow_Port)) {Serial.print ("."); iAttempts ++; if (iAttempts> iMaxAttempts) {Serial.println ("\ nKhông thể kết nối với KAPOW"); trả về true; } delay (1000); } Serial.println ("\ n Đã kết nối với KAPOW"); chậm trễ (1000); Serial.println ("Đang gửi yêu cầu HTTP tới KAPOW:"); // Một ví dụ về yêu cầu GET sẽ là: //https://www.kapow.co.uk/scripts/sendsms.php?username=test&password=test&mobile=07777123456&sms=Test+message char sHttp [500] = ""; strcat (sHttp, "GET /scripts/sendsms.php?username="); strcat (sHttp, _sKapow_User); strcat (sHttp, "& password ="); strcat (sHttp, _sKapow_Password); strcat (sHttp, "& mobile ="); strcat (sHttp, sMobile); strcat (sHttp, "& sms ="); strcat (sHttp, sMessage); strcat (sHttp, "& returnnid = TRUE / n / n"); Serial.println (sHttp); clientSms.print (sHttp); Serial.println ("Đang chờ phản hồi (10 giây)…"); độ trễ (10 * 1000); char sReply [100] = ""; int iPos = 0; while (clientSms.available ()) {char c = clientSms.read (); Serial.print (c); sReply [iPos] = c; iPos ++; if (iPos == 99) break; } sReply [iPos] = '\ 0'; // kiểm tra xem trả lời có chứa OK không bool bResult = (strstr (sReply, "OK")! = NULL); if (bResult) Serial.println ("\ nSMS: Đã gửi thành công"); else Serial.println ("\ nSMS: Không gửi được"); if (! clientSms.connected ()) {Serial.println ("Đang ngắt kết nối khỏi KAPOW"); clientSms.stop (); } trả về bResult; }

Bước 5: Flash mã

Flash mã
Flash mã
Flash mã
Flash mã

Có nhiều tài liệu hướng dẫn chi tiết khác chỉ ra cách lập trình flash một thiết bị ESP8266. Vì vậy, tôi sẽ chỉ giới thiệu tổng quan về thiết lập của mình, tóm lại, tôi sử dụng giao diện AUSB to Serial FTDI và kéo GP0 ở mức thấp khi thiết lập lại để bắt đầu quá trình flash bootloader. Nó có * một ổ cắm cho thiết bị ESP-01 * một ổ cắm cho giao diện FTDI màu đỏ để cắm vào máy chủ PC qua USB. * Các nút để ĐẶT LẠI, GP0, GP2 ĐỂ PHÁT TRIỂN Bạn có thể flash thiết bị ESP bằng cách sử dụng 3.3v do FTDI cung cấp giao diện. Đảm bảo cài đặt jumper FTDI cũng được đặt thành 3.3v.

Bước 6: Nhấn nút

Nhấn nút !
Nhấn nút !
Nhấn nút !
Nhấn nút !
Nhấn nút !
Nhấn nút !
Nhấn nút !
Nhấn nút !

Bạn có thể kiểm tra dự án được kết nối với FTDI để có đầu ra ghi nhật ký nối tiếp hoặc độc lập (trên breadboard với nguồn điện bên ngoài). Tuy nhiên, nguồn cung cấp FTDI 3.3v cũng hoạt động với tôi, vì bộ định tuyến wifi của tôi nằm trong tầm tay. Hãy để ESP kết nối với cổng nối tiếp / cổng usb để bạn có thể theo dõi nhật ký gỡ lỗi nối tiếp đang chạy bằng Trình theo dõi nối tiếp của Arduino IDE. nút kết nối với GP0. Thao tác này sẽ gửi tin nhắn SMS như bên dưới. Kiểm tra điện thoại của bạn để tìm tin nhắn văn bản SMS đã nhận.