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

Mô tả dự án

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.

I. Những Thứ Bạn Cần Chuẩn Bị

Phần Cứng

Cách Nối Dây:

B1: lắp INut cảm biến lên board Arduino UNO

B2: Kết Nối 2 cảm biến DS18B20 theo sơ đồ sau:

DS18B20 (1)

DS18B20 (2)

INut Cảm Biến

Relay

VCC

VCC

5V

VCC

GND

GND

GND

GND

Chân tín hiệu

 

2

 

 

Chân tín hiệu

3

 

 

 

8

IN1

 

 

9

IN2

 

B3: (bước này quan trọng này,bạn không làm đừng hỏi sao nhiệt độ toàn -127 hehe)

Sử dụng điện trở nối chân VCC và chân tín hiệu của cảm biến DS18B20 lại với nhau. Chúng ta có 2 cảm biến => sử dụng 2 con trở.

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:

Nếu bạn chưa biết,tham khảo bài biết này: http://arduino.vn/i

II. Các Cài Đặt Khác:

III. Lập Trình:

Bạn cần chuẩn bị thư viện sau:

Code Arduino:

#include <iNut.h>
#include <OneWire.h>
#include <DS18B20.h>
#include <DallasTemperature.h>


#define OFF HIGH
#define ON  LOW
// vì relay kích mức thấp nên sẽ ngược lại
#define ONE_WIRE_BUS_1 2 // khai báo chân cho cảm biến DS18B20
#define ONE_WIRE_BUS_2 3 // khai báo chân cho cảm biến DS18B20

iNut sensor;
OneWire oneWire_1(ONE_WIRE_BUS_1);
OneWire oneWire_2(ONE_WIRE_BUS_2);
DallasTemperature sensor_tem_1 (&oneWire_1);
DallasTemperature sensor_tem_2 (&oneWire_2);


const byte RELAY[2] = {9,8}; //Chân digital của relay

void setup() {
  // put your setup code here, to run once:
  //wdt_disable();
  Serial.begin(9600);
  sensor.setup(4);// có 4 luồng cảm biến
  sensor_tem_1.begin();
  sensor_tem_2.begin();
  for (int i = 0; i < 2; i++){
    pinMode (RELAY[i],OUTPUT);
    digitalWrite(RELAY[i],OFF); // tắt tất cả relay khi reset hoặc khi mới bật
}
//wdt_enable(WDTO_8S);
  sensor.addCommand("RELAY",RelayFunction);
  Serial.println("Sẵn sàng nhận lệnh: ");
}

void RelayFunction()
{
    char* arg0 = sensor.next();
    char* arg1 = sensor.next();
    if (arg0 == NULL || arg1 == NULL)
        return;
    byte num = atoi(arg0);
    if (strcmp(arg1, "ON") == 0) { //nếu tham số 1 là ON. RELAY ON. Thì bật
        digitalWrite(RELAY[num], ON);
        Serial.println(F("Relay bật"));
    }
    else if (strcmp(arg1, "OFF") == 0) { // RELAY OFF. Thì tắt
        digitalWrite(RELAY[num], OFF);
        Serial.println(F("Relay tắt"));
    }
    else {
        Serial.println(F("Khong nam trong tap hop lenh"));
    }
}

void loop() {
    // put your main code here, to run repeatedly:
    Serial.println("Arduino.vn");
    Serial.print("Nhiet do cam bien 1: ");
    Serial.println(sensor_tem_1.getTempCByIndex(0));
    Serial.print("Nhiet do cam bien 2: ");
    Serial.println(sensor_tem_2.getTempCByIndex(0));
  sensor_tem_1.requestTemperatures();  
  sensor_tem_2.requestTemperatures();  
  
  for (byte i = 0; i < 2; i++) {
        sensor.setValue(i,1 - digitalRead(RELAY[i]));   // gửi trạng thái lên gause 
  }       
  sensor.setValue (2,sensor_tem_1.getTempCByIndex(0)); // gửi nhiệt độ lên internet
  sensor.setValue (3,sensor_tem_2.getTempCByIndex(0));
sensor.loop();
}

Code Node - RED: http://localhost:1880/#flow/891bb18c.71f9b

Giao diện làm việc: http://localhost:1880/ui

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

https://ideone.com/P1dQb1

Chúc các bạn thành công!

Youtube: 
lên
7 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

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

SỬ DỤNG INUT CẢM BIẾN LÀM 1 BỘ ACCESS CONTROL DỄ HAY KHÓ?

Để điều khiển từ xa và đồng bộ dữ liệu trong thời gian thực qua internet dễ hay khó? đối với newbie thì thực sự rất khó, không biết nên bắt đầu từ đâu. Nhưng với iNut cảm biến thì mọi chuyện sẽ dễ hơn rất nhiều, nó là công cụ sẽ giúp bạn quyết định thành bại cho một dự án IOT dù nhỏ dù lớn. Hôm nay, mình sẽ cùng bạn làm một bộ access control cho chính cánh cửa trong phòng mình. Mình sẽ hướng dẫn bạn không chỉ điều khiển trên máy tính mà cũng có thể điều khiển trực tiếp trên điện thoại thông minh thông qua web app (nâng cao hơn sẽ là tự làm app riêng bằng app inventor hay thunkable - cái này sẽ có bài hướng dẫn lần sau). Các bạn có thể tùy chọn điều khiển trực tiếp qua localhost, điều khiển qua 3/4G v.v.. 

 

Nói nãy giờ cũng hơi dài rồi, cùng nhau bắt tay vô làm thôi.

lên
5 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 ĐỂ ĐIỀU KHIỂN 8 RELAY QUA INTERNET (KHÔNG CẦN INUT NODE - RED IDE)

Để đ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.

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