Tự làm công tắc thông minh điều khiển bằng wifi
Với một bo mạch wifi ESP-8266 nhỏ như ngón tay bạn có thể thiết lập một hệ thống công tắc thông minh có thể điều khiển bật tắt 2 bóng đèn trong nhà trực tiếp từ điện thoại thông minh mà không cần đến modem wifi hoặc mạng LAN. Bài viết dưới đây giới thiệu một mô hình smarthome đơn giản điều khiển các công tắc bóng đèn bằng mạch ESP-8266 bằng kết nối wifi trực tiếp từ smartphone đến bo mạch ESP-8266 để đóng ngắt các rơ-le.
Các thành phần sử dụng trong dự án:
01 bo mạch ESP-01 wifi controller
01 bo mạch FTDI để flash memory cho ESP-01 (Có thể thay thế bằng một mạch Arduino UNO)
01 Module 2-Rơ-le loại 5V/10A (tích hợp sẵn mạch đóng ngắt bán dẫn sử dụng tín hiệu điều khiển GPIO từ ESP-01)
Các dây nối, mỏ hàn, bảng gá bo mạch
Trường hợp bạn chỉ có các rơ le thuần thì cần thêm các linh kiện dưới đây để tạo ra mạch đóng ngắt cho rơ le (xem phụ lục cách kết nối mạch bán dẫn đóng ngắt và cách tạo điện áp 3V3 cho bo mạch ESP ở cuối bài viết này)
02 điện trợ 1K omh
02 Bóng bán dẫn BC-547 Transitor
02 Diod 1N-4007
Bước 1: Kết nối ESP-01 qua mạch FTDI để flash firmware lên mạch ESP-01
Bạn thực hiện việc kết nối ESP-01 với bo mạch FTDI như hình vẽ sau
Trong hình vẽ trên các bạn lưu ý phải nối chân GPIO 0 của bo mạch ESP với GND để đặt vào chế độ flash mode thì mới có thể download firmware, còn chân CH-PD (một số bo mạch ghi là chân EN) thì không nhất thiết phải nối VCC. Một lưu ý đặc biệt quan trọng khác đó là mạch ESP làm việc với nguồn 3V3, và trên FTDI cấp ra các nguồn VCC là 5V và 3V3 nên các bạn cần kiểm tra kỹ để cấp đúng nguồn 3V3 tránh làm hỏng bo mạch ESP.
Sau khi kết nối các bạn download công cụ flasher và firmware của bo mạch ở link này về máy tính, giải nén ra và chạy esp8266_flasher.exe rồi download firmware lên bo mạch ESP8266 nói trên. Thông số donwload như hình vẽ dưới đây. Lưu ý là khi cắm FTDI vào cổng USB, mỗi máy tính sẽ nhận một cổng com khác nhau, trong hình vẽ dưới bo mạch này được nhận là cổng COM9, các bạn kiểm tra trên máy tính của mình xem bo mạch của các bạn được nhận vào cổng COM nào thì điều chỉnh thông số này.
Bước 2: Test firmware
Sau khi kết nối đã tải firmware thành công, các bạn mở công cụ Arduino IDE (Sketch) rồi thực hiện các bước sau để tải thư viện điều khiển cho mạch arduino:
- Vào thực đơn File chọn mục Preferences
- Trong hộp thoại, tìm text box ADDITIONAL BOARDS MANAGER URL copy và dán đường link sau: https://arduino.esp8266.com/stable/package_esp8266com_index.json
- Vào thực đơn Tools --> Board --> Board Manager
- Gõ esp trong hộp tìm kiếm
- Sau đó Install package nói trên
- Sau khi Install Package, vào thực đơn Tools --> Board
- Lựa chọn module ESP phù hợp. Trong dự án thực tế chúng ta dùng bo mạch ESP-01 thì chọn GENERIC ESP8266 MODULE
- Thay đổi properties phù hợp module trong thực đơn Tools
- Kiểm tra để đảm bảo là đã có thư viện ESP8266WIFI
Sau đó test firmware (Cũng thực hiện trong Arduino IDE)
- Vào menu Serial Monitor
- Chọn baud rate 115200
- Gõ lệnh AT và nhấn SEND
Nếu kết quả trả về là OK thì có nghĩa là bo ESP-8266 đã cập nhật firmware OK và sẵn sàng nhận lệnh. Tập lệnh AT của bo mạch này được cho trong hình vẽ sau, các bạn cũng có thể test thêm các lệnh khác để điều khiển bo.
Bước 3: Tải code lên bo mạch ESP8266
Các bạn download code điều khiển bo mạch này tại đây, và sau đó mở file bằng Arduino IDE rồi chọn lệnh download để tải code lên bo mạch ESP8266, theo dõi quá trình compile và download xem có lỗi gì hay không. Nếu mọi việc kết thúc tốt đẹp bạn sẽ thấy đèn trên bo mạch ESP sáng ổn định mầu xanh và khi dùng điện thoại tìm kiếm kết nối Wifi thì sẽ có một mạng Wifi có tên ESP8266 WIFI, các bạn kết nối vào mạng wifi này với mật khẩu là "123456", khi đó các bạn sẽ nhận được địa chỉ IP là 192.168.4.2 còn wifi router này có địa chỉ 192.168.4.1
Bước tiếp theo chúng ta cần cài đặt ứng dụng điều khiển wifi trên điện thoại di động. Ứng dụng có thể tải về ở link này sau đó chạy trực tiếp trên điện thoại. Ứng dụng khá đơn giản, chỉ cần dùng nút SET IP ADDRESS để đặt địa chỉ ip 192.168.4.1 là có thể điều khiển được ngay. Hình ảnh ứng dụng như sau:
Nguyên tắc làm việc của app wifi controller này đơn giản là gửi các request http đến ESP8266, lúc này đã được setup thành một webserver và có thể nhận các web service request qua tham số GET. Các bạn có thể bật cửa sổ Serial Monitor để theo dõi việc nhận request từ App trên cửa sổ này. Các request sẽ có dạng "GET /?pin=ON1" hoặc "GET /?pin=OFF1". Nếu không muốn dùng app, các bạn có thể tự viết các form trên giao diện website để gửi lệnh lên ESP8266 tùy biến giao diện theo ý thích của mình.
Bước 4: Kết nối ESP8266 với mạch rơ-le
MẠCH ESP8266 mini chỉ có 2 chân GPIO là IO0 và IO2. Kết nối ESP8266 với module 2 rơ-le rất đơn giản, chỉ cần nối 2 chân GPIO này với 2 chân IN1, IN2 của bo mạch rơ le là xong. Xem hình vẽ đấu nối dưới đây
Trong trường hợp không sử dụng module 2 rơ-le như trên, các bạn sử dụng các linh kiện là rơ-le thuần, điện trở, diot và bóng bán dẫn để tự tạo mạch đóng ngắt rơ le và kết nối với ESP-8266 như hình vẽ sau:
Các lưu ý quan trọng
Khi thực hiện dự án này các bạn cần lưu ý một số điểm sau:
1) Điện áp rơ le điều khiển sẽ là 220V nên cần tuân thủ các nguyên tắc an toàn về điện khi đấu nối rơ le với bóng đèn và nguồn điện trong nhà
2) Rơ le sử dụng điện áp 5V trong khi ESP8266 sử dụng điện áp 3.3V vì vậy có thể chọn một trong 2 phương án sau để cấp nguồn cho 2 bo mạch này. Phương án 1, sử dụng luôn bo mạch FTDI, bo mạch này nhận điện áp vào 5V qua cổng USB và có các pin VCC 5V và 3V3 nên có thể cấp nguồn luôn cho 2 bo mạch còn lại. Phương án 2: Sử dụng 02 điện trở để giảm điện áp 5V chung xuống còn 3V3 cho ESP8266 như hình vẽ sau
3) Trường hợp không có sẵn bo mạch FTDI, có thể sử dụng Arduino như một bộ chuyển đổi USB - TTL để flash cho ESP8266 như hình vẽ sau