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
8 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ả

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
7 thành viên đã đánh giá bài viết này hữu ích.

Nạp firmware cho Arduino bằng Xloader - Nạp chương trình cho Arduino bằng Xloader

Bài viết hôm nay sẽ hướng dẫn các bạn nạp file hex xuống Kit Arduino

Trong một số trường hợp bạn chỉ có File hex không có file chương trình hay muốn nạp cho nhiều mạch ứng dụng, dùng phần mềm Arduino IDE sẽ hơi bất tiện và mất nhiều thời gian hơn.

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