Lập trình nhúng và IoT khác nhau thế nào: phạm vi, ví dụ, cách kết nối, kỹ năng và nên học gì trước

Phân biệt lập trình nhúng và IoT qua bốn lớp thiết bị, kết nối, máy chủ, ứng dụng; ví dụ nhiệt kế bật quạt; chọn Wi-Fi, BLE, LoRa, 4G; kỹ năng từng vai trò, bảo mật và học gì trước.

"Lập trình nhúng" và "IoT" hay được dùng lẫn lộn, cả trong tin tuyển dụng lẫn tên khóa học. Thật ra hai khái niệm lồng vào nhau: mọi thiết bị IoT đều có phần nhúng, nhưng không phải thiết bị nhúng nào cũng là IoT. Bài này giải thích phạm vi của từng khái niệm, so sánh qua một ví dụ cụ thể, giới thiệu các cách kết nối thường dùng, kỹ năng của từng vai trò và nên học phần nào trước.

1. Nhúng là một phần của IoT

Khung lớn hệ thống IoT gồm bốn lớp nối tiếp: thiết bị, kết nối, máy chủ và đám mây, ứng dụng; lớp thiết bị được khoanh là phần lập trình nhúng
Bốn lớp của một hệ thống IoT; khung xanh là phần lập trình nhúng.
  • Lập trình nhúng là viết chương trình chạy bên trong thiết bị: đọc cảm biến, điều khiển relay, động cơ, màn hình, quản lý nguồn. Thiết bị có thể không nối mạng: lò vi sóng, máy giặt, đồng hồ đo nhiệt độ.
  • IoT (Internet of Things, Internet vạn vật) là cả hệ thống: thiết bị nhúng gửi dữ liệu qua mạng tới máy chủ, máy chủ lưu và xử lý, người dùng xem và điều khiển qua ứng dụng web hoặc điện thoại.

Nói cách khác, IoT = thiết bị nhúng + kết nối + máy chủ + ứng dụng. Người làm nhúng lo lớp đầu tiên; một dự án IoT trọn vẹn cần thêm người (hoặc kỹ năng) cho ba lớp còn lại.

2. Một ví dụ: nhiệt kế bật quạt

Hàng trên: cảm biến nhiệt độ vào ESP32, ESP32 hiện 31,5 độ trên OLED và bật relay quạt khi trên 30 độ. Hàng dưới: ESP32 gửi số đo qua Wi-Fi tới MQTT broker lưu lịch sử, điện thoại hiện 31,5 độ và có công tắc
Bản IoT thêm Wi-Fi, máy chủ MQTT và ứng dụng điện thoại (số đo là ví dụ).
  • Bản nhúng: ESP32 đọc cảm biến, hiện nhiệt độ lên màn hình OLED, quá 30 °C thì đóng relay bật quạt. Mọi thứ nằm trong một hộp, không cần mạng.
  • Bản IoT: vẫn mạch đó, thêm Wi-Fi gửi số đo mỗi phút lên máy chủ MQTT; điện thoại xem nhiệt độ, xem lịch sử theo ngày, đổi ngưỡng, nhận cảnh báo khi quá nóng.

Điểm quan trọng: bản IoT vẫn phải tự bật quạt khi mất mạng. Những quyết định cần nhanh và cần an toàn nên nằm trong thiết bị (xử lý tại chỗ, còn gọi là edge); máy chủ để lưu, tổng hợp, xem và chỉnh từ xa. Thiết kế ngược lại (thiết bị chờ máy chủ ra lệnh mới bật quạt) sẽ hỏng ngay khi router mất điện.

3. Chọn cách kết nối

Biểu đồ định tính tầm xa và tốc độ dữ liệu: Wi-Fi tốc độ cao tầm gần; BLE tầm gần tiết kiệm; ESP-NOW giữa các ESP32 không cần router; Zigbee mạng lưới; LoRa vài km rất chậm; NB-IoT, LTE-M dùng SIM ít dữ liệu; 4G phủ rộng tốc độ cao
Vị trí tương đối, không theo tỉ lệ.
Kết nốiHợp vớiLưu ý
Wi-FiThiết bị trong nhà, xưởng có router; gửi nhiều dữ liệuTốn điện, khó chạy pin lâu
Bluetooth Low EnergyThiết bị đeo, cảm biến cạnh điện thoạiTầm gần, cần điện thoại hoặc cổng chuyển tiếp
ESP-NOWNhiều mạch ESP32 nói chuyện trực tiếpChỉ giữa các chip của cùng hãng, không ra Internet
ZigbeeNhà thông minh nhiều cảm biến nhỏCần bộ điều phối (hub)
LoRaCảm biến ở vườn, ruộng, trang trại cách vài km, chạy pinRất chậm, mỗi gói vài chục byte
4G, NB-IoT, LTE-MThiết bị di động, nơi không có Wi-FiCần SIM và gói cước, module đắt hơn

Các bài đã có trên pyworld.vn: kết nối Wi-Fi trên ESP32, BLE là gì, ESP-NOW, LoRa SX1278 với ESP32.

4. Giao thức và máy chủ

  • HTTP: thiết bị gửi yêu cầu tới máy chủ web hoặc tự làm máy chủ web nhỏ (ESP32 làm web server điều khiển relay).
  • MQTT: thiết bị và ứng dụng cùng nối tới một máy chủ trung gian (broker), gửi và nhận tin theo chủ đề. Nhẹ, hợp với thiết bị nhỏ. Xem MQTT với ESP32 và gateway LoRa sang MQTT.
  • Nền tảng có sẵn: thay vì tự viết máy chủ, có thể dùng nền tảng nhà thông minh chạy trong nhà hoặc dịch vụ đám mây có ứng dụng điện thoại sẵn. Nhanh để làm thử, nhưng phụ thuộc vào nền tảng đó.

5. Kỹ năng của từng vai trò

Vai tròLàm gìKỹ năng chính
Kỹ sư nhúng (firmware)Chương trình trong thiết bịC/C++, ngoại vi, ngắt, RTOS, tiết kiệm năng lượng, đọc sơ đồ mạch, đo đạc
Kỹ sư phần cứngMạch điện, mạch inNguồn, chọn linh kiện, vẽ mạch in, kiểm tra nhiễu
Kỹ sư IoT, backendMáy chủ, cơ sở dữ liệu, giao thứcMạng, MQTT, HTTP, cơ sở dữ liệu, bảo mật, vận hành máy chủ
Lập trình ứng dụngWeb, ứng dụng điện thoạiGiao diện, gọi API, hiển thị dữ liệu

Ở dự án nhỏ, một người thường làm cả bốn phần ở mức cơ bản; ở công ty, mỗi phần là một nhóm riêng.

6. Bảo mật: điều riêng của IoT

Thiết bị nhúng không nối mạng chỉ bị phá khi có người cầm vào. Thiết bị IoT có thể bị truy cập từ bất cứ đâu, nên cần thêm:

  • Không để mật khẩu mặc định; không ghi mật khẩu Wi-Fi, khóa dịch vụ thẳng vào mã nguồn chia sẻ công khai.
  • Dùng kết nối có mã hóa (HTTPS, MQTT qua TLS) khi gửi qua Internet.
  • Không mở cổng trên router để truy cập thiết bị từ ngoài; dùng máy chủ trung gian hoặc mạng riêng ảo.
  • Có cách cập nhật firmware (nạp qua Wi-Fi) để vá lỗi về sau.

7. Học cái nào trước

Nên học nhúng trước: đọc cảm biến, điều khiển đầu ra, gỡ lỗi phần cứng cho thật vững, rồi mới thêm Wi-Fi và máy chủ. Thêm mạng vào một chương trình còn lỗi phần cứng chỉ làm lỗi khó tìm hơn. Với ESP32, bước chuyển sang IoT rất ngắn vì chip có sẵn Wi-Fi và Bluetooth: cùng một mạch ESP32 DevKit, một module relay và một màn hình OLED làm được cả bản nhúng lẫn bản IoT của nhiệt kế trên.

8. Xem thêm

  • TCP và UDP là gì: nền tảng mạng cho mọi giao thức IoT.
  • RF 433 MHz: kết nối không dây đơn giản nhất.
  • Bài học lập trình nhúng bắt đầu từ đâu trong cùng loạt lộ trình, và loạt bài ESP32 với điện thoại và dịch vụ đám mây.

Tin tức liên quan

Cảm biến độ dẫn điện (EC, TDS): cấu tạo, nguyên lý, chế tạo và tự làm đầu đo với ESP32
Cảm biến độ dẫn điện (EC, TDS): cấu tạo, nguyên lý, chế tạo và tự làm đầu đo với ESP32

Cảm biến độ dẫn điện hoạt động thế nào: EC và TDS, hằng số bình đo, vì sao phải đo bằng dòng xoay chiều, loại hai điện cực, bốn điện cực, cảm ứng, cách chế tạo và tự làm đầu đo với ESP32.

Transistor khuếch đại: mạch E chung, phân cực, điểm làm việc và hệ số khuếch đại
Transistor khuếch đại: mạch E chung, phân cực, điểm làm việc và hệ số khuếch đại

Mạch khuếch đại E chung dùng transistor: phân cực bằng cầu phân áp, cách tính điểm làm việc, đường tải một chiều, hệ số khuếch đại có và không có tụ CE, cắt đỉnh, ba cách mắc transistor.

Modbus TCP/IP (phần 1): phần đầu MBAP và ESP32 làm máy chủ qua Wi-Fi
Modbus TCP/IP (phần 1): phần đầu MBAP và ESP32 làm máy chủ qua Wi-Fi

Giải thích Modbus TCP/IP: phần đầu MBAP, cổng 502, điểm khác với Modbus RTU. Kèm chương trình ESP32 làm máy chủ Modbus TCP qua Wi-Fi với 10 thanh ghi giữ và 8 cuộn, tự phân tích khung, không dùng thư viện.

Công tắc, nút nhấn, cầu chì và relay: cách chọn, cách nối với ESP32
Công tắc, nút nhấn, cầu chì và relay: cách chọn, cách nối với ESP32

Các loại công tắc SPST, SPDT, nút nhấn 4 chân, điện trở kéo lên và chống dội, cầu chì và cách chọn, cấu tạo relay COM NO NC, thí nghiệm nút nhấn bật tắt module relay bằng ESP32.

Cảm biến quang: thu phát, phản xạ gương, khuếch tán, triệt nền – cấu tạo, nguyên lý và chế tạo
Cảm biến quang: thu phát, phản xạ gương, khuếch tán, triệt nền – cấu tạo, nguyên lý và chế tạo

Cảm biến quang hoạt động thế nào: bốn kiểu thu phát, phản xạ gương, khuếch tán, triệt nền; điều chế ánh sáng chống nhiễu, cấu tạo, cách chế tạo và làm cảm biến phản xạ có điều chế với ESP32.

Timer phần cứng trên ESP32: ngắt định kỳ chính xác tới micro giây, API mới của gói esp32 3.x
Timer phần cứng trên ESP32: ngắt định kỳ chính xác tới micro giây, API mới của gói esp32 3.x

Timer phần cứng ESP32 hoạt động thế nào, API timerBegin, timerAlarm của gói esp32 3.x, quy tắc viết hàm ngắt, thí nghiệm so ngắt timer 500 µs với vTaskDelay(1) khi CPU bận.

Cách dùng đồng hồ vạn năng: đo điện áp, dòng điện, điện trở, thông mạch, diode
Cách dùng đồng hồ vạn năng: đo điện áp, dòng điện, điện trở, thông mạch, diode

Hướng dẫn dùng đồng hồ vạn năng số cho người mới: các bộ phận, chọn thang, cách mắc đo điện áp, dòng điện, điện trở, thử thông mạch và diode, đọc kết quả, độ chính xác, lỗi cần tránh.

Cảm biến áp suất: cấu tạo, nguyên lý áp trở, điện dung, áp điện và cách chế tạo
Cảm biến áp suất: cấu tạo, nguyên lý áp trở, điện dung, áp điện và cách chế tạo

Cảm biến áp suất hoạt động thế nào: áp suất tuyệt đối và tương đối, màng và ống Bourdon, áp trở silic, điện dung, áp điện, quy trình chế tạo MEMS và cách đọc loại 0,5–4,5 V bằng ESP32.


Bình luận
Đã thêm vào giỏ hàng