Hệ thống điều khiển thiết bị thông minh thông qua NodeMCU ESP8266 và App Mobile
Bạn đang có dự định triển khai một dự án điều khiển thiết bị trong nhà bằng SmartPhone, mà chưa biết bắt đầu từ đâu không biết cách thức để làm như thế nào. Trong nội dung bài viết hôm nay mình sẽ hướng dẫn cho các bạn một dự án Hệ thống Điều khiển thiết bị thông minh thông qua NodeMCU ESP8266 + App Mobile để có thể điều khiển thiết bị trong ngôi nhà của mình.
Trước khi thực hành hướng dẫn này nếu bạn chưa bao giờ sử dụng NodeMCU Esp8266 hoặc chưa bao giờ lập trình Esp8266 với Arduine IDE, các bạn xem tại đây nhé.
Sơ đồ đấu nối
Các linh kiện cần thiết cho dự án
Tên linh kiện | Số lượng | Shopee |
Esp8266 | 1 | Mua ngay |
Relay 4 Kênh | 1 | Mua ngay |
LCD16X2 | 1 | Mua ngay |
Board I2C LCD16X2 | 1 | Mua ngay |
Dây cắm (Đực – cái) | 1 | Mua ngay |
Cài đặt ứng dụng Android trên Smartphone
Tải App ESP8266
- Mở ứng dụng CHPLAY trên điện thoại nhập tìm kiếm từ khóa: Esp8266
- Tiếp theo đặt địa chỉ IP và PORT 80 trong ứng dụng Android.
- Bây giờ bạn có thể điều khiển ứng dụng.
Code
#include #include #include <LiquidCrystal_I2C.h> #define ON 0 #define OFF 1 LiquidCrystal_I2C lcd(0x3F , 16, 2); const char* ssid = "Nha Tro 4"; const char* password = "Nguyen nam"; const int LED1 = 15; //D8 on ESP Board const int LED2 = 13; //D7 on ESP Board const int LED3 = 12; //D6 on ESP Board const int LED4 = 14; //D5 on ESP Board bool value1 = LOW; bool value2 = LOW; bool value3 = LOW; bool value4 = LOW; WiFiServer server(80); int delayLCD = 750; void setup() { Serial.begin(115200); Wire.begin(2, 0); lcd.begin(); lcd.setCursor (0,0); lcd.print("Hello, world!"); lcd.setCursor (0,1); lcd.print("belajarduino.com"); delay (delayLCD); pinMode(LED1, OUTPUT); digitalWrite(LED1, LOW); pinMode(LED2, OUTPUT); digitalWrite(LED2, LOW); pinMode(LED3, OUTPUT); digitalWrite(LED3, LOW); pinMode(LED4, OUTPUT); digitalWrite(LED4, LOW); // Connect to WiFi network Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); lcd.setCursor (0,0); lcd.print ("Connecting to..."); lcd.setCursor (0,1); lcd.print (ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); lcd.print ("."); } Serial.println(""); Serial.println("WiFi connected"); lcd.clear(); lcd.setCursor (0,0); lcd.print (" WiFi connected "); // Start the server server.begin(); Serial.println("Server started"); lcd.setCursor (0,1); lcd.print (" Server started "); delay (2000); // Print the IP address Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); lcd.clear(); lcd.setCursor (0,0); lcd.print ("ESP8266 URL ADRS"); lcd.setCursor (0,1); lcd.print (WiFi.localIP()); delay (2000); } void loop() { // Check if a client has connected WiFiClient client = server.available(); if (!client) { //lcd.clear(); lcd.setCursor (0,0); lcd.print ("ESP8266 URL ADRS"); lcd.setCursor (0,1); lcd.print (WiFi.localIP()); lcd.print (" "); return; } // Wait until the client sends some data Serial.println("new client"); lcd.clear(); lcd.setCursor (0,0); lcd.print ("Client Send Data"); while(!client.available()){ delay(1); } // Read the first line of the request String request = client.readStringUntil('r'); Serial.println(request); lcd.setCursor (0,1); lcd.print (request); delay(1000); client.flush(); // Set LED according to the request client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println(""); // do not forget this one client.println(""); client.println(""); client.println("
Thư viện
Download thư viện “BlynkSimpleEsp8266.h”: Tải ngay