Mục lục:

Tự động hóa Ngôi nhà Xanh: 11 bước
Tự động hóa Ngôi nhà Xanh: 11 bước

Video: Tự động hóa Ngôi nhà Xanh: 11 bước

Video: Tự động hóa Ngôi nhà Xanh: 11 bước
Video: Những thứ mình tự động hóa trong nhà - vì sao nên dùng automation cho smarthome 2024, Tháng bảy
Anonim
Nhà xanh tự động hóa
Nhà xanh tự động hóa

Tự động hóa ngôi nhà xanh là một dự án trong đó ba thông số của ngôi nhà xanh, tức là Độ ẩm của đất, Nhiệt độ & Độ ẩm, được người dùng theo dõi từ xa chỉ đơn giản bằng trình duyệt web.

Bước 1: Các thành phần cần thiết

Thành phần bắt buộc
Thành phần bắt buộc
Thành phần bắt buộc
Thành phần bắt buộc
Thành phần bắt buộc
Thành phần bắt buộc

Một số thành phần thiết yếu cần thiết được liệt kê dưới đây

1. Raspberry PI Model B

2. Ban phát triển NodeMCU

3. Mô-đun Wifi ESP8266

4. Cảm biến độ ẩm

5. Cảm biến nhiệt độ & độ ẩm DHT11

6. Chuyển tiếp kênh đơn 5V

7. Bơm chìm 5V

8. Bread Board

9. Mô-đun cấp nguồn cho bảng mạch bánh mì

Bước 2: Ngôn ngữ & Giao thức

Ngôn ngữ & Giao thức
Ngôn ngữ & Giao thức
Ngôn ngữ & Giao thức
Ngôn ngữ & Giao thức
Ngôn ngữ & Giao thức
Ngôn ngữ & Giao thức
  • Ngôn ngữ C được sử dụng cho bộ điều khiển vi mô.
  • MQTT Nhắn tin: MQTT là viết tắt của MQ Telemetry Transport. Nó là một giao thức nhắn tin xuất bản / đăng ký, cực kỳ đơn giản và nhẹ, được thiết kế cho các thiết bị bị hạn chế và các mạng băng thông thấp, độ trễ cao hoặc không đáng tin cậy. Các nguyên tắc thiết kế là giảm thiểu băng thông mạng và các yêu cầu về tài nguyên thiết bị đồng thời cố gắng đảm bảo độ tin cậy và mức độ đảm bảo của việc phân phối. Những nguyên tắc này cũng làm cho giao thức trở nên lý tưởng cho thế giới “máy-với-máy” (M2M) hoặc “Internet of Things” mới nổi của các thiết bị được kết nối và cho các ứng dụng di động nơi băng thông và năng lượng pin ở mức cao.
  • Chương trình Python được sử dụng để tự động hóa dòng nước và kết nối cơ sở dữ liệu.

Bước 3: Nhà môi giới Eclipse Mosquitto MQTT

Nhà môi giới Eclipse Mosquitto MQTT
Nhà môi giới Eclipse Mosquitto MQTT

Ở đây tôi đã sử dụng Mosquitto MQTT Broker để giao tiếp thông điệp dễ dàng giữa các nút.

Eclipse Mosquitto là một nhà môi giới thông báo mã nguồn mở (được cấp phép EPL / EDL) triển khai giao thức MQTT phiên bản 5.0, 3.1.1 và 3.1. Mosquitto có trọng lượng nhẹ và phù hợp để sử dụng trên tất cả các thiết bị từ máy tính bảng đơn công suất thấp đến máy chủ đầy đủ.

Giao thức MQTT cung cấp một phương pháp nhẹ nhàng để thực hiện nhắn tin bằng cách sử dụng mô hình xuất bản / đăng ký. Điều này làm cho nó phù hợp với nhắn tin Internet of Things chẳng hạn như với cảm biến năng lượng thấp hoặc thiết bị di động như điện thoại, máy tính nhúng hoặc bộ điều khiển vi mô.

Dự án Mosquitto cũng cung cấp một thư viện C để triển khai các máy khách MQTT và các máy khách MQTT dòng lệnh mosquitto_pub và mosquitto_sub rất phổ biến.

Bước 4: Luồng dữ liệu trong toàn bộ dự án

Trong hình trên, các nút là

  1. NodeMCU
  2. Raspberry PI
  3. ESP8266

NodeMCU là bộ phận cảm biến của Green House & ESP8266 là bộ phận truyền động cung cấp nước khi mặt đất cần nước theo các cảm biến.

Raspberry PI chứa Nhà môi giới Mosquitto và một ứng dụng khách Python đăng ký các thông báo đến từ Nhà môi giới MQTT và lưu trữ dữ liệu vào máy chủ SQL.

Bước 5: Kết nối các cảm biến với NodeMCU

Kết nối cảm biến với NodeMCU
Kết nối cảm biến với NodeMCU

Cảm biến nhiệt độ và độ ẩm DHT11 và cảm biến độ ẩm nước có thể hoạt động trên 3,3 volt.

NodeMCU không thể cung cấp nhiều hơn 3,3 volt. Vì vậy, các cảm biến có thể kết nối trực tiếp với bo mạch vi điều khiển NodeMCU.

Bước 6: Kết nối máy bơm nước chìm với ESP8266

Kết nối máy bơm nước chìm với ESP8266
Kết nối máy bơm nước chìm với ESP8266
Kết nối máy bơm nước chìm với ESP8266
Kết nối máy bơm nước chìm với ESP8266

Máy bơm chìm được sử dụng để cung cấp nước bất cứ khi nào cần thiết.

Máy bơm nước cần nguồn điện 5 volt để hoạt động.

Một rơle kênh đơn là cần thiết để kết nối động cơ. Khi chân GPIO2 của ESP8266 được kích hoạt, rơ le sẽ bật và tự động cấp nước bằng máy bơm chìm.

Tại đây, nguồn điện bên ngoài được cung cấp cho bo mạch ESP8266, Rơ le & máy bơm chìm.

Kết nối phần cứng hoàn chỉnh của tôi có trong hình trên.

Bước 7: Cài đặt Mosquitto Broker & Chạy chương trình Python trong Raspberry Pi

Sau đây là các bước để cài đặt nhà môi giới Mosquitto trong Raspberry PI

Mở thiết bị đầu cuối và nhập các lệnh sau

sudo apt-add-repository ppa: mosquitto-dev / mosquitto-ppa

sudo apt-get cập nhật

sudo apt-get install mosquitto

sudo apt-get install mosquitto-client

Nó sẽ tự động khởi động mosquitto.

Để dừng và bắt đầu dịch vụ tôi cần sử dụng

dịch vụ sudo dừng lại mosquitto

dịch vụ sudo bắt đầu mosquitto

Hầu hết các trang web tôi đã phát hiện ra bằng cách sử dụng định dạng.

sudo /etc/init.d/mosquitto stop

Bước 8: MQTT hoạt động như thế nào?

MQTT hoạt động như thế nào?
MQTT hoạt động như thế nào?

MQTT là một trong những giao thức được sử dụng phổ biến nhất trong các dự án IoT. Nó là viết tắt của Message Queuing Telemetry Transport.

Ngoài ra, nó được thiết kế như một giao thức nhắn tin nhẹ sử dụng các hoạt động xuất bản / đăng ký để trao đổi dữ liệu giữa máy khách và máy chủ. Hơn nữa, kích thước nhỏ, sử dụng năng lượng thấp, gói dữ liệu được giảm thiểu và dễ thực hiện khiến giao thức trở thành giao thức lý tưởng của thế giới “máy với máy” hoặc “Internet of Things”.

Giống như bất kỳ giao thức internet nào khác, MQTT dựa trên máy khách và máy chủ. Tương tự như vậy, máy chủ là người chịu trách nhiệm xử lý các yêu cầu nhận hoặc gửi dữ liệu giữa nhau của máy khách. Máy chủ QTT được gọi là người môi giới và các máy khách chỉ đơn giản là thiết bị được kết nối.

* Khi một thiết bị (máy khách) muốn gửi dữ liệu đến nhà môi giới, chúng tôi gọi hoạt động này là “xuất bản”.

* Khi một thiết bị (máy khách) muốn nhận dữ liệu từ nhà môi giới, chúng tôi gọi hoạt động này là “đăng ký”.

Bước 9: Lập trình NodeMCU và ESP8266

Sau đây là mã nguồn cho bo mạch vi điều khiển NodeMCU và ESP8266

Bước 10: Thiết kế trang web và kết nối với cơ sở dữ liệu SQL

Trang Web được thiết kế bằng ngôn ngữ HTML, CSS và PHP.

PHP được sử dụng để trích xuất các bài đọc cảm biến từ cơ sở dữ liệu và hiển thị nó vào trang HTML.

Một chương trình python được sử dụng làm trung tâm của dự án này.

Các hoạt động mà chương trình python đang thực hiện như sau.

  1. Nó đăng ký một chủ đề mà trong đó cảm biến sẽ gửi các kết quả đọc của cảm biến.
  2. Nó xuất bản lệnh bật / tắt máy bơm nước cho nhà môi giới MQTT.
  3. Nó lưu trữ việc đọc cảm biến vào cơ sở dữ liệu SQL.

Ở đây trong trường hợp của tôi, chương trình python và cơ sở dữ liệu SQL có trong Máy tính xách tay. Trang web chạy qua Máy chủ lưu trữ cục bộ.

Sau đây là mã nguồn của chương trình python của tôi.

Bước 11: Hoàn thành công việc

Hoàn thành công việc
Hoàn thành công việc

Sau đây là các bước trong đó quá trình tiếp tục.

  1. NodeMCU hoạt động như một bộ phận cảm biến và đọc Nhiệt độ, Độ ẩm và độ ẩm của đất.
  2. Nó gửi các bài đọc đến nhà môi giới MQTT với chủ đề "Chủ đề 1"
  3. Trong máy tính xách tay, chương trình python đang chạy và nó đăng ký chủ đề "Chủ đề 1" với nhà môi giới MQTT.
  4. Khi NodeMCU gửi các bài đọc thì Mosquitto MQTT Broker ngay lập tức gửi dữ liệu đến chương trình python.
  5. Chương trình Python sau đó sẽ tính toán xem có nước cần thiết trong Nhà Xanh hay không. Sau đó, nó lưu trữ các bài đọc vào Cơ sở dữ liệu SQL.
  6. Nếu cần nước trong Nhà Xanh, thì chương trình python sẽ xuất bản thông báo bật / tắt máy bơm nước cho nhà môi giới MQTT của Mosquitto với chủ đề "Chủ đề 2"
  7. ESP8266 hoạt động như một thiết bị truyền động. Nó đăng ký trong chủ đề "Chủ đề 2" trong đó chủ đề mà chương trình python đang xuất bản thông báo. Khi chương trình python xuất bản bất kỳ thông báo nào thì thông báo đó ngay lập tức được chuyển đến ESP8266. Theo thông báo bật / tắt, nó đã bật / tắt máy bơm nước chìm.
  8. Giai đoạn cuối để hiển thị các bài đọc trực tiếp trong trang web. Trang web tìm nạp dữ liệu từ cơ sở dữ liệu SQL trong đó chương trình python lưu trữ dữ liệu trực tiếp và hiển thị các bài đọc trong trang.

Đề xuất: