HƯỚNG DẪN SỬ DỤNG INUT CẢM BIẾN ĐỂ ĐIỀU KHIỂN 8 RELAY QUA INTERNET (KHÔNG CẦN INUT NODE - RED IDE)

Mô Tả Dự Án

Để điều khiển 8 relay qua internet với iNut cảm biến, trước giờ muốn thực hiện được việc này các bạn cần phải sử dụng iNut Node - RED IDE để điều khiển nó, đôi khi cũng bất tiện cho một số bạn newbie vì phải thực hiện qua quá nhiều bước vừa trên máy tính vừa trên điện thoại. Hoặc nhưng bạn master thì sẽ sử dụng bộ API có sẵn của iNut Platform để tự làm app riêng cho mình. Hôm nay, mình sẽ hướng dẫn bạn cách sử dụng APP INUT để điều khiển 8 relay từ xa qua internet mà không cần iNut Node - RED IDE.

Giờ chúng ta sẽ bắt đầu làm nó luôn nha.

I. Bạn Cần Chuẩn Bị Những Gì?

Phần Cứng

  • iNut Cảm Biến
  • Arduino (mình xài uno)
  • USB Type B
  • Module 8 relay (ở đây mình không có module 8 relay nên mình xài 2 module 4 relay nha)
  • Một ít dây bus cái - cái để cắm, rào đựng hàn lên iNut Cảm Biến

Sơ đồ Kết Nối

Module 4 Relay 1

Module 4 Relay 2

iNut Cảm Biến

VCC

VCC

5V

GND

GND

GND

IN1

 

2

IN2

 

3

IN3

 

4

IN4

 

5

 

IN1

6

 

IN2

7

 

IN3

8

 

IN4

9

 

 

Phần Mềm

  • Trên điện thoại di động:
    • iNut - Platform (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:

Các bạn đọc bài viết này để biết cần chuẩn bị những phần mềm gì: http://arduino.vn/cc

II. Lập Trình:

Bạn Cần Chuẩn Bị Thư Viện Cho iNut Cảm Biến Cho Arduino : https://github.com/ngohuynhngockhanh... (tải nhanh)

Code Arduino

#include <iNut.h>
iNut sensor;

#define BAT LOW
#define TAT HIGH
#define RELAY_COUNT 8
#define WRITE_COMMAND 200
int relay[] = {2,3,4,5,6,7,8,9};
void setup() {
  Serial.begin(9600); //bật baudrate ở mức 9600

  Serial.println("San sang nhan lenh");

  for (int i = 0; i < RELAY_COUNT; i++) {
    pinMode(relay[i], OUTPUT);
    digitalWrite(relay[i], TAT);
  }
  
  //Khai báo số lượng luồn cảm biến
  sensor.setup(8); //Sẽ có 08 luồn cảm biến

  sensor.addCommand("ON", onFunction);
  sensor.addCommand("OFF", offFunction);
  sensor.addCommand("ONLINE", onlineFunction);
  sensor.addCommand("OFFLINE", offlineFunction);
  sensor.addCommand("TIME", timeFunction);
  sensor.setDefaultHandler(defaultHandler);
}
void timeFunction() {
  int year = atoi(sensor.next());
  int month = atoi(sensor.next());
  int day = atoi(sensor.next());
  int hour = atoi(sensor.next());
  int minute = atoi(sensor.next());
  int second = atoi(sensor.next());
  Serial.print("Bay gio la: ");
  Serial.print(year);
  Serial.print('/');
  Serial.print(month);
  Serial.print('/');
  Serial.print(day);
  Serial.print(' ');
  Serial.print(hour);
  Serial.print(':');
  Serial.print(minute);
  Serial.print(':');
  Serial.print(second);
  Serial.println('!');
}

void onlineFunction() {
  Serial.println("Thiet bi dang ket noi Internet rat ok");
}

void offlineFunction() {
  Serial.println("Thiet bi dang mat ket noi");
}

void onFunction() {
  
  int bit_index = atoi(sensor.next()) - WRITE_COMMAND;
  
  Serial.print("Bat relay thu ");
  Serial.println(bit_index);
  
  digitalWrite(relay[bit_index],BAT);
}

void offFunction() {
  int bit_index = atoi(sensor.next())  - WRITE_COMMAND;
  Serial.print("Tat relay thu ");
  Serial.println(bit_index);
  digitalWrite(relay[bit_index], TAT);
}

void loop() {

  //sensor.setValue(0, digitalRead(LED)); //đọc giá trị của đèn LED

  for (int i = 0; i < RELAY_COUNT; i++) {
    int value = digitalRead(relay[i]);
    //đồng bộ trạng thái iNut
    if (value == BAT) {
      sensor.turnOn(0, i); 
    } else {
      sensor.turnOff(0, i); 
    }
  }
  
  //giá trị cho các luồn từ 1-7 là giá trị random
  ///Tại sao lại sử dụng random? Vì đây là thử nghiệm, bạn có thể thay thế giá trị random bằng một giá trị cảm biến hoặc trị số mà bạn mong muốn đồng bộ lên Internet!
  for (byte i = 1; i <= 7; i++) {
    unsigned long value = random() % 10000; //trả về giá trị random - "hên xui" - tự do
    sensor.setValue(i, value); //gán giá trị trên vào luồn
  }
  sensor.loop();
}

//Nếu nhận được lệnh không phải từ những lệnh được đăng ký trước thì sẽ ghi ra ở đây
void defaultHandler(const char *command) {
  Serial.print(F("---Not found handler: "));
  Serial.println(command);


  //Đoạn chương trình dưới chỉ dùng để debug, để các bạn biết chương trình của mình ở lỗi ở đâu để khắc phục, cũng không cần hiểu nha.
  int idx = 0;
  char *arg;
  while ((arg = sensor.next()) != NULL) { //còn tham số nào thì in ra
    Serial.print("-----> Gia tri thu #");
    Serial.print(idx);
    Serial.print(": ");
    Serial.println(arg);
   
    idx++;
  }
}

Trên App iNut

Bạn theo dõi link này để cài đặt app, tạo tài khoản và đăng nhập vào, chọn thiết bị: http://arduino.vn/cc

Bước 1: Mở app iNut, chọn vào phần cài đặt -> chọn iNut Cảm Biến

 

Bước 2: Chọn Thuật Sĩ Cài Đặt Nhanh

Bước 3: Setup thông số như hình phía dưới, chọn Chạy Trình Thuật Sĩ

Bước 4: Sẽ hiện ra thông báo như hình dưới, chọn OK

Bước 5: qua phần bảng điều khiển, kéo xuống dưới phần iNut cảm biến và điều khiển

Như vậy là xong, chiêm ngưỡng thành quả và điều khiển liền đi nào. Có thể mở rộng ra 16,32 relay v,v tùy vào nhu cầu sử dụng của bạn.

Mọi thắc mắc hoặc cần trợ giúp có thể liên hệ tác giả bài viết qua sđt: 0373998468

III. Kết Quả Của Ngày Hôm Nay

lên
2 thành viên đã đánh giá bài viết này hữu ích.
Các dự án được truyền cảm hứng

Hướng dẫn sử dụng cảm biến nhiệt độ DS18B20 (-55°C đến +125°C) sai số ±0.5°C

Lại quay về vấn đề đo nhiệt độ, như ở bài trước, mình đã dùng cả LM35, cả TMP36. Nhưng rốt cuộc vẫn không hiệu quả, lần này mình đang sử dụng con DS18B20 này và cảm thấy khá ổn hơn so với lần trước. Nhiệt độ ít bị chênh lệch hơn và như quảng cáo là chỉ có sai số ±0.5°C thôi (nếu nhiệt độ trong phạm vi -10°C to +85°C, đáng để thử phải không nào?

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Hướng dẫn sử dụng cảm biến nhiệt độ TMP36 - Khoảng đo từ -40 đến 125 độ C

Mình thấy cảm biến nhiệt độ LM35 rất rẻ và hoạt động cũng tương đối chính xác. Tuy nhiên, độ bền của nó không cao vì mình thấy mình chỉ dùng cảm biến LM35 trong khoảng thời gian 3 tháng, sau đó phải thay cảm biến khác (để đo nhiệt độ luộc gà). Bản thân mình không thích điều đó nên thử dùng một cảm biến khác cũng có chức năng tương tự là TMP36 và thấy nó hoạt động bền hơn (đã đến tháng thứ 4 nhưng chưa hư). Mình xin chia sẻ với các bạn nhé. Loại này hơi khó tìm và không thông dụng, nhưng nó bền hơn hẳn LM35 các bạn nhé.

lên
10 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Tài Liệu Kỹ Thuật Bỏ Túi Để Xây Dựng – Vận Hành – Quản Lý Một Dự Án Internet Of Things Với iNut Platform

Kính chào quý vị và các bạn!

Lập trình Internet of Things được biết đến là một thứ vô cùng khó khăn và phức tạp. Nơi này, trước đây không phải dành cho tất cả mọi người. Nhưng, để đưa Việt Nam trở thành một cường quốc về công nghệ cao và đi tắt đón đầu nhờ cuộc cách mạng công nghệ 4.0 thì bài toán Internet of Things phải được giải quyết bằng chính trí tuệ của tất cả mọi người. Cuối cùng, để giải quyết được đồ thị Đa dụng và Dễ sử dụng, iNut Node-red IDE đã ra đời, giải pháp cung cấp một phương pháp sáng tạo, cho phép người dùng lập trình ứng dụng IoT bằng những khối lệnh kéo thả với những ví dụ ngay trong app. Ngay cả một học sinh tiểu học học STEM cũng có thể làm được. Hãy cùng khám phá nhé!

Mặc dù trên http://arduino.vn/ đã có rất nhiều bài viết về iNut nhưng chưa có một bài viết nào cụ thể dành cho các bạn newbie khi mới mua một bộ iNut cảm biến về thì phải làm như thế nào, bắt đầu từ đâu, các bước thực hiện như thế nào….? Bài viết này sẽ tổng hợp lại và hướng dẫn các bạn thực hiện setup từng bước một và demo 1 ví dụ cụ thể để các bạn có thể biết các iNut cảm biến vận hành thế nào nha. Ở mỗi mục mình sẽ trích dẫn link bài viết liên quan để các bạn tham khảo thêm, từ đó có cái nhìn tổng quát nhất khi mới bắt đầu sử dụng iNut cảm biến.

lên
3 thành viên đã đánh giá bài viết này hữu ích.

HƯỚNG DẪN SỬ DỤNG INUT CẢM BIẾN VỚI MODULE 2 RELAY, CẢM BIẾN NHIỆT ĐỘ DS18B20 VÀ ĐIỀU KHIỂN THÔNG QUA INTERNET

Làm cách nào để theo dõi nhiệt độ trong một không gian nhỏ ví dụ như nhà của bạn? làm cách nào để bạn có thể điều khiển các thiết bị trong nhà bật tắt theo ý muốn của bạn thông qua internet?

Inut cảm biến sẽ giúp bạn giải quyết vấn đề này. Hôm này tụi mình sẽ cùng bạn làm một dự án nhỏ là giám sát nhiệt độ và điều khiển đóng mở qua internet nha,bạn có thể tùy biến thêm,lần này mình dùng 2 cảm biến nhiệt độ DS18B20 và module 2 relay.

lên
7 thành viên đã đánh giá bài viết này hữu ích.