Project được thực hiện với các nền tảng NodeJS - ExpressJS, MySQL Workbench 8.0 CE, MQTT Broker, Arduino IDE, NextJS14 cùng các thư viện khác.
Tiến hành clone project bằng câu lệnh git clone trong terminal. Sau đó, thực hiện các câu lệnh sau trong terminal của Visual Studio Code:
- Vào thư mục server, sau đó cài đặt các thư viện của npm
npm install
- Vào thư mục iot-app, sau đó cài đặt các thư viện của npm
npm install
- Cài đặt Arduino
- Arduino Configuration
- Bật tắt đèn
- Pub Sub dữ liệu bằng MQTT
- DHT11 với ESP32
- Light Sensor Module với ESP32
- Thay đổi các giá trị sau trong file "reconnectIOT.ino" ở folder arduino cho phù hợp với Wifi và MQTT Broker:
const char *ssid = "<YOUR_WIFI_SSID>";
const char *password = "<YOUR WIFI PASSWORD>";
const char *mqtt_server= "<YOUR HOST>";
const int mqtt_port = <YOUR MQTT PORT NUMBER>;
const char *mqtt_username = "<YOUR MQTT USERNAME>";
const char *mqtt_password = "<YOUR MQTT PASSWORD>";
- Tạo database với tên "iot", sau đó tạo 2 bảng: sensor(id, temperature, humidity, light, time) và action(id, device, status, time).
- Kết nối MySQL với server trong file db.js trong folder server:
export const db = await mysql.createConnection({
host: "<your host>",
user: "<your user>",
password: "<your password>",
database: 'iot'
});
- Kết nối với MQTT Broker:
const host = 'localhost';
const port = 1886;
const clientId = `mqtt_${Math.random().toString(16).slice(3)}`;
const connectUrl = `mqtt://${host}:${port}`;
export const client = mqtt.connect(connectUrl, {
clientId,
clean: true,
connectTimeout: 4000,
username: "<your mqtt username>",
password: "<your mqtt password>",
reconnectPeriod: 1000
});
- Mở folder iot-app trong terminal và chạy câu lệnh:
npm run dev
- Mở folder server trong terminal và chạy câu lệnh:
npm run server