ksp gửi vào
- 22069 lượt xem
Dù có làm gì đi chăng nữa, sau khi lập trình xong, ta phải kiểm thử! Không kiểm thử thì không nghiệm thu, mà không nghiệm thu thì dự án của bạn chưa hoàn thành. Hôm nay, mình sẽ hướng dẫn các bạn kiểm thử iNut - Cảm biến từ webapp. Rất dễ dàng và tinh gọn thông qua máy tính luôn.
Chúng ta sẽ làm gì
Làm gì cũng vậy, phần mềm mà chưa qua giai đoạn kiểm thử thì không được gọi là phần mềm. Vậy kiểm thử phần cứng iNut - cảm biến khắc khe như thế nào? Chúng ta cùng xem qua trong bài viết này.
Bạn cần chuẩn bị những gì
Phần mềm
- Trên điện thoại di động:
- iNut - Công tắc wifi (các bạn search trong apple store hoặc google play từ khóa inut là ra). Tải về trên Apple Store, tải về ở Google Play.
- Trên máy tính:
Phần cứng
- iNut - Cảm biến (hoặc tự chuẩn bị thêm một con NodeMCU khác và nạp firmware theo hướng dẫn này)
- Arduino Uno
Lắp mạch kiểm thử
#include <Wire.h> #define N_SENSOR 8 float sensors[N_SENSOR]; //Cài đặt chương trình void setup() { Serial.begin(9600); Wire.begin(10); //Đăng ký lệnh lắng nghe lệnh từ iNut - Cảm biến. iNut Cảm biến => Arduino Wire.onReceive(receiveEvent); //Đăng ký lệnh khi iNut - Cảm biến yêu cầu gửi dữ liệu lại cho nó. Arduino => iNut Cảm biến Wire.onRequest(i2cRequestEvent); Serial.println("Hello world"); } //Các biến lưu trữ lệnh khi nhận được lệnh từ iNut - Cảm biến volatile char buffer[33]; volatile boolean receiveFlag = false; //Khi nhận được lệnh từ iNut cảm biến thì lắng nghe void receiveEvent(int howMany) { Wire.readBytes((byte *)buffer, howMany); buffer[howMany] = 0; receiveFlag = true; } void i2cRequestEvent() { //Buộc phải có nếu bạn muốn gửi dữ liệu char *data = (byte*)&sensors; Wire.write(data, sizeof(sensors)); Serial.println(F("gui den inut - cam bien")); } void loop() { //rain sensor sensors[0] = millis() % 10000; sensors[1] = rand() % 10000; sensors[2] = rand() % 10000; sensors[3] = rand() % 10000; sensors[4] = rand() % 10000; sensors[5] = rand() % 10000; sensors[6] = rand() % 10000; sensors[7] = rand() % 10000; if (receiveFlag) { //khi có tín hiệu là đã nhận được lệnh String command = buffer; //chép lệnh vào biến String cho dễ xử lý Serial.print(command);// in ra lệnh Serial.print(' '); Serial.println(millis());//in ra thời gian theo millis tính từ lúc arduino chạy để debug receiveFlag = false; //đánh dấu đã xử lý xong lệnh, không cần đọc nữa } }
Nếu bạn không biết nạp code cho Arduino, xin hãy xem hướng dẫn ở đây.
Kết quả của chúng ta khi test trên phần mềm iNut
Cài đặt chương trình kiểm thử iNut Cảm biến
Để cài đặt chương trình kiểm thử iNut các bạn làm theo các hướng dẫn sau đây:
Các bạn mở Windows command line lên bằng cách nhấn tổ hợp phím Windows + R (phím Windows là phím giữa Alt và Ctrl á). Sau đó gõ lệnh cmd và nhấn OK.
Trong bản lệnh hiện ra, bạn lần lượt chạy các lệnh sau (chép và dán vào từng lệnh một cho chắc nhé)
Clone code về
git clone https://github.com/ngohuynhngockhanh/iNut-Node-RED-Kickstarter
cd iNut-Node-RED-Kickstarter
git checkout sensor-serial-monitor
Cài đặt
npm install
Chạy chương trình
npm start
Sau khi cài đặt xong, bạn sẽ có một thông báo như thế này:
Và các bạn truy cập vào http://127.0.0.1:1880/... nhé! Đây là giao diện của chúng ta.
Các bạn truy cập vào địa chỉ http://localhost:1880/ui/... để xem giao diện đồ họa nhé.
Okay, cài đặt xong rồi, bước tiếp theo là cập nhập các mã thông tin trong ví dụ mẫu cho phù hợp với các thiết bị iNut của bạn.
Cách chép mã Node-Red topic từ phần mềm iNut
Cách chép mã REST API từ phần mềm iNut
Chúc các bạn thành công!