電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Seeed IoTea LoRa解決方案

Seeed IoTea LoRa解決方案

2023-06-13 | zip | 0.00 MB | 次下載 | 免費(fèi)

資料介紹

描述

四川雅安東北部的蒙頂山,山巒起伏,自西向東,掩映在一片綠海之中。這是 36 歲的鄧先生最熟悉的景象,他是他那一代為數(shù)不多的蒙頂茶師之一,擁有 50 畝(=3.3 公頃)的種植園,海拔 1100 米。鄧出身于制茶世家,但繼承家族遺產(chǎn)并非易事?!拔覀兊牟枞~生長在高海拔的有機(jī)環(huán)境中,以確保其卓越的品質(zhì)。但同時(shí)生長密度低,成本高,出芽不均勻,茶葉采收困難。這就是為什么高山茶通常是小收成,它們的價(jià)值在市場上沒有體現(xiàn)?!?過去兩年,鄧一直在努力提高消費(fèi)者對(duì)高山茶的認(rèn)識(shí),以提升其價(jià)值。而當(dāng)他遇到范主時(shí),

硬件連接

該項(xiàng)目的硬件可以分為 4 個(gè)部分:電源、傳感器、節(jié)點(diǎn)和網(wǎng)關(guān)。以下文章將向您展示如何逐步完成它。

電源部分

電源部分主要包含一塊太陽能電池板和一塊鋰電池,如果你只是為了演示而搭建這個(gè)項(xiàng)目,可以忽略它們?;蛘吣梢园凑丈弦?a href='http://www.ttokpm.com/v/' target='_blank' class='arckwlink_none'>教程安裝節(jié)點(diǎn)電源。

傳感器部分

在傳感器部分,由于傳感器較多,我們使用了一個(gè)氣象站,還做了一個(gè)亞克力支架來安裝它們。

pYYBAGOznuuALfBFAADXT0eJVLM911.jpg

如上圖所示,Digital Light Sensor 始終位于頂部,以便它可以收集照明信息。會(huì)產(chǎn)生熱量的傳感器安裝在亞克力支架的中間,例如 O2 傳感器、灰塵傳感器和 CO2 傳感器。最后,亞克力支架底部的溫濕度傳感器。

此外,土壤溫度和濕度傳感器單獨(dú)安裝在土壤中。

節(jié)點(diǎn)部分

pYYBAGOznu2AJ0Y2AADyb8fD5XA406.jpg

節(jié)點(diǎn)部分是一個(gè)安裝在防水??盒中的 Seeeduino LoRaWan,它通過水接頭連接到電源和傳感器。其中,灰塵傳感器連接到LoRaWan的數(shù)字引腳D3,二氧化碳傳感器連接到引腳D4和D5,土壤傳感器連接到引腳D6和D7,O2傳感器連接到模擬引腳A1,光傳感器和氣壓傳感器連接到I2C端口。

注意:應(yīng)在土壤傳感器的藍(lán)色(數(shù)據(jù))電纜和紅色(Vcc)電纜之間添加一個(gè) 10k 電阻器。

Seeeduino LoRaWan 偶爾收集傳感器值,并通過 LoRa 將它們發(fā)送到網(wǎng)關(guān)。數(shù)據(jù)格式如下:

?

  {
      [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               */
  }

?

網(wǎng)關(guān)部分

poYBAGOznvCABfRPAADpYNs1g4o413.jpg

網(wǎng)關(guān)部分是一個(gè)Raspberry Pi,它插入了網(wǎng)關(guān)模塊RHF0M301-868和PRI 2 Bridge RHF4T002,它安裝在防水??盒中并通過水接頭連接到電源和USB攝像頭。因?yàn)樗褂脤iT的固件,請(qǐng)按照Seeed Wiki進(jìn)行配置。

軟件編程

作為Hardware Connection,Software Programming也可以拆分,可以拆分為3個(gè)部分:Node、Gateway和Website。

節(jié)點(diǎn)部分

大部分 Node Part 需要的驅(qū)動(dòng)已經(jīng)包含在 origin_driver 中

文件夾。下面的庫需要手動(dòng)安裝:

Adafruit_ASFcore

由于項(xiàng)目復(fù)雜,我們建議您使用 Microsoft Visual Studio 而不是 Arduino IDE。一個(gè)名為 Visual Micro 的插件可以幫助您使用 Visual Studio 構(gòu)建 Arduino 項(xiàng)目,單擊此處了解更多信息。

為了更好的可讀性和可維護(hù)性,我們這次使用面向?qū)ο缶幊?。該?xiàng)目的類圖如下所示:

pYYBAGOznvKAf0AzAACR6iSMJoA864.png

對(duì)于那些已經(jīng)有 OOP 驅(qū)動(dòng)程序的傳感器,我們重新打包以適應(yīng)這個(gè)項(xiàng)目,對(duì)于其他傳感器,我們使用 OOP 重寫了它們的驅(qū)動(dòng)程序。中間件層的Sensor類用于統(tǒng)一實(shí)際傳感器的接口,例如氣壓計(jì)傳感器可以同時(shí)采集溫度、濕度和高度,所以它有3個(gè)接口分別獲取溫度、濕度和高度。但是他們有不同的方法名,這會(huì)使獲取傳感器值的程序更加復(fù)雜,就像這樣:

?

  barometer->getTemperature();
  barometer->getHumidity();
  barometer->getAltitude();
  // ...
  another_sensor->getSomeValue();
  // ...

?

但是使用 OOP,它看起來像這樣:

?

  for (auto i = 0; i < SENSORS_COUNT; i++) {
      sensors[i]->getValue();
  }

?

我們還打包了一個(gè)Application類,它實(shí)現(xiàn)了IApplication接口,IoTea.ino中的setup()和loop()方法可以調(diào)用Application對(duì)象中的setup()和loop()方法。

注意:USB 串行僅用于調(diào)試。調(diào)試后,請(qǐng)注釋掉setup()方法中的初始化代碼。

網(wǎng)關(guān)部分

Gateway Part 在主文件夾中的 Python 程序用于每小時(shí)拍照并上傳到 Amazon S3 服務(wù)器。在你使用它之前,確保 fswebcam 已經(jīng)安裝在你的 Raspberry Pi 中:

?

sudo apt-get update && sudo apt-get install fswebcam 

?

如果要上傳照片,請(qǐng)按照以下步驟配置您的 AWS。首先,使用以下命令將 AWS SDK 和 AWS CLI 安裝到您的 Raspberry Pi:

?

sudo pip install boto3
sudo pip install awscli

?

然后,運(yùn)行 AWS CLI:

?

sudo aws configure

?

配置您的 AWS 訪問密鑰 ID、AWS 秘密訪問 ID 和默認(rèn)區(qū)域名稱。

如果你不喜歡上傳你的照片,你可以跳過 AWS 配置步驟和 photo.py 中關(guān)于上傳的注釋代碼。為了每次啟動(dòng)樹莓派后運(yùn)行這個(gè)程序,可以在/etc/init.d中創(chuàng)建一個(gè)名為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

?

設(shè)置執(zhí)行權(quán)限

?

sudo chmod 777 /etc/init.d/photo
sudo chmod 777 /home/rxhf/photo.py

?

并測試它

?

sudo /etc/init.d/photo start

?

如果沒有問題,將其停止并將其添加到啟動(dòng)應(yīng)用程序中

?

sudo /etc/init.d/photo stop
sudo update-rc.d photo defaults

?

注意:如果你想在 Raspberry Pi 啟動(dòng)后啟動(dòng)網(wǎng)關(guān),請(qǐng)將 Seeed Wiki 中的網(wǎng)關(guān)啟動(dòng)代碼添加到 /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

?

網(wǎng)站

我們把網(wǎng)站部署在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 克隆我們的網(wǎng)站

?

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)建數(shù)據(jù)庫

?

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 中更改端口并啟動(dòng)網(wǎng)站:

?

# 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

?

現(xiàn)在用瀏覽器訪問127.0.0.1:8080,可以看到網(wǎng)站,但是看不到實(shí)時(shí)數(shù)據(jù)。

步驟 9. 獲取洛里奧特?cái)?shù)據(jù)

打開另一個(gè)終端,重新進(jìn)入虛擬環(huán)境并啟動(dòng)loriot app:

?

cd iotea-hb
source bin/activate
gunicorn loriot:app 

?

稍等片刻,您會(huì)看到網(wǎng)站顯示數(shù)據(jù),或者您可以在 loriot.py 中更改 wss:

?

# in loriot.py
#ws = create_connection("wss://cn1.loriot.io/app?token=vnwEuwAAAA1jbjEubG9yaW90LmlvRpscoh9Uq1L7K1zbrcBz6w==")
ws = create_connection()

?

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1ADE-12H混頻器規(guī)格書
  2. 0.28 MB   |  1次下載  |  5 積分
  3. 2AD9984A高性能10位顯示接口英文手冊(cè)
  4. 0.49 MB   |  1次下載  |  5 積分
  5. 351開發(fā)板芯片資料
  6. 14.95 MB   |  1次下載  |  1 積分
  7. 4用TL431LI-Q1監(jiān)控電流供應(yīng)
  8. 176.71KB   |  1次下載  |  免費(fèi)
  9. 5十進(jìn)制數(shù)據(jù)轉(zhuǎn)十六進(jìn)制字符_轉(zhuǎn)ASCII碼
  10. 0.01 MB   |  次下載  |  免費(fèi)
  11. 6使用TRF7970A進(jìn)行NFC主動(dòng)和被動(dòng)點(diǎn)對(duì)點(diǎn)通信
  12. 926.87KB   |  次下載  |  免費(fèi)
  13. 7LP8864-Q1 LP8864S-Q1 LP8866-Q1和LP8866S-Q1診斷說明和故障處理程序
  14. 577.42KB   |  次下載  |  免費(fèi)
  15. 8將設(shè)計(jì)移植到LP3470A低lq電壓監(jiān)控器,以改善電源監(jiān)控
  16. 115.28KB   |  次下載  |  免費(fèi)

本月

  1. 1HFSS電磁仿真設(shè)計(jì)應(yīng)用詳解PDF電子教程免費(fèi)下載
  2. 24.30 MB   |  129次下載  |  1 積分
  3. 2正激、反激、推挽、全橋、半橋區(qū)別和特點(diǎn)
  4. 0.91 MB   |  36次下載  |  1 積分
  5. 3GBT 4706.1-2024家用和類似用途電器的安全第1部分:通用要求
  6. 7.43 MB   |  20次下載  |  免費(fèi)
  7. 4在設(shè)計(jì)中使用MOSFET瞬態(tài)熱阻抗曲線
  8. 1.57MB   |  15次下載  |  免費(fèi)
  9. 5幾張電動(dòng)車充電器電路圖
  10. 0.23 MB   |  9次下載  |  1 積分
  11. 6AD18學(xué)習(xí)筆記
  12. 14.47 MB   |  8次下載  |  2 積分
  13. 7H橋中的電流感測
  14. 545.39KB   |  7次下載  |  免費(fèi)
  15. 8電機(jī)驅(qū)動(dòng)器電路板布局的最佳實(shí)踐
  16. 3.03MB   |  6次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935113次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191360次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183329次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81578次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73804次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65985次下載  |  10 積分