ksp gửi vào
- 58749 lượt xem
Hôm nay, mình sẽ dùng cảm biến DHT11 để đọc nhiệt độ, độ ẩm, từ đó đẩy lên Internet thông qua iNut Cảm biến. Đồng thời sẽ quay màn hình quá trình làm webapp
.
Cộng đồng Arduino Việt Nam
Hãy giúp arduino.vn chia sẻ bài viết để nhiều dự án hay xuất hiện ở đây hơn
ksp gửi vào
Hôm nay, mình sẽ dùng cảm biến DHT11 để đọc nhiệt độ, độ ẩm, từ đó đẩy lên Internet thông qua iNut Cảm biến. Đồng thời sẽ quay màn hình quá trình làm webapp
.
Select any filter and click on Apply to see results
ksp gửi vào
Như chúng ta đã biết, Arduino là một board mạch lập trình giúp những người yêu thích vọc vạch điện tử có thể làm nên những dự án ý nghĩa mà không cần qua bất cứ trường lớp chuyên môn nào cả. Vậy, ngoài việc lập trình trên máy tính trước đây, liệu có cách nào giúp chúng ta lập trình Arduino trên mây được hay không? Nếu là một người theo dõi Arduino.vn thường xuyên, thì chắc hẳn bạn biết đến Codebender. Tuy nhiên, vì các lý do về kinh phí hoạt động, codebender của chúng ta sẽ không còn cho phép biên dịch code miễn phí online vào cuối tháng 11/2016 nữa. Vậy, liệu đó có phải là dấu chấm hết cho cộng đồng chúng ta khi muốn biên dịch Arduino online? Câu trả lời là không, và tôi xin giới thiệu với bạn Arduino Create, một trình biên dịch Arduino IDE online của Arduino(dot)cc được phát triển sau codebender và cũng mới đi vào hoạt động trong năm 2016.
ksp gửi vào
Đổi sang dùng hệ thống DNS của Google sẽ giúp tăng tốc độ lướt web và đôi khi chỉ có đổi DNS thì bạn mới có thể truy cập vào một số trang. Vì thế hãy bắt đầu tham khảo cách làm như thế nào để đổi DNS với Win 7 và Win 8. Và đó cũng là cách giúp các bạn bình luận trên Arduino.vn nếu không thấy mục bình luận.
Hãy trở thành thành viên của Cộng đồng Arudino Việt Nam để mở khóa chức năng này.
Các bạn cần làm hết các bước trong bài hướng dẫn này trước nhé. Okay, chúng ta cần chuẩn bị thêm một con cảm biến nhiệt độ, độ ẩm giá rẻ DHT11 cho bài viết này nữa là okie.
Lắp mạch kiểm tra DHT11 có chạy hay không?
Download và cài đặt thư viện hỗ trợ sử dụng DHT11: download tại đây
Kết nối cảm biến DHT11 với mạch Arduino
Code Arduino
// Gọi thư viện DHT11 #include<DHT.h> const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // Khởi động cảm biến } void loop() { float h = dht.readHumidity(); //Đọc độ ẩm float t = dht.readTemperature(); //Đọc nhiệt độ Serial.println("Arduino.vn"); Serial.print("Nhiet do: "); Serial.println(t); //Xuất nhiệt độ Serial.print("Do am: "); Serial.println(h); //Xuất độ ẩm Serial.println(); //Xuống hàng }Kết quả như thế này là ổn, nhiệt độ, độ ẩm có thể khác hình tùy theo khu vực mà bạn ở nhé.
Okay, đến giao đoạn Internet of Things rồi
Để lên được Internet of Things, các bạn cần phải sửa đổi đoạn code trên một chút, mình sẽ làm một video biến đổi từ đoạn code ở bài trước sang code đọc nhiệt độ DHT11.
Kết nối iNut cảm biến với mạch Arduino
Code Arduino
#include <Wire.h> #define N_SENSOR 2 float sensors[N_SENSOR]; //biến lưu trữ danh sách cảm biến // Gọi thư viện DHT11 #include<DHT.h> const int DHTPIN = 2; //Đọc dữ liệu từ DHT11 ở chân 2 trên mạch Arduino const int DHTTYPE = DHT11; //Khai báo loại cảm biến, có 2 loại là DHT11 và DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); // Khởi động cảm biến Wire.begin(10); //Theo như yêu cầu của iNut Platform, các bạn sẽ dùng cổng I2C với địa chỉ là 10. Wire.onRequest(i2cRequestEvent); //Mỗi khi iNut - Cảm biến yêu cầu thì sẽ chạy hàm này nhằm mục tiêu gửi dữ liệu lên cho iNut - Cảm biến, cứ 01 giây sẽ yêu cầu gửi 01 lần Serial.println("Xin chao iNut Platform"); } void i2cRequestEvent() { //phải có nhé, chỉ cần 02 dòng này là data đã được gửi đi char *data = (byte*)&sensors; Wire.write(data, sizeof(sensors)); //debug - Kiểm tra cho bạn dễ hình dung dữ liệu được gửi đi Serial.print("sizeof(sensors): "); Serial.println(sizeof(sensors)); Serial.print("sizeof(float): "); Serial.println(sizeof(float)); } void loop() { float h = dht.readHumidity(); //Đọc độ ẩm float t = dht.readTemperature(); //Đọc nhiệt độ Serial.println("Arduino.vn"); Serial.print("Nhiet do: "); Serial.println(t); //Xuất nhiệt độ Serial.print("Do am: "); Serial.println(h); //Xuất độ ẩm Serial.println(); //Xuống hàng //Nhiệm vụ của bạn là gán giá trị cảm biến vào các phần tử của mảng sensors sensors[0] = h; sensors[1] = t; }Okay, như vậy iNut cảm biến của bạn đã đẩy lên server thành công.
Xem hướng dẫn chỉnh sửa lại giao diện
Để cài đặt chương trình kiểm thử iNut các bạn làm theo các hướng dẫn sau đây (Sau khi cài đặt xong, các bạn làm như video trên để ra được bản mong muốn nhé):
Các bạn mở Windows command line lên bằng cách nhấn tổ hợp phím Windows + R (phím Windows là phím giữa Alt và Ctrl á). Sau đó gõ lệnh cmd và nhấn OK.
Trong bản lệnh hiện ra, bạn lần lượt chạy các lệnh sau (chép và dán vào từng lệnh một cho chắc nhé)
Clone code về
Cài đặt
Chạy chương trình
Và các bạn truy cập vào http://127.0.0.1:1880/... nhé! Đây là giao diện của chúng ta.
Các bạn truy cập vào địa chỉ http://localhost:1880/ui/... để xem giao diện đồ họa nhé.
Okay, cài đặt xong rồi, bước tiếp theo là cập nhập các mã thông tin trong ví dụ mẫu cho phù hợp với các thiết bị iNut của bạn.
Cách chép mã Node-Red topic từ phần mềm iNut
Chúc các bạn thành công!