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

Mô tả dự án: 

Ở bài viết trước , chúng ta đã thực hiện được việc sử dụng iNut cảm biến để điều khiển 8 relay qua Internet. Nay chúng ta sẽ phát triển sử dụng iNut để điều khiển 16 relay .

Bây giờ mình sẽ hướng dẫn các bạn. 

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
  • 4 Module 4 relay (nếu bạn có module 8 relay thì dùng 2 cái cũng được).
  • 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 : VCC nối vào 5V
  •                               IN1 -> IN4 nối vào 2 3 4 5
  •                               GND nối vào GND
  • Module 4 relay 2 : VCC nối vào 5V
  •                               IN1 -> IN4 nối vào 6 7 8 9 
  •                               GND nối vào GND
  • Module 4 relay 3 : VCC nối vào 5V
  •                               IN1 -> IN4 nối vào 10 11 12 13
  •                               GND nối vào GND
  • Module 4 relay 4 : VCC nối vào 5V
  •                               IN1 -> IN4 nối vào A0 A1 A2 A3
  •                               GND nối vào GND
  • 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

Code Arduino

#include <iNut.h>
iNut sensor;

#define BAT LOW
#define TAT HIGH
#define RELAY_COUNT 16
#define WRITE_COMMAND 200
int relay[] = {2,3,4,5,6,7,8,9,10,11,12,13,A0, A1,A2,A3};
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...

Tương tự như các bước khi điều khiển 8 relay, khi đến chạy trình thuật sĩ, các bạn chọn số lượng digital output là 16, xong chọn ok.

 

 

III.Demo

Youtube: 
Demo kết quả
lên
15 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

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

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

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

lên
26 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ả

ĐỌC GIÁ TRỊ CỦA CẢM BIẾN ĐO TỐC ĐỘ GIÓ, HƯỚNG GIÓ VÀ ĐƯA CÁC GIÁ TRỊ HIỂN THỊ LÊN INTERNET

Gió là một trong những nhân tố tự nhiên góp phần hoàn thiện trái đất của chúng ta. Gió được hình thành do sự chuyển động của không khí trên một quy mô lớn, chảy từ nơi có khí áp cao đến nơi có khí áp thấp. Nhờ gió mà chúng ta có thể tạo ra điện năng phục vụ cho cuộc sống. Tuy nhiên kèm theo đó là những yếu tố bất lợi như các hiện tượng bão, lốc với cấp độ gió giật mạnh ảnh hưởng nhiều đến cuộc sống của con người.

Đó là sự ra đời của các sensor đo tốc độ gió và hướng gió. Nay tôi xin hướng dẫn các bạn sử dụng 2 sensor này để có thể đo được tốc độ gió và hướng gió, qua đó có thể dự đoán được các trạng thái của thời tiết và giám sát chúng qua Internet.

lên
6 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: