HƯỚNG DẪN CÁCH GỬI EMAIL VÀ TÍN NHẮN VĂN BẲN BẰNG CÁCH SỬ DỤNG ESP8266
Đây không hoàn toàn là một chủ đề mới vì có các hướng dẫn tương tự có sẵn trực tuyến để chỉ ra cách làm điều này.
Bài viết này đặc biệt tập trung vào việc chỉ sử dụng Module ESP8266 và Google để gửi email hoặc tin nhắn văn bản.
Yêu cầu phần cứng:
Để hiểu khái niệm này, tất cả những gì chúng ta cần là một mô-đun ESP8266 và nguồn điện cho nó, thường là cáp USB. Tôi đang sử dụng bảng NodeMCU cho thuận tiện. Chúng tôi không cần bất kỳ cảm biến hoặc những thứ khác. Để minh họa cho phương pháp, chúng tôi sẽ chỉ tạo một số ngẫu nhiên giữa các khoảng nhất định và nếu số đó vượt quá mức chúng tôi đã đặt cho giới hạn ngưỡng, chúng tôi muốn nhận email hoặc tin nhắn văn bản.
Giống như trong http://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/, chúng tôi sẽ tạo một Trang tính Google mới trong Google Drive. Vì vậy, hãy làm như sau:
1) Mở Google Drive của bạn trong trình duyệt web và tạo Google Sheets. Bạn có thể gọi tập tin này bất cứ điều gì bạn thích. Tôi gọi nó là 'SendEmailAndText_ESP8266'.
2) Từ Google Sheets mà bạn vừa tạo, hãy chuyển đến Công cụ> Trình chỉnh sửa tập lệnh
3) Đặt tên cho tệp chính của trình soạn thảo Script trên thanh công cụ (bất cứ điều gì bạn thích).
4) Dán mã sau vào tệp Code.gs (giả sử bạn chưa thay đổi tên tệp mặc định). Một lần nữa, tên tệp này cũng không thành vấn đề.
Google Scripts Code: (copy đoạn này dán vào Scripts vừa tạo cho nhanh)
var number = "840905629***"; // your phone number var domain = "tmomail.net"; // You may find your domain for you carrier at: http://www.emailtextmessages.com/ var toEmail = "YourOrFriendsEmail@gmail.com"; function doGet(e){ Logger.log("--- doGet ---"); // for debugging if (e == null){e={}; e.parameters = {value:"-1"};} try{ // get the values from parameters to local var var value = e.parameters.value; var phoneEmail = number + "@" + domain; // Send Text Message (SMS) send_Email(phoneEmail, "NodeMCU here, your sensor went beyond your threshold. Sensor reported: " + value + " on:" + new Date()); // Send Email var message = "<b>Dear User,</b> Your equipment has reached it's threshold value. It just reported a value of " + value + ". Please take a necessary action. "; message += "As a valued customer, we have sent you a text message also. "; message += "To learn more about this email, please click on the link below: "; message += "<a href="http://www.embedded-lab.com/" target="new">www.Embedded-Lab.com</a> "; message += "Sincerely, <b>NodeMCU ESP8266</b>"; send_Email(toEmail, message) return ContentService.createTextOutput("Things went successfully."); } catch(error) { Logger.log(JSON.stringify(error)); return ContentService.createTextOutput("oops...." + error.message + "\n" + new Date() + "\nnumber: " + number + + "\ndomain: " + domain); } } function send_Email(address, message){ MailApp.sendEmail({ "to": address, "subject": "Threshold reached - ESP8266", "htmlBody": message }); Logger.log("send_textMessage: " + "Email sent to: " + address); }
Như được hiển thị trong hình dưới đây, chọn doGet và nhấp vào biểu tượng lỗi để gỡ lỗi mã của bạn. Nếu bạn thực hiện đúng các bước, bạn sẽ nhận được một tin nhắn văn bản và một email từ tài khoản gmail của bạn.
Xin lưu ý rằng Google sẽ cần quyền của bạn để gửi email thay mặt bạn để khi Google yêu cầu quyền, bạn phải cung cấp nó.
Nếu bạn không nhận được tin nhắn văn bản hoặc email, vui lòng kiểm tra lại các bước của bạn. Nếu bạn đã nhận được thì hãy xuất bản công việc của chúng tôi để chúng tôi có thể nhận được URL mà chúng tôi có thể sử dụng trong NodeMCU. Để xuất bản, nhấp vào Xuất bản> Triển khai dưới dạng ứng dụng web
Hành động trên sẽ hiển thị cửa sổ sau. Đảm bảo chọn tất cả ba bước như trong hình bên dưới.
Khi bạn nhấp vào Cập nhật hoặc Xuất bản , bạn sẽ thấy một hộp như hình bên dưới. Từ hộp này, sao chép địa chỉ đã cho. Tôi thường lưu lại địa chỉ này vào Google Script để sử dụng trong tương lai. Chúng tôi sẽ cần địa chỉ này trong mã NodeMCU / ESP8266.
Lưu ý : chúng tôi sẽ gọi văn bản giữa / s / và / exec là GScriptID . Thông tin này là được yêu cầu trong mã NodeMCU.
Lấy URL từ hộp phía trên và thêm biểu tượng “? Value = -1” với nó, nó sẽ giống như thế này:
https://script.google.com/macros/s/-YourGScriptIDGoesHere-/exec?value=-1 . Bây giờ dán URL này vào địa chỉ trình duyệt của bạn và nhấn enter. Trong vài giây, bạn sẽ nhận được email và tin nhắn văn bản.
Vui lòng đảm bảo lấy tệp thư viện giúp chúng tôi chuyển hướng đến URL mà chúng tôi cần. Quá trình này đã được giải thích trong http://embedded-lab.com/blog/post-data-google-sheets-using-esp8266/
#include <ESP8266WiFi.h>
#include “HTTPSRedirect.h”
const char* ssid = “–Your SSID–“;
const char* password = “–Your Password–“;
// The ID below comes from URL
// after publishing Google Script as Web App.
const char *GScriptId = “–Your GScriptId–“;
const char* host = “script.google.com”;
const char* googleRedirHost = “script.googleusercontent.com”;
const int httpsPort = 443;
HTTPSRedirect client(httpsPort);
// Prepare the url (without the varying data)
String url = String(“/macros/s/”) + GScriptId + “/exec?”;
const char* fingerprint = “F0 5C 74 77 3F 6B 25 D7 3B 66 4D 43 2F 7E BC 5B E9 28 86 AD”;
void setup() {
Serial.begin(115200);
Serial.println(“Connecting to wifi: “);
Serial.println(ssid);
Serial.flush();
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.”);
}
Serial.println(” IP address: “);
Serial.println(WiFi.localIP());
Serial.print(String(“Connecting to “));
Serial.println(host);
bool flag = false;
for (int i=0; i<5; i++){
int retval = client.connect(host, httpsPort);
if (retval == 1) {
flag = true;
break;
}
else
Serial.println(“Connection failed. Retrying…”);
}
// Connection Status, 1 = Connected, 0 is not.
Serial.println(“Connection Status: “ + String(client.connected()));
Serial.flush();
if (!flag){
Serial.print(“Could not connect to server: “);
Serial.println(host);
Serial.println(“Exiting…”);
Serial.flush();
return;
}
// Data will still be pushed even certification don’t match.
if (client.verify(fingerprint, host)) {
Serial.println(“Certificate match.”);
} else {
Serial.println(“Certificate mis-match”);
}
}
// This is the main method where data gets pushed to the Google sheet
void sendValueToGoogle(String value){
if (!client.connected()){
Serial.println(“Connecting to client again…”);
client.connect(host, httpsPort);
}
String urlFinal = url + “value=” + value;
client.printRedir(urlFinal, host, googleRedirHost);
}
// Continue pushing data at a given interval
void loop() {
// Here you will have your main code
// To demonstrate the concept we are generating a random number
long randomValue = random(10, 20);
// Our lower threshold is 12 and upper threshold is 18
// when given vlaue goes below lower or above upper the threshold
// we would like to send information to GAS for email and text message
if (randomValue < 12 || randomValue > 18) {
Serial.println(“Random value outside the threshold: “ + String(randomValue));
sendValueToGoogle(String(randomValue));
}
delay (10000); // wait 10 sec
}
File đính kèm: sendemailandtext.zip
BÀI VIẾT LIÊN QUAN:
Bài báo đăng Tạp chí ngành cơ khí Việt Nam
The paper presents the researched results on design and manufacture of ...
Sửa lỗi USB hoặc thẻ nhớ SD không thể format ở Windows 10
Nếu bạn đang gặp phải vấn đề với việc format USB hay thẻ nhớ SD thì bài viết ...