資料介紹
描述
四川雅安東北部的蒙頂山,山巒起伏,自西向東,掩映在一片綠海之中。這是 36 歲的鄧先生最熟悉的景象,他是他那一代為數不多的蒙頂茶師之一,擁有 50 畝(=3.3 公頃)的種植園,海拔 1100 米。鄧出身于制茶世家,但繼承家族遺產并非易事。“我們的茶葉生長在高海拔的有機環(huán)境中,以確保其卓越的品質。但同時生長密度低,成本高,出芽不均勻,茶葉采收困難。這就是為什么高山茶通常是小收成,它們的價值在市場上沒有體現?!?過去兩年,鄧一直在努力提高消費者對高山茶的認識,以提升其價值。而當他遇到范主時,
硬件連接
該項目的硬件可以分為 4 個部分:電源、傳感器、節(jié)點和網關。以下文章將向您展示如何逐步完成它。
電源部分
電源部分主要包含一塊太陽能電池板和一塊鋰電池,如果你只是為了演示而搭建這個項目,可以忽略它們?;蛘吣梢园凑丈弦唤坛贪惭b節(jié)點電源。
傳感器部分
在傳感器部分,由于傳感器較多,我們使用了一個氣象站,還做了一個亞克力支架來安裝它們。

如上圖所示,Digital Light Sensor 始終位于頂部,以便它可以收集照明信息。會產生熱量的傳感器安裝在亞克力支架的中間,例如 O2 傳感器、灰塵傳感器和 CO2 傳感器。最后,亞克力支架底部的溫濕度傳感器。
此外,土壤溫度和濕度傳感器單獨安裝在土壤中。
節(jié)點部分

節(jié)點部分是一個安裝在防水??盒中的 Seeeduino LoRaWan,它通過水接頭連接到電源和傳感器。其中,灰塵傳感器連接到LoRaWan的數字引腳D3,二氧化碳傳感器連接到引腳D4和D5,土壤傳感器連接到引腳D6和D7,O2傳感器連接到模擬引腳A1,光傳感器和氣壓傳感器連接到I2C端口。
注意:應在土壤傳感器的藍色(數據)電纜和紅色(Vcc)電纜之間添加一個 10k 電阻器。
Seeeduino LoRaWan 偶爾收集傳感器值,并通過 LoRa 將它們發(fā)送到網關。數據格式如下:
?
{
[0], /* Air tempreature(℃) */
[1], /* Air humidity(%) */
[2], /* Altitude(m) high byte */
[3], /* Altitude(m) low byte */
[4], /* CO2 concentration(PPM) high byte */
[5], /* CO2 concentration(PPM) low byte */
[6], /* Dust concentration(pcs/0.01cf) high byte */
[7], /* Dust concentration(pcs/0.01cf) low byte */
[8], /* Light intensity(lux) high byte */
[9], /* Light intensity(lux) low byte */
[10], /* O2 concentration(%) */
[11], /* Soil temperature(℃) */
[12], /* Soil humidity(%) */
[13], /* Battery voltage(V) */
[14] /* Sensor error code */
}
?
Sensor Error Code 字節(jié)中的每一位都有不同的含義,如下所示:
?
{
bit0: 1; /* Barometer Sensor Error */
bit1: 1; /* CO2 Sensor Error */
bit2: 1; /* Dust Sensor Error */
bit3: 1; /* Light Sensor Error */
bit4: 1; /* O2 Sensor Error */
bit5: 1; /* Soil Sensor Error */
reserved: 2; /* Reserved */
}
?
網關部分

網關部分是一個Raspberry Pi,它插入了網關模塊RHF0M301-868和PRI 2 Bridge RHF4T002,它安裝在防水??盒中并通過水接頭連接到電源和USB攝像頭。因為它使用專門的固件,請按照Seeed Wiki進行配置。
軟件編程
作為Hardware Connection,Software Programming也可以拆分,可以拆分為3個部分:Node、Gateway和Website。
節(jié)點部分
大部分 Node Part 需要的驅動已經包含在 origin_driver 中
文件夾。下面的庫需要手動安裝:
Adafruit_ASFcore
由于項目復雜,我們建議您使用 Microsoft Visual Studio 而不是 Arduino IDE。一個名為 Visual Micro 的插件可以幫助您使用 Visual Studio 構建 Arduino 項目,單擊此處了解更多信息。
為了更好的可讀性和可維護性,我們這次使用面向對象編程。該項目的類圖如下所示:

對于那些已經有 OOP 驅動程序的傳感器,我們重新打包以適應這個項目,對于其他傳感器,我們使用 OOP 重寫了它們的驅動程序。中間件層的Sensor類用于統(tǒng)一實際傳感器的接口,例如氣壓計傳感器可以同時采集溫度、濕度和高度,所以它有3個接口分別獲取溫度、濕度和高度。但是他們有不同的方法名,這會使獲取傳感器值的程序更加復雜,就像這樣:
?
barometer->getTemperature(); barometer->getHumidity(); barometer->getAltitude(); // ... another_sensor->getSomeValue(); // ...
?
但是使用 OOP,它看起來像這樣:
?
for (auto i = 0; i < SENSORS_COUNT; i++) {
sensors[i]->getValue();
}
?
我們還打包了一個Application類,它實現了IApplication接口,IoTea.ino中的setup()和loop()方法可以調用Application對象中的setup()和loop()方法。
注意:USB 串行僅用于調試。調試后,請注釋掉setup()方法中的初始化代碼。
網關部分
Gateway Part 在主文件夾中的 Python 程序用于每小時拍照并上傳到 Amazon S3 服務器。在你使用它之前,確保 fswebcam 已經安裝在你的 Raspberry Pi 中:
?
sudo apt-get update && sudo apt-get install fswebcam
?
如果要上傳照片,請按照以下步驟配置您的 AWS。首先,使用以下命令將 AWS SDK 和 AWS CLI 安裝到您的 Raspberry Pi:
?
sudo pip install boto3 sudo pip install awscli
?
然后,運行 AWS CLI:
?
sudo aws configure
?
配置您的 AWS 訪問密鑰 ID、AWS 秘密訪問 ID 和默認區(qū)域名稱。
如果你不喜歡上傳你的照片,你可以跳過 AWS 配置步驟和 photo.py 中關于上傳的注釋代碼。為了每次啟動樹莓派后運行這個程序,可以在/etc/init.d中創(chuàng)建一個名為photo的文件,并寫入如下代碼。
?
#!/bin/bash
# /etc/init.d/photo
### BEGIN INIT INFO
# Provides: seeed_photo
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: photo taking initscript
# Description: This service is used to manage photo taking
### END INIT INFO
case "$1" in
start)
echo "Start taking photo"
/home/rxhf/photo.py &
;;
stop)
echo "Stop taking photo"
kill $(ps aux | grep -m 1 'python3 /home/rxhf/photo.py' | awk '{ print $2 }')
;;
*)
echo "Usage: service photo start|stop"
exit 1
;;
esac
exit 0
?
設置執(zhí)行權限
?
sudo chmod 777 /etc/init.d/photo sudo chmod 777 /home/rxhf/photo.py
?
并測試它
?
sudo /etc/init.d/photo start
?
如果沒有問題,將其停止并將其添加到啟動應用程序中
?
sudo /etc/init.d/photo stop sudo update-rc.d photo defaults
?
注意:如果你想在 Raspberry Pi 啟動后啟動網關,請將 Seeed Wiki 中的網關啟動代碼添加到 /etc/rc.local,如下所示:
?
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %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-risinghf-rhf2s008-rhf1257-SPI-0-latest.bin -O loriot-gw.bin chmod +x loriot-gw.bin ./loriot-gw.bin -f -s cn1.loriot.io exit 0
?
網站
我們把網站部署在CentOS7上。以下步驟將向您展示如何部署。
步驟 1. 安裝 Python3
?
sudo yum -y install epel-release sudo yum -y install python36
?
步驟 2. 安裝 Python pip 和虛擬環(huán)境
?
wget https://bootstrap.pypa.io/get-pip.py sudo python36 get-pip.py sudo pip install virtualenv
?
Setp 3. 從 GitHub 克隆我們的網站
?
sudo yum -y install git git clone https://github.com/SeeedDocument/iotea-hb.git
?
步驟 4. 創(chuàng)建并激活虛擬環(huán)境
?
virtualenv -p python36 iotea-hb cd iotea-hb source bin/activate
?
Step 5. 安裝依賴庫
?
pip install pymysql pip install dbutils pip install flask pip install websocket-client pip install cofigparser
?
步驟 6. 創(chuàng)建數據庫
?
sudo yum -y install mariadb mariabd-server sudo systemctl enable mariadb sudo systemctl start mariadb mysql -uroot -p
?
然后使用 iotea_hb.sql 創(chuàng)建表。
Step 7. 創(chuàng)建db.ini,將這些代碼寫入其中
?
[db] db_port = 3306 db_user = root db_host = localhost db_pass = db_name = iotea
?
在 db.py 中更改 db.ini 的路徑
?
# in db.py
#cf.read("/data/www/python3_iotea_hb/iotea/conf/db.ini")
cf.read("/home//iotea-hb/db.ini")
?
步驟 8. 在 app.py 中更改端口并啟動網站:
?
# in app.py #app.run(debug=True, port=6000) app.run(debug=True, port=8080)
?
?
# in terminal pip install gunicorn gunicorn -w 5 -b 0.0.0.0:8080 app:app
?
現在用瀏覽器訪問127.0.0.1:8080,可以看到網站,但是看不到實時數據。
步驟 9. 獲取洛里奧特數據
打開另一個終端,重新進入虛擬環(huán)境并啟動loriot app:
?
cd iotea-hb source bin/activate gunicorn loriot:app
?
稍等片刻,您會看到網站顯示數據,或者您可以在 loriot.py 中更改 wss:
?
# in loriot.py
#ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==")
ws = create_connection()
?
?
- Seeed Wio終端開源分享
- NET Core LoRaWAN客戶端使用Seeed LoRa E5模塊
- POL全光校園解決方案 光纖到教室解決方案 光纖到宿舍解決方案(最新版)
- 智慧水務解決方案
- 汽車解決方案概述 21次下載
- 詳談NB-IoT和LoRa的區(qū)別及應用 114次下載
- SI4432.SI4463.SI4438和LORA方案對比 33次下載
- NB-IoT和LoRa二者的區(qū)別資料下載
- NB-IoT和LoRa二者的特點和商業(yè)模式資料下載
- 一文讀懂:LoRa模塊使用原理資料下載
- LoRa技術網絡架構及與NB-IoT的對比資料下載
- ESD解決方案資料下載
- LoRa芯片應用:自組網透傳、LoRaNET和LoRaWAN三種協(xié)議資料下載
- 基于LoRa智能路燈解決方案的相關案例
- 關于SMT回流焊中出現的缺陷及其解決方案資料下載 30次下載
- 怎么通過NFC輕松配置LoRa呢? 1.6k次閱讀
- 智能LoRa水表ESD靜電浪涌保護方案說明 1.5k次閱讀
- 基于LoRa實現的智慧農場設計方案 5.3k次閱讀
- LoRa組網結構和典型應用 8.1k次閱讀
- 星翼電子:LORA模塊ATK-LORA-01相關信息描述 8.1k次閱讀
- 無線遠傳水表LoRa存在哪些技術問題 3.1k次閱讀
- Axino:基于Semtech LoRa技術的集成智能制冷解決方案 1.5k次閱讀
- Semtech的LoRa技術在航空航天制造業(yè)實現創(chuàng)新的資產追蹤解決方案 1.7k次閱讀
- Semtech簡化LoRa?應用的地理定位開發(fā) 1.9k次閱讀
- Semtech與SK Telecom采用LoRa技術監(jiān)測牲畜健康情況 2.9k次閱讀
- 智能節(jié)能路燈LoRa解決方案 1.9k次閱讀
- LoRa設計的常見10大問 6.6k次閱讀
- 深度解析LoRa和LoRaWAN的區(qū)別 9.1w次閱讀
- 基于Semtech的LoRa擴頻通信技術實現的超長距離低功耗物聯(lián)網解決方案 1.4k次閱讀
- 了解LoRa聯(lián)盟最新白皮書以及31個LoRa的問答 6.2k次閱讀
下載排行
本周
- 1矽力杰 Silergy SY7215A 同步升壓調節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 2HT81696H 內置升壓的30W立體聲D類音頻功放數據手冊
- 1.21 MB | 1次下載 | 免費
- 3HTA6863 3W超低噪聲超低功耗單聲道D類音頻功率放大器數據手冊
- 0.87 MB | 次下載 | 免費
- 4南芯 Southchip SC8802C 充電控制器 規(guī)格書 Datasheet 佰祥電子
- 88.16 KB | 次下載 | 免費
- 5矽力杰 Silergy SY7065 同步升壓轉換器 規(guī)格書 Datasheet 佰祥電子
- 910.67 KB | 次下載 | 免費
- 6矽力杰 Silergy SY7066 同步升壓轉換器 規(guī)格書 Datasheet 佰祥電子
- 989.14 KB | 次下載 | 免費
- 7WD6208A產品規(guī)格書
- 631.24 KB | 次下載 | 免費
- 8NB685 26 V,12 A,低靜態(tài)電流,大電流 同步降壓變換器數據手冊
- 1.64 MB | 次下載 | 2 積分
本月
- 1EMC PCB設計總結
- 0.33 MB | 12次下載 | 免費
- 2PD取電芯片 ECP5702規(guī)格書
- 0.88 MB | 5次下載 | 免費
- 3矽力杰 Silergy SY7215A 同步升壓調節(jié)器 規(guī)格書 Datasheet 佰祥電子
- 1.12 MB | 5次下載 | 免費
- 4氮化鎵GaN FET/GaN HEMT 功率驅動電路選型表
- 0.10 MB | 3次下載 | 免費
- 5PD取電芯片,可取5/9/12/15/20V電壓ECP5702數據手冊
- 0.88 MB | 3次下載 | 免費
- 6SY50655 用于高輸入電壓應用的偽固定頻率SSR反激式穩(wěn)壓器英文資料
- 1.01 MB | 3次下載 | 免費
- 7怎么為半導體測試儀選擇精密放大器
- 0.65 MB | 2次下載 | 免費
- 8SY52341 次級側同步整流英文手冊
- 0.94 MB | 2次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233095次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191469次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183360次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81606次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73832次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論