Dạo này dân tình hay rộn ràng các thông tin về IOT nên mình tranh thủ viết một chút, cũng như là để tổng hợp lại những kiến thức để làm một cái gọi là IOT đơn giản. Mục đích cũng không có gì hơn ngoài việc giúp đỡ anh em mới tìm hiểu đỡ phải bỡ ngỡ vì những khái niệm IOT quá trừu tượng, có thể bắt tay vào làm được một cái gì đó luôn, qua đó sẽ giúp anh em có thêm động lực để tìm hiểu sâu thêm.
Để đơn giản dễ hiểu thì IOT = Internet of Things, mình hiểu đơn giản cho nhẹ đầu là đồ vật có thể kết nối internet.
Vậy làm thế nào để một vật có thể kết nối được với internet ? Cách đơn giản, rẻ tiền, dễ làm, dễ hiểu, có kết quả ngay, phù hợp với mục đích của mình là sử dụng một modul/ board có khả năng kết nối với internet như ESP8266.
Phần cứng
Ban đầu mình sử dụng ESP8266v1, phiên bản này giờ đã khá cũ, sau đó chuyển sang ESP8266v7 và hiện nay thì đang dùng luôn bản NodeMCU (ESP8266v12E)
Hình minh họa trên các bạn có thể thấy lý do tại sao mình lại chuyển sang dùng NodeMCU, thay vì mua 3 modul riêng gồm nguồn + esp8266 + pl2303 thì mình dùng board nodeMCU, nó giúp mình đỡ phải kết nối, câu dây các kiểu, chỉ tập trung vào dev thôi.
Nên nếu bạn muốn nhanh gọn thì nên dùng luôn NodeMCU, còn nếu thử thách khó khăn hơn chút thì mình mua 3 phần kia tự kết nối (tất cả đều là ESP8266v12 cả nên yên tâm mà dùng).
Firmware
Firmware ở đây là chương trình được chạy sẵn trên ESP8266, nó là file .hex hoặc file .bin mà mỗi khi bạn build chương trình sinh ra nó đó. Có 2 loại
- Firmware AT: đây là firmware do nhà sản xuất cài sẵn vào trong ESP, mình có thể dùng Uno hoặc TIVA hoặc board nào đó giao tiếp với ESP thông qua tập lệnh AT, với cách này thì ESP chỉ đóng một nhiệm vụ là kết nối với internet và gửi dữ liệu từ Uno/TIVA gửi lên.
- Firmware tự build: đây là firmware do chúng ta lập trình, với firmware này thì chúng ta có thể tùy biến thoải mái, bạn có thể hiểu giờ thì ESP nó thành Arduino Uno có wifi.
Lập trình
Có khá nhiều cách lập trình cho ESP8266, mình cũng đã thử qua một vài cách về lập trình C dùng Nonos, rtos, lua, arduino thì cách mình thấy đơn giản và dễ hiểu nhất vẫn là arduino, do đó mình tập trung đi vào các ví dụ với Arduino luôn. Với cách lập trình này thì mình sẽ tự build firmware cho ESP8266, board nodeMCU sẽ hoạt động độc lập và không dính gì tới Uno hay TIVA cả.
Sử dụng Arduino IDE để lập trình cho ESP8266 và viết chương trình đầu tiên thử NodeMCU
Nếu có lỡ mua board ESP8266v1 thì bạn có thể xem qua bài viết này để thử nghiệm ban đầu
Kiểm tra ESP8266v1 với tập lệnh AT
Sau 2 bước trên thì mình sẽ xóa luôn firmware AT, lập trình trực tiếp trên ESP8266 luôn, các bạn lưu ý ở đây cách lập trình có thể áp dụng cho tất cả các phiên bản ESP8266 từ v1 – v12, nodeMCU nhé.
Mạng local
Giao tiếp và điều khiển local (trong mạng cục bộ)
Tạo webserver thu thập dữ liệu DHT11 với ESP8266
Bật tắt đèn qua web với ESP8266
Tạo hệ thống cảnh báo trộm với ESP8266 và Nodejs
Mạng internet
Giao tiếp gửi nhận dữ liệu thông qua internet
Lấy nội dung từ website với ESP8266.
Đăng thông báo lên Facebook với ESP8266
Dùng Blynk để điều khiển và giám sát nhiệt độ, độ ẩm qua điện thoại với ESP8266
Tạo trạm khí tượng dự báo thời tiết với ESP8266
Gửi dữ liệu lên Thingspeak với ESP8266
Lập trình cập nhật thời gian thực qua internet
Kết nối và gửi dữ liệu lên AWS
Cấu hình và OTA
Sau khi thực hiện được một số ví dụ thực hành thì các bạn có thể tìm hiểu thêm một chút về
Cấu hình tự đăng nhập wifi qua SmartConfig với ESP8266
Cập nhật firmware từ xa cho ESP8266
MQTT
Kết nối nhiều thiết bị
Gửi nhận dữ liệu với giao thức MQTT dùng ESP8266
Cơ sở dữ liệu
Lưu dữ liệu ESP8266 lên database của Firebase
Dự án
Một dự án thực tế cho các bạn có thể ứng dụng
Tự làm hệ thống nông nghiệp thông minh sử dụng NodeMCU
Sau khi làm hệ thống này sẽ có phát sinh khi sử dụng nhiều cảm biến hơn mình sẽ nâng cấp bằng cách dùng ESP8266 giao tiếp với Uno/TIVA.
Firmware AT
Trước tiên là cập nhật firmware cho ESP8266, sau đó là lập trình trên Uno và TIVA (2 cách lập trình trên Uno và TIVA cơ bản giống nhau)
Cập nhật firmware AT cho ESP8266.
Thingspeak với ESP8266 và TIVA C.
Tự làm hệ thống nông nghiệp thông minh với Arduino và ESP8266.
Tự làm hệ thống nông nghiệp thông minh đơn giản với TIVA và ESP8266.
Fix lỗi kết nối
Hướng dẫn sửa lỗi không kết nối của NodeMCU
Hướng dẫn cài driver PL2303 với Win10
Thân ái,