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é.

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

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à cập nhật từ xa

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

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

Node-red MQTT và ESP8266

Cơ sở dữ liệu

Lưu dữ liệu ESP8266 lên database của Firebase

Dự án thực tế

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.

Giao tiếp với ESP8266 dùng 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.

Giao tiếp ESP8266 và TIVA C.

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