Mục lục:
- Bước 1: Những thứ được sử dụng trong dự án này
- Bước 2: Câu chuyện
- Bước 3: Kết nối phần cứng
- Bước 4: Lập trình phần mềm
- Bước 5: Hoạt động
Video: Đã xem Giải pháp IoTea LoRa (Bản cập nhật 1811): 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:33
Internet + là một khái niệm phổ biến hiện nay. Lần này chúng tôi đã thử Internet cộng với nông nghiệp để làm cho vườn chè phát triển ra Internet Tea.
Bước 1: Những thứ được sử dụng trong dự án này
Các thành phần phần cứng
- Grove - Cảm biến Carbon Dioxide (MH-Z16)
- Grove - Cảm biến ánh sáng kỹ thuật số
- Grove - Cảm biến bụi (PPD42NS)
- Grove - Cảm biến oxy (ME2-O2-Ф20)
- Cảm biến nhiệt độ & độ ẩm của đất
- LoRa LoRaWAN Gateway - 868MHz Kit với Raspberry Pi 3
- Grove - Cảm biến nhiệt độ & độ ẩm & khí áp kế (BME280)
Ứng dụng phần mềm và dịch vụ trực tuyến
Microsoft Visual Studio 2015
Bước 2: Câu chuyện
Trên núi Mengding ở phía đông bắc Ya’an, Tứ Xuyên, sườn núi chạy từ tây sang đông trong một biển xanh. Đây là cảnh tượng quen thuộc nhất đối với Deng, 36 tuổi, một trong số rất ít người làm trà Mengding ở thế hệ của anh, với đồn điền rộng 50mu (= 3,3 ha) nằm ở độ cao 1100m so với mực nước biển. Deng xuất thân từ một gia đình làm trà, nhưng việc gánh vác di sản của gia đình không phải là một việc dễ dàng. “Các loại trà của chúng tôi được trồng ở độ cao trong một môi trường hữu cơ để đảm bảo chất lượng tuyệt vời của nó. Song song đó, mật độ sinh trưởng thấp, chi phí cao và nảy chồi không đồng đều khiến chè khó thu hoạch. Đó là lý do tại sao trà núi cao thường thu hoạch nhỏ và giá trị của chúng không được phản ánh trên thị trường.”Trong hai năm qua, Deng đã cố gắng nâng cao nhận thức của người tiêu dùng về trà núi cao để quảng bá giá trị của chúng. Và khi anh ấy gặp Fan, người đang tìm kiếm một đồn điền để triển khai công nghệ Seeed’s IoTea, một giải pháp hoàn hảo đã được đưa ra.
Bước 3: Kết nối phần cứng
Phần cứng của dự án này có thể được chia thành 4 phần: Nguồn, Cảm biến, Nút và Cổng. Bài viết sau đây sẽ hướng dẫn bạn cách hoàn thành từng bước.
Phần điện
Power Part chủ yếu chứa Bảng điều khiển năng lượng mặt trời và Pin Lithium, nếu bạn chỉ xây dựng dự án này để trình diễn, bạn có thể bỏ qua chúng. Hoặc bạn có thể làm theo hướng dẫn trước để cài đặt nguồn nút.
Phần cảm biến
Trong Phần cảm biến, vì có nhiều cảm biến, chúng tôi đã sử dụng một trạm thời tiết và cũng làm một giá đỡ bằng Acrylic để lắp đặt chúng.
Như bạn thấy trong hình trên, Cảm biến ánh sáng kỹ thuật số luôn ở trên cùng, để nó có thể thu thập thông tin ánh sáng. Các cảm biến sẽ tạo ra nhiệt được lắp đặt ở giữa khung Acrylic, chẳng hạn như Cảm biến O2, Cảm biến bụi và Cảm biến CO2. Cuối cùng, Cảm biến nhiệt độ và độ ẩm ở dưới cùng của khung Acrylic.
Bên cạnh đó, cảm biến nhiệt độ và độ ẩm của đất được cài đặt một mình trong đất. Phần nút
Node Part là Seeeduino LoRaWan được lắp đặt trong Hộp chống thấm nước, nó kết nối với nguồn và cảm biến thông qua Khớp nối nước. Trong số đó, Cảm biến bụi kết nối với chân kỹ thuật số D3 của LoRaWan, Cảm biến CO2 kết nối với chân D4 & D5, Cảm biến đất kết nối với chân D6 & D7, Cảm biến O2 kết nối với chân tương tự A1 và Cảm biến ánh sáng & Cảm biến khí áp kết nối với cổng I2C.
LƯU Ý: Nên thêm Điện trở 10k vào giữa cáp Màu xanh lam (Dữ liệu) của Cảm biến đất và cáp Màu đỏ (Vcc).
Seeeduino LoRaWan thỉnh thoảng thu thập giá trị cảm biến và gửi chúng đến Gateway thông qua LoRa. Định dạng dữ liệu như dưới đây:
{
[0], / * Nhiệt độ không khí (℃) * / [1], / * Độ ẩm không khí (%) * / [2], / * Độ cao (m) byte cao * / [3], / * Độ cao (m) byte thấp * / [4], / * Nồng độ CO2 (PPM) byte cao * / [5], / * Nồng độ CO2 (PPM) byte thấp * / [6], / * Nồng độ bụi (chiếc / 0,01cf) byte cao * / [7], / * Nồng độ bụi (chiếc / 0,01cf) byte thấp * / [8], / * Cường độ sáng (lux) byte cao * / [9], / * Cường độ sáng (lux) byte thấp * / [10], / * Nồng độ O2 (%) * / [11], / * Nhiệt độ đất (℃) * / [12], / * Độ ẩm đất (%) * / [13], / * Điện áp pin (V) * / [14] / * Mã lỗi cảm biến * /}
Mỗi bit trong byte Mã lỗi cảm biến có một ý nghĩa khác nhau, giống như bên dưới:
{
bit0: 1; / * Lỗi cảm biến khí áp kế * / bit1: 1; / * Lỗi cảm biến CO2 * / bit2: 1; / * Lỗi cảm biến bụi * / bit3: 1; / * Lỗi cảm biến ánh sáng * / bit4: 1; / * Lỗi cảm biến O2 * / bit5: 1; / * Lỗi cảm biến đất * / dành riêng: 2; /* Để dành */ }
Phần cổng vào
Gateway Part là một Raspberry Pi cắm mô-đun Gateway RHF0M301–868 và PRI 2 Bridge RHF4T002, nó được lắp đặt trong Hộp chống thấm nước và kết nối với nguồn & Máy ảnh USB thông qua khớp nối nước. Vì nó sử dụng phần sụn chuyên dụng, vui lòng làm theo Seeed Wiki để định cấu hình nó.
Bước 4: Lập trình phần mềm
Như Kết nối Phần cứng, Lập trình Phần mềm cũng có thể được chia nhỏ, nó có thể được chia thành 3 phần: Nút, Cổng và Trang web.
Phần nút
Hầu hết các trình điều khiển mà Phần Node yêu cầu đã được chứa trong thư mục origin_driver. Các thư viện sau đây cần được cài đặt thủ công:
Adafruit_ASFcore
Vì dự án phức tạp, chúng tôi khuyên bạn nên sử dụng Microsoft Visual Studio thay vì Arduino IDE. Một plugin có tên Visual Micro có thể giúp bạn lập dự án Arduino bằng cách sử dụng Visual Studio, hãy nhấp vào đây để biết thêm thông tin.
Để có khả năng đọc và bảo trì tốt hơn, chúng tôi sử dụng Lập trình hướng đối tượng lần này. Sơ đồ lớp của dự án này trông giống như dưới đây:
Đối với những cảm biến đã có trình điều khiển OOP, chúng tôi đã đóng gói lại nó để điều chỉnh dự án này, đối với những cảm biến khác, chúng tôi viết lại trình điều khiển của chúng bằng cách sử dụng OOP. Lớp Cảm biến trong lớp phần mềm trung gian được sử dụng để thống nhất các giao diện của cảm biến thực, ví dụ, cảm biến phong vũ biểu có thể thu thập nhiệt độ, độ ẩm và độ cao cùng một lúc, vì vậy nó có 3 giao diện để thu nhiệt độ, độ ẩm và độ cao. Nhưng chúng có tên phương pháp khác nhau, điều này sẽ làm cho chương trình thu được giá trị của cảm biến phức tạp hơn, giống như sau:
phong vũ biểu-> getTempe Heat ();
phong vũ biểu-> getHumidity (); phong vũ biểu-> getAltitude (); //… another_sensor-> getSomeValue (); //…
Nhưng sử dụng OOP, nó trông như thế này:
for (auto i = 0; i getValue ();
}
Chúng tôi cũng đóng gói một lớp Ứng dụng, nó triển khai giao diện IApplication, phương thức setup () và loop () trong IoTea.ino có thể gọi phương thức setup () và loop () trong đối tượng Application.
LƯU Ý: Sê-ri USB CHỈ được sử dụng để gỡ lỗi. Sau khi gỡ lỗi, vui lòng nhận xét nó khởi tạo mã trong phương thức setup ().
Phần cổng vào
Chương trình Python của Gateway Part trong thư mục chính được sử dụng để chụp ảnh và tải chúng lên Máy chủ Amazon S3 mỗi giờ. Trước khi sử dụng, hãy đảm bảo rằng fswebcam đã được cài đặt trong Raspberry Pi của bạn:
sudo apt-get update && sudo apt-get install fswebcam
Nếu bạn muốn tải ảnh lên, hãy định cấu hình AWS của bạn theo các bước sau. Trước tiên, hãy cài đặt AWS SDK và AWS CLI vào Raspberry Pi của bạn bằng cách sử dụng các lệnh sau:
sudo pip cài đặt boto3
sudo pip cài đặt awscli
và sau đó, chạy AWS CLI:
sudo aws config
Định cấu hình ID khóa truy cập AWS, ID truy cập bí mật AWS và tên vùng mặc định của bạn.
Nếu bạn không thích tải ảnh của mình lên, bạn có thể bỏ qua các bước cấu hình AWS và mã nhận xét về cách tải lên trong photo.py. Để chạy chương trình này sau khi khởi động Raspberry Pi mọi lúc, bạn có thể tạo ảnh tên tệp trong /etc/init.d và viết mã sau vào đó.
#! / bin / bash
# /etc/init.d/photo ### BEGIN INIT INFO # Cung cấp: seeed_photo # Bắt buộc-Bắt đầu: $ remote_fs $ syslog # Bắt buộc-Dừng: $ remote_fs $ syslog # Mặc định-Bắt đầu: 2 3 4 5 # Mặc định-Dừng: 0 1 6 # Mô tả ngắn gọn: chụp ảnh initscript # Mô tả: Dịch vụ này được sử dụng để quản lý việc chụp ảnh ### END INIT INFO trường hợp "$ 1" khi bắt đầu) echo "Bắt đầu chụp ảnh" /home/rxhf/photo.py &;; stop) echo "Dừng chụp ảnh" kill $ (ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{print $ 2}');; *) echo "Cách sử dụng: bắt đầu | dừng dịch vụ" thoát ra 1;; esac thoát 0
thiết lập quyền thực thi
sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py
và kiểm tra nó
sudo /etc/init.d/photo start
Nếu không có vấn đề gì, hãy dừng nó lại và thêm nó vào ứng dụng khởi động
sudo /etc/init.d/photo stop
mặc định ảnh sudo update-rc.d
LƯU Ý: Nếu bạn muốn khởi động cổng vào sau khi khởi động Raspberry Pi, hãy thêm mã khởi động cổng trong Wiki đã xem vào /etc/rc.local, giống như sau:
#! / bin / sh -e
# # rc.local # # Tập lệnh này được thực thi ở cuối mỗi cấp chạy nhiều người dùng. # Đảm bảo rằng tập lệnh sẽ "thoát 0" khi thành công hoặc bất kỳ giá trị # nào khác khi bị lỗi. # # Để bật hoặc tắt tập lệnh này, chỉ cần thay đổi # bit thực thi. # # Theo mặc định, tập lệnh này không làm gì cả. # In địa chỉ IP _IP = $ (tên máy-I) || true if ["$ _IP"]; sau đó printf "Địa chỉ IP của tôi là% s / n" "$ _IP" fi cd /home/rxhf/loriot/1.0.2 sudo systemctl stop pktfwd sudo gwrst wget https://cn1.loriot.io/home/gwsw/loriot -reatehf-r… -O loriot-gw.bin chmod + x loriot-gw.bin./loriot-gw.bin -f -s cn1.loriot.io thoát 0
Trang mạng
Chúng tôi đã triển khai trang web trên CentOS 7. Các bước sau sẽ hướng dẫn bạn cách triển khai.
Bước 1. Cài đặt Python3
sudo yum -y cài đặt epel-release
sudo yum -y cài đặt python36
Bước 2. Cài đặt pip Python và môi trường ảo
wget
sudo python36 get-pip.py sudo pip cài đặt virtualenv
Setp 3. Sao chép trang web của chúng tôi từ GitHub
sudo yum -y install git
git clone
Bước 4. Tạo và kích hoạt môi trường ảo
virtualenv -p python36 iotea-hb
cd iotea-hb nguồn bin / kích hoạt
Bước 5. Cài đặt các thư viện phụ thuộc
pip cài đặt pymysql
pip cài đặt dbutils pip cài đặt bình pip cài đặt websocket-client pip cài đặt cofigparser
Bước 6. Tạo cơ sở dữ liệu
sudo yum -y cài đặt mariadb mariabd-server
sudo systemctl kích hoạt mariadb sudo systemctl start mariadb mysql -uroot -p
và sau đó sử dụng iotea_hb.sql để tạo bảng.
Bước 7. Tạo db.ini và viết các mã này vào nó
[db]
db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
thay đổi đường dẫn của db.ini trong db.py
# trong db.py
# cf.read ("/ data / www / python3_iotea_hb / iotea / conf / db.ini") cf.read ("/ home // iotea-hb / db.ini")
Bước 8. Thay đổi cổng trong app.py và khởi động trang web:
# trong app.py
# app.run (debug = True, port = 6000) app.run (debug = True, port = 8080)
# trong thiết bị đầu cuối
pip cài đặt gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app: app
bây giờ hãy truy cập 127.0.0.1:8080 trong trình duyệt web của bạn, bạn có thể thấy trang web, nhưng dữ liệu thời gian thực không được hiển thị.
Bước 9. Nhận dữ liệu loriot
Mở một thiết bị đầu cuối khác, nhập lại môi trường ảo và bắt đầu ứng dụng loriot:
cd iotea-hb
nguồn bin / kích hoạt gunicorn loriot: app
Chờ một lúc, bạn sẽ thấy dữ liệu hiển thị trên trang web, hoặc bạn có thể thay đổi wss trong loriot.py:
# trong loriot.py
#ws = create_connection ("wss: //cn1.loriot.io/app? token = vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w ==")
ws = create_connection ()
Bước 5: Hoạt động
Bạn có thể truy cập trang web của chúng tôi để xem dữ liệu thời gian thực:
- Ở Ya'an
- Để trình diễn
Đề xuất:
Kết nối và trang bị thêm các giải pháp được kết nối của bạn với Hologram Nova và Ubidots: 9 bước
Kết nối và trang bị thêm các giải pháp được kết nối của bạn với Hologram Nova và Ubidots: Sử dụng Hologram Nova của bạn để trang bị thêm cơ sở hạ tầng. Thiết lập Hologram Nova bằng Raspberry Pi để gửi dữ liệu (nhiệt độ) đến Ubidots. Trong hướng dẫn sau, Ubidots sẽ trình bày cách thiết lập Hologram Nova bằng Raspberry Pi và hiển thị
Giải pháp LoRa IoTea đã xem: 5 bước
Seeed LoRa IoTea Solution: Một hệ thống thu thập thông tin tự động được áp dụng cho trồng chè. Nó là một phần của thu thập thông tin nông nghiệp thông minh
Đã xem Giải pháp IoTea LoRa (với Azure, Bản cập nhật 1812): 5 bước
Đã thấy Giải pháp IoTea LoRa (với Azure, Bản cập nhật 1812): Microsoft Azure là một dịch vụ đám mây cung cấp sức mạnh tính toán ổn định và mạnh mẽ hơn. Lần này, chúng tôi đã thử gửi dữ liệu IoTea của mình tới nó
10 giải pháp thay thế tự làm cho các linh kiện điện tử bán sẵn: 11 bước (có hình ảnh)
10 giải pháp thay thế tự làm cho các linh kiện điện tử bán sẵn: Chào mừng bạn đến với tài liệu hướng dẫn đầu tiên của tôi! Bạn có cảm thấy rằng một số bộ phận nhất định từ các nhà bán lẻ trực tuyến quá đắt hoặc chất lượng thấp không? Cần thiết lập một mẫu thử nghiệm và chạy nhanh chóng và không thể chờ đợi hàng tuần để vận chuyển? Không có nhà phân phối điện tử địa phương? Những người
Chân đế kẹp chất kết dính cảm ứng iPhone / IPod có cung cấp cáp ĐÃ CẬP NHẬT: 5 bước (có hình ảnh)
Giá đỡ Kẹp Binder cho iPhone / IPod sử dụng kẹp ghim cố định ……… đó. Mặc dù một số thiết kế thông minh đã được hiển thị là