Mục lục:
- Bước 1: Hướng dẫn cài đặt
- Bước 2: Trưng bày quyền kiểm soát
- Bước 3: Danh sách các bộ phận / phần mềm được sử dụng trong dự án
- Bước 4: Danh sách I / 0
- Bước 5: Sơ đồ đấu dây
- Bước 6: Mã Arduino
- Bước 7: Raspberry Pi 3 B +
- Bước 8: Python
- Bước 9: MySQL
- Bước 10: Node-Red
Video: UCL - IIOT Nhà kính: 11 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Dự án này là một phần mở rộng của dự án trước đó của chúng tôi với Nhà kính (https://www.instructables.com/id/EAL-EMBEDDED-GREE…).
Trong dự án này, chúng tôi đã thêm một cơ sở dữ liệu, nơi chúng tôi ghi lại tất cả dữ liệu của mình và sau đó trực quan hóa nó với nút đỏ để có cái nhìn tổng quan hơn.
Nội dung chúng tôi đăng nhập vào cơ sở dữ liệu của mình là Độ ẩm, Nhiệt độ và độ ẩm của đất, được thể hiện trong các biểu đồ khác nhau.
Bên cạnh dataloggin, chúng tôi cũng có thể kiểm soát cấu hình nào đang hoạt động trong Nhà kính và điều khiển từ xa.
Sau đó, chúng tôi cũng có thể điều khiển máy bơm và quạt bằng tay.
Bước 1: Hướng dẫn cài đặt
Bước đầu tiên là cài đặt tất cả các thành phần khác nhau.
Bên trong dấu ngoặc (), chúng tôi đã liệt kê nơi thành phần được kết nối với. Vì vậy, ví dụ, Arduino được kết nối với Raspberry Pi thông qua cáp USB.
Phần cứng được sử dụng:
- Arduino (Raspberry Pi)
- Raspberry Pi 3 B +
- Ẩm kế đất (Arduino)
- Cảm biến DHT11 (Arduino)
- Máy bơm nước chìm HG-320 (Rơ le)
- Rơ le 5V (Arduino)
- Quạt máy tính (Rơ le)
- Nguồn điện 230V (Bơm)
Phần mềm được sử dụng:
- Raspbian (Hệ điều hành cho Raspberry Pi)
- Arduino IDE
- Python (Raspberry Pi) - PySerial- MySQLclient
- Node-Red (Raspberry Pi) - Pythonshell- Summariser- MySQL- Bảng điều khiển
- Máy chủ MySQL (freemysqlhosting.net)
Trước tiên, bạn sẽ phải kết nối các thành phần phần cứng, vì vậy hãy làm theo hướng dẫn này để xây dựng nhà kính: Hướng dẫn cài đặt.
Sau đó, bạn sẽ phải cài đặt hệ điều hành Raspbian trên Raspberry Pi của mình. Sau đó, bạn sẽ phải cài đặt Python, và sau đó cài đặt các thư viện python.
Bước tiếp theo là cài đặt Node-Red trên Raspberry Pi, sau đó điều hướng đến trình quản lý pallette và cài đặt các mô-đun đã nêu trước đó.
Sau đó, truy cập trang web này Máy chủ MySQL miễn phí và tạo một máy chủ MySQL miễn phí.
Khi tất cả những việc này hoàn tất, bạn đã sẵn sàng chuyển tập lệnh python sang Raspberry Pi của mình, nhập tập lệnh Node-Red và tải lên mã cho Arduino.
Bước 2: Trưng bày quyền kiểm soát
Bước 3: Danh sách các bộ phận / phần mềm được sử dụng trong dự án
Chúng tôi đã sử dụng công nghệ sau để làm Nhà kính
- Arduino
- Raspberry Pi
- Node-Red
- Python
- PHPMyAdmin
Bước 4: Danh sách I / 0
Bước 5: Sơ đồ đấu dây
Bước 6: Mã Arduino
Mã Arduino hoạt động bằng cách in dữ liệu, được đo bởi các cảm biến, tới kết nối nối tiếp nơi nó được đọc bởi Raspberry Pi và chuyển đến cơ sở dữ liệu.
Arduino cũng có một số đầu vào kỹ thuật số được kết nối với Raspberry Pi mà Arduino đọc và nếu một trong ba cái trở nên CAO, cấu hình sẽ thay đổi do câu lệnh IF.
Ngoài ra, chúng tôi đã nâng cấp mã để sử dụng Millis thay vì độ trễ cho phép đọc phần mông và phần còn lại của mã mọi lúc thay vì một khoảng thời gian bằng độ trễ cũ.
Bước 7: Raspberry Pi 3 B +
Chúng tôi đã sử dụng Raspberry Pi 3 B + để kết nối Arduino của chúng tôi với internet và cơ sở dữ liệu MySQL. Điều này giúp chúng tôi có thể lưu trữ dữ liệu từ các cảm biến của mình và tạo giao diện trực quan cho người dùng cuối. Đối với giao diện người dùng, chúng tôi đã sử dụng Node-Red với bảng Bảng điều khiển.
Nhưng trước khi chúng tôi có thể hiển thị dữ liệu cảm biến của mình trên Node-Red, chúng tôi cần một cách để tải dữ liệu lên cơ sở dữ liệu MySQL và để tạo một tập lệnh Python sẽ chạy trên Raspberry Pi của chúng tôi.
Bước 8: Python
Tập lệnh Python được sử dụng để nhận dữ liệu từ giao tiếp nối tiếp đến từ Arduino. Sau đó, tập lệnh sẽ gửi dữ liệu đến cơ sở dữ liệu MySQL.
Chúng tôi đã sử dụng hai thư viện, pyserial và mysqlclient.
Vì vậy, bước đầu tiên sẽ là tải xuống hai thư viện sau:
- PySerial
- MySQLclient
PySerial được sử dụng để thu thập dữ liệu từ Arduino thông qua giao tiếp nối tiếp.
device = '/ dev / ttyUSB0'
arduino = serial. Serial (thiết bị, 9600)
Dòng đầu tiên đang được sử dụng để xác định cổng COM của chúng tôi. Trên Raspberry Pi, nó là / dev / ttyUSB0, mà chúng tôi sử dụng cho Arduino. Dòng thứ hai là để mở cổng nối tiếp vào Arduino. Chúng tôi chỉ xác định cổng COM nào và tốc độ kết nối đang chạy.
Phần còn lại của mã đang chạy trong một vòng lặp trong khi.
Tiếp theo, chúng tôi sử dụng nhiều khối Thử và Ngoại trừ. Đầu tiên, mã đang cố gắng chạy bên trong khối Thử, nếu không thành công thì mã sẽ chạy khối Ngoại trừ. Nhưng nếu khối Thử chạy tốt, nó không chạy khối Ngoại trừ, nó chỉ chạy phần còn lại của mã.
Vì vậy, bên trong các khối Try, chúng tôi có mã sẽ đọc giao tiếp nối tiếp và sau đó gửi nó đến cơ sở dữ liệu MySQL của chúng tôi.
hygrolist = arduino.readlines (1)
templist = arduino.readlines (2) humlist = arduino.readlines (3)
Vì vậy, đoạn mã trên là để đọc các dòng trong giao tiếp nối tiếp. Số ở cuối mã xác định dòng đã được đọc trong sê-ri. Vì vậy, các dòng này đang được phân loại theo các biến khác nhau.
Khi dữ liệu từ Arduino được nhận, chúng tôi đã sử dụng mô-đun mysqlclient để gửi dữ liệu đến Máy chủ MySQL của chúng tôi.
db = _mysql.connect (host = "sql7.freemysqlhosting.net", user = "sql7256552", passwd = "3ebtbP8FQ2", db = "sql7256552")
Dòng này là để kết nối với cơ sở dữ liệu MySQL của chúng tôi. Nó chỉ định máy chủ, tên người dùng, mật khẩu và cơ sở dữ liệu nào nó sẽ kết nối bên trong máy chủ. Ở đây, bạn nên chỉ định kết nối đến MySQL DB của mình.
db.query ("INSERTINTO` TempHumid` (`nhiệt độ`,` ẩm`, `hygro`) GIÁ TRỊ (% s,% s,% s)"% (nhiệt độ, ẩm ướt, hygro))
Vì vậy, ở đây chúng tôi sử dụng kết nối DB của chúng tôi và thực hiện một truy vấn SQL. Truy vấn cho biết rằng các giá trị phải được chèn vào bên trong bảng "TempHumid" và sau đó vào các cột "nhiệt độ", "ẩm ướt" và "hygro". Phần cuối cùng “(% s,% s,% s)” là định dạng chuỗi và được sử dụng để cung cấp cho cơ sở dữ liệu một định dạng mà nó có thể đọc được.
Và tất cả hành động này được đưa vào một vòng lặp trong khi, để chúng tôi tiếp tục nhận dữ liệu được gửi đến máy chủ MySQL.
Nếu bạn muốn xem tất cả mã, hãy tải xuống tập lệnh python (TempHumid.py).
Bước 9: MySQL
Đối với máy chủ MySQL, chúng tôi đã sử dụng dịch vụ miễn phí trên www.freemysqlhosting.net. Chúng tôi có thể đã tạo một máy chủ cục bộ trên Raspberry Pi, nhưng chúng tôi đã sử dụng dịch vụ miễn phí để làm cho nó được kết nối hoàn toàn với đám mây / internet.
Để truy cập MySQL của bạn, bạn phải truy cập phpmyadmin.co và đăng nhập bằng thông tin đăng nhập từ tài khoản freemysqlhosting của bạn.
Khi vào bên trong, bạn phải tạo một bảng có tên là "TempHumid", bên trong bảng này bạn phải tạo 4 cột có tên là "ID", "temp", "ẩm" và "hygro". Cột (ID) đầu tiên bạn phải đánh dấu vào ô A_I (Auto Increment). Điều này để cột ID cung cấp cho mọi tập dữ liệu một ID. Tất cả các cột sau phải được đặt dưới dạng INT (số nguyên) và đặt giá trị tiêu chuẩn thành NULL.
Bước 10: Node-Red
Trong dự án của mình, chúng tôi đã sử dụng Node-Red để tạo giao diện đồ họa. Node-Red đang chạy trên Raspberry Pi và đang thu thập dữ liệu từ cơ sở dữ liệu MySQL của chúng tôi và đang hiển thị những dữ liệu này bằng đồng hồ đo hình bánh rán và biểu đồ đồ họa để người dùng cuối có thể theo dõi dữ liệu. Điều thông minh về Node-Red là nó có thể xem được trên bất kỳ thiết bị nào, có nghĩa là trang web sẽ được thay đổi kích thước cho thiết bị nhất định đang xem nội dung.
Để cài đặt chương trình Node-Red của chúng tôi, hãy xem Bước 1 và tải xuống tài liệu có tên "Node-Red.docx". Sau đó sao chép và dán văn bản vào Node-Red thông qua chức năng nhập ở góc trên bên phải.
Sau đó, thay đổi cài đặt DB cho MySQL DB của bạn.
Đề xuất:
Ống kính Macro tự làm có AF (Khác với tất cả các ống kính macro tự làm khác): 4 bước (có ảnh)
Ống kính macro tự làm có AF (Khác với tất cả các ống kính macro tự làm khác): Tôi đã thấy rất nhiều người chế tạo ống kính macro với ống kính kit tiêu chuẩn (Thường là 18-55mm). Hầu hết chúng là một ống kính chỉ dính vào máy ảnh trở lại hoặc thành phần phía trước bị loại bỏ. Có những nhược điểm cho cả hai tùy chọn này. Để lắp ống kính
Nhà kính trong nhà tự động dựa trên Ikea Socker: 5 bước
Nhà kính trong nhà tự động dựa trên Ikea Socker: Xin chào, đây là hướng dẫn đầu tiên của tôi. Tôi đã học được rất nhiều điều với sự hợp tác này, và tôi nghĩ đã đến lúc tôi nên trả lại những ý tưởng khiêm tốn của mình. Tôi xin lỗi vì tiếng Anh của tôi kém, nhưng tôi sẽ làm tất cả những gì có thể. Ý tưởng là làm một nhà kính trên bàn cho phép tôi trồng hạt giống và
Ống kính kính vạn hoa thú vị cho máy ảnh điện thoại thông minh: 3 bước
Ống kính kính vạn hoa thú vị cho máy ảnh điện thoại thông minh: Trong dự án này, tôi hướng dẫn bạn cách tạo một ống kính kính vạn hoa nhỏ vui nhộn phù hợp với điện thoại thông minh của bạn! Thật tuyệt khi thử nghiệm với các vật thể ngẫu nhiên đặt xung quanh nhà và xem loại phản xạ nào có thể được tạo ra
Kính hiển vi: Kính hiển vi tương tác chi phí thấp: 12 bước (có hình ảnh)
Kính hiển vi: Kính hiển vi tương tác chi phí thấp: Xin chào và Chào mừng! Tên tôi là Kính hiển vi. Tôi là một chiếc kính hiển vi tự làm, chạy bằng RPi, giá cả phải chăng cho phép bạn tạo và tương tác với thế giới vi mô của riêng mình. Tôi là một dự án thực hành tuyệt vời dành cho những người quan tâm đến công nghệ sinh học và
Kính tinh thể lỏng dành cho người bị nhược thị (Kính đào tạo tắc mạch luân phiên) [ATtiny13]: 10 bước (có hình ảnh)
Kính tinh thể lỏng dành cho bệnh nhược thị (Kính tập luyện tắc mạch luân phiên) [ATtiny13]: Nhược thị (mắt lười), một chứng rối loạn thị lực ảnh hưởng đến khoảng 3% dân số, thường được điều trị bằng băng mắt đơn giản hoặc thuốc nhỏ atropine. Thật không may, những phương pháp điều trị đó làm cho mắt khỏe hơn trong thời gian dài, không bị gián đoạn, không