Internet of Things với Arduino – Dự án nhà thông minh

A. Điều khiển máy pha cà phê từ cloud

Trong hướng dẫn này, chúng ta sẽ học cách điều khiển máy pha cà phê từ mọi nơi trên thế giới. Dĩ nhiên, bạn có thể dùng bất kỳ thiết bị điện gia dụng nào khác, như đèn hay lò vi ba. Chúng ta sẽ biết được cách kết nối máy pha cà phê tới board Arduino MKR1000, và nối mạch tới bảng điều khiển trên cloud để chúng có thể được điều khiển từ xa.

Sẵn sàng

Trước tiên, ta sẽ xem cách kết nối board Arduino tới máy pha cà phê, hoặc tới những thiết bị gia dụng khác.

Để làm điều này, chúng ta sẽ sử dụng một thiết bị gọi là PowerSwitch Tail, nó có thể được sử dụng để điều khiển bất kì thiết bị nào với Arduino. Bạn có thể tìm mua thiết bị này tại địa chỉ http://www.powerswitchtail.com/
Pages/default.aspx
.

Tất nhiên bạn có thể sử dụng một rơ-le loại thường, nhưng việc sử dụng PowerSwitch Tail an toàn hơn khi kết nối các thiết bị điện.

Để nối PowerSwitch Tail với Arduino, ta chỉ cần nối chân Vin+ của PowerSwitch Tail tới chân số 6 trên Arduino và nối 2 chân còn lại tới GND của Arduino.

Sau đó, nối thiết bị bạn muốn điều khiển tới đầu cắm cái trên PowerSwitch Tail, và đầu đực cắm vào điện lưới.

Đây là kết quả cuối cùng:

Về phần mềm, và cho phần còn lại của chương này, chúng ta sẽ sử dụng hai thư viện Arduino: thư viện aREST và thư viện PubSubClient. Nó cho phép chúng ta điều khiển board Arduino từ mọi nơi trên thế giới. Bạn có thể cài đặt cả hai thư viện từ phần quản lý thư viện Arduino.

Cách làm…

Hãy cùng cấu hình board để nó có thể được điều khiển từ xa. Như thường lệ, tôi chỉ nhấn mạnh những điểm chính của code, vì nó tương tự với hướng dẫn trong chương trước. Đầu tiên chúng ta cần thêm những thư viện cần thiết:

#include <SPI.h>
#include <WiFi101.h>
#include <PubSubClient.h>
#include <aREST.h>

Sau đó, chúng ta cũng cần thiết lập tên và mật khẩu truy cập của board:

const char* ssid     = "wifi-name";
const char* password = "wifi-password";

Trong hàm setup(), chúng ta đặt ID và tên cho thiết bị:

rest.set_id("362c3s");
rest.set_name("coffee");

Cuối cùng chúng ta cũng cần thiết lập chân số 6 là output:

pinMode(6, OUTPUT);

Bây giờ ta chỉ lấy toàn bộ code chương trình trên Github về và thay đổi mã xác thực và ID của thiết bị. Sau đó nạp code lên board.

Bước tiếp theo là tạo một tài khoản tại http://dashboard.arest.io/.

Sau đó ta sẽ có thể tạo mới một bảng điều khiển:

Bên trong bảng điều khiển, ta tạo mới một phần tử bằng cách nhập vào ID của thiết bị và cũng bằng cách chọn lệnh digital trên chân số 6. Nó sẽ giống như trong hình:

Lúc này bạn có thể thử nó: nhấn vào nút On và thiết bị sẽ bật tức thì. Dĩ nhiên, bạn phải bật thiết bị đó sang On sẵn, ví dụ, bật công tắc nguồn Coffee machine sang On.

Nó hoạt động như thế nào…

Dự án này làm việc bằng cách kết nối board Arduino tói máy chủ cloud aREST.io và sau đó điều khiển board (sau đó nữa là thiết bị) sử dụng bảng điều khiển cloud. Do đó, thiết bị sẵn sàng bất cứ nơi nào trên thế giới.

B. Điều chỉnh độ sáng LED từ bất kỳ đâu

Bạn chắc hẳn đã thấy những dải LED điều khiển từ xa. Chúng ta sẽ làm điều tương tự trong hướng dẫn này (với 3 LED có màu khác nhau), nhưng trong dự án này, bạn sẽ có thể điều khiển những LED đó khắp nơi trên thế giới.

Sẵn sàng

Đối với hướng dẫn này, bạn sẽ cần 3 LED màu sắc khác nhau (tôi sử dụng 1 xanh da trời, 1 đỏ, 1 xanh lá cây). Với mỗi LED trong số đó, bạn cũng sẽ cần 1 điện trở 330 Ohm.

Để ráp phần cứng cho dự án này, đầu tiên đặt tất cả LED trên breadboard, với mỗi cái mắc nối tiếp với một điện trở, chân dài hơn của LED nối với điện trở. Sau đó, nối tất cả chân còn lại của LED với chân GND trên Arduino. Cuối cùng, nối những chân kia của điện trở tới chân số 3, 4, 5 của Arduino.

Và dưới đây là kết quả cuối cùng:

=> Bài viết được trích từ sách: Internet of thing với Arduino

Cách làm…

Chúng ta sẽ cấu hình board. Vì chương trình cũng gần tương tự như trong hướng dẫn trước, tôi chỉ nhấn mạnh điểm khác nhau chính:

Bên tron hàm setup() của chương trình, chúng ta cần đặt ID, cũng như tên cho thiết bị:

rest.set_id("305eyf");
rest.set_name("led_dimmer");

Bây giờ lấy toàn bộ mã lệnh từ Github thay đổi mã xác thực Wi-Fi và ID thiết bị. Sau đó nạp code vào board.

Một lần nữa, vào cùng trang web có bảng điều khiển cloud aREST mà ta đã dùng trong hướng dẫn trước, và tạo một bảng điều khiển cho LED của ta:

Với mỗi LED, tạo một phần tử trong bảng điều khiển với thông số sau đây:

Dĩ nhiên, bạn có thể nối nhiều LED tới nhiều chân khác hơn tôi, do đó hãy chắc rằng bạn đặt tên đúng cho mỗi phần tử với đúng màu. Kết quả như hình:

Cuối cùng bạn có thể thử dự án! Thử thay đổi giá trị của thanh trượt bằng cách kéo con trỏ:

Bạn sẽ thấy ngay lập tức kết quả như dưới:

Chúc mừng, bạn giờ có thể chỉnh và điều khiển được LED từ khắp nơi trên thế giới.

Nó hoạt động như thế nào…

Dự án này hoạt động bằng cách kết nối board tới máy chủ cloud, nó nhận lệnh thông qua bảng điều khiển cloud. Di chuyển thanh trượt trên bảng điều khiển tạo ra hiệu ứng tương tự với lệnh analogWrite() trên board Arduino, do vậy cho phép ta điều chỉnh độ sáng LED tùy ý muốn.

=> Xem thêmHọc IoT bài bản: Internet of Thing (IoT)

C. Điều khiển đóng mở cửa từ xa

Trong hướng dẫn này, chúng ta sẽ học cách mở và đóng cửa từ xa từ bất kỳ đâu trên thế giới. Bạn cũng sẽ có thể chia sẻ việc truy cập với người khác để họ cũng có thể điều khiển được khóa cửa.

Sẵn sàng

Với dự án này, chúng ta sẽ sử dụng một khóa cửa điện tử thực tế có thể kết nối với board Arduino để khóa/mở cửa. Linh kiện này cần cấp nguồn 12V để sử dụng, do vậy ta cần một nguồn ngoài và vài phụ kiện để làm nó hoạt động.

Dưới đây là danh sách những linh kiện cần thiết:

  • Khóa cửa điện
  • Điện trở 1K Ohm
  • Diode chỉnh lưu
  • MOSFET kênh-N
  • Đầu nối jack DC với breadboard
  • Nguồn 12V

Ta hãy cùng ráp phần cứng cho dự án. Vì cách thực hiện tương đối phức tạp, tôi đã tạo sơ đồ nguyên lý cho bạn:

Hãy đảm bảo rằng bạn làm theo sơ đồ nguyên lý để kết nối khóa điện tới board MKR1000, thông qua transitor MOSFET.

Đây là kết quả cuối cùng:

Và đây là cận cảnh của board Arduino:

Cách làm…

Cùng xem cách cấu hình board để chúng ta có thể kiểm soát khóa cửa từ xa. Do sketch khá giống với những hướng dẫn trước trong chương này, tôi chỉ nhấn mạnh những điểm khác ở đây.

Cơ bản, bạn chỉ cần gán ID duy nhất trong code:

rest.set_id("305eyf");
rest.set_name("door_lock");

Và vào lại địa chỉ http://dashboard.arest.io/.

Tạo mới bảng điều khiển:

Tiếp đó ta tạo mới một phần tử bên trong bảng điều khiển để điều khiển khóa cửa kết nối với chân số 6 của board Arduino:

Bây giờ bạn có thể thử dự án: mỗi khi bạn nhấp chuột vào nút nhấn bạn sẽ thấy khóa cửa đáp ứng tức thì, mở hoặc đóng cửa nếu bạn gắn nó vào một cánh cửa thực tế.

Lưu ý rằng bạn cũng có thể chia sẻ khóa cửa cho ai đó bằng cách chia sẻ quyền truy cập tới bảng điều khiển cloud, để bạn bè có thể sử dụng nó.

Nó hoạt động như thế nào…

Dự án hoạt động dựa trên việc kết nối board Arduino tới server cloud. Trên board, dự án sử dụng một MOSFET công suất để điều khiển khóa cửa được kết nối với nguồn 12V.

D. Bảng điều khiển nhà thông minh trên cloud

Trong hướng dẫn cuối của chương này, chúng ta sẽ tích hợp vài dự án được học trong chương, và xem làm thế nào để giám sát tất cả chúng trong một bảng điều khiển duy nhất. Bạn cũng sẽ có một nhà thông minh hoàn chỉnh có thể giám sát từ đâu bằng một giao diện đơn giản.

=> Sách Arduino, ESP8266, STM32: Sách tự động hóa

Sẵn sàng

Với hướng dẫn này, chúng ta sẽ sử dụng dự án trước trong chương, vậy nên tôi yêu cầu các bạn nên tham khảo những hướng dẫn tương ứng của chương để tạo các dự án khác nhau. Đầu tiên, chúng ta sẽ sử dụng dự án với cảm biến DHT11 để đo nhiệt độ và độ ẩm trong nhà. Sau đó, chúng ta sẽ thêm cảm biến khói vào hệ thống nhà thông minh.

Cuối cùng, chúng ta sẽ sử dụng PowerSwitch Tail để điều khiển đèn từ xa:

Cách làm…

Khi đã ráp xong dự án, đảm bảo cấu hình chúng với sketch tương ứng mà bạn sẽ tìm thấy trên Github của sách tại https://github.com/
marcoschwartz/iot-arduino-cookbook
.

Và tất nhiên, hãy thay đổi mã xác thực Wi-Fi trong mỗi sketch, cũng như sửa lại ID của mỗi board. Sau đó vào http://dashboard.arest.io/.

Bạn có thể tạo mới một bảng điều khiển:

Bắt đầu thêm kết quả từ Gas Sensor:

Sau đó bạn có thể thêm điều khiển On/Off trên chân số 6 để điều khiển đèn hoặc bất kì thiết bị nào gắn với PowerSwitch Tail:

Cuối cùng, thêm phần tử cho giá trị nhiệt độ đọc được:

Hoàn thiện bảng điều khiển bằng cách thêm phần tử cho độ ẩm:

Chúc mừng, giờ đây bạn đã có tất cả phần tử của hệ thống điều khiển nhà thông minh trong một bảng điều khiển duy nhất!

Nó hoạt động như thế nào…

Dự án này dựa trên framework aREST chúng ta đã dùng nhiều trong chương này. Ở đây, chúng ta biết cách tích hợp nhiều board Arduino vào cùng một bảng điều khiển cloud.

Và bạn cũng có thể thêm nhiều board vào cùng 1 bảng điều khiển, để có một hệ thống nhà thông minh lớn hơn mà bạn có thể giám sát và điều khiển từ bất cứ nơi đâu.

=> Khóa học Internet of Things: https://trungtamcadcam.com/khoa-hoc/internet-of-thing-iot/