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

ST7565 và ESP8266 - Màn hình LCD bự chà bá chưa đến 100k cho thế giới IoT

Mình rất thích LCD ST7565 này, và đã đặt liền 4 con mà mỗi con quá rẻ có 20k. Nhưng khổ một điều, điện áp hoạt động và IO của LCD ST7565 có 3.3V. Bản thân mình lại không thích việc chơi điện trở để chơi LCD này với Arduino. Lý do đơn giản là phải hàn quá nhiều, mình lại lười crying. Hổm nay, mình đang làm loạt bài về ESP8266 và cũng phải gặp vấn đề điện trở để làm cầu phân áp khi giao tiếp giữa ESP8266 và Arduino.

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

Thư viện ST7565 trên Arduino Create - Thử nghiệm đầu tiên: Hoàn hảo!

Mình rất tự hào và hãnh diện, khi thư viện made in Việt Nam đầu tiên của Thái Sơn (Nick Chung) được mình tải lên tại Arduino Create với mục đích thử nghiệm việc biên dịch code online trên Arduino Create đã hoàn thành công việc của nó ngay trong lần thử đầu tiên. Qua bài viết này, mình xin hướng dẫn các bạn lập trình Arduino với Arduino Create thông qua việc làm một ví dụ mẫu về việc cài thư viện và sử dụng nó trên Arduino Create.

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

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

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