色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>使用Python繪制LoRa節點的實時數據

使用Python繪制LoRa節點的實時數據

2022-12-22 | zip | 0.34 MB | 次下載 | 免費

資料介紹

描述

?

?

本文遵循有關?如何?使用Zerynth創建以Python編程并連接到The Things Network的 LoRa/LoraWAN 網絡教程

從上一個項目的相同設置開始,我們將了解如何使用 Zerynth、The Things Network 和 Matplotlib(一個非常流行的 Python 繪圖庫)獲取和可視化 LoRa 節點的傳感器數據。

您將看到如何:

  • 使用Zerynth在Python中?編寫LoRa?節點以獲取溫度?和?濕度數據;
  • 通過 LoRa 網關向物聯網發送數據;
  • 通過MQTT從 The Things Network 控制臺獲取數據
  • 使用Matplotlib繪制傳感器數據

所需材料

本質上,我們需要與之前項目相同的配置,外加一個溫度和濕度傳感器

  • 勞拉網關在本教程中,我們使用了 Link Labs BS-8,這是一種用于 LoRa 網絡的工業IoT/M2M 網關。它能夠支持具有 8 個同步接收通道的數千個端點。
  • LoRa 終端節點在本教程中,我們使用了Flip&Click作為 MCU 板,一個?LoRa Click?和一個Temp&Hum Click ,它帶有 ST 的 HTS221 溫度和相對濕度傳感器。
  • Zerynth Studio:我們的專業 IDE,它提供了一個平臺,用于開發 Python 或混合 C/Python 代碼和管理您的開發板。它包括編譯器、調試器和編輯器,以及提供輕松學習體驗的教程和示例項目。

在 Python 中編程 LoRa 節點以獲取傳感器數據

在執行 LoRa 網關配置和 LoRa 節點配置步驟后(參見之前的項目),我們將能夠對設備進行編程以從 Temp&Hum Click 獲取數據并將這些值發送到 The Things Network 控制臺。

特別是,我們必須在 Zerynth Studio 上創建一個新項目并粘貼此代碼:

# LoraWAN sensor data Logging
?
import streams
from microchip.rn2483 import rn2483
from stm.hts221 import hts221
?
streams.serial()
?
try:
????rst = D16 # reset pin 
????# insert otaa credentials!
????appeui = "YOUAPPEUI"
????appkey =??"YOUAPPKEY"
????print("joining...")
????
????if not rn2483.init(SERIAL1, appeui, appkey, rst): # LoRa Click on slot A
????????print("denied :(")
????????raise Exception
?
????print("sending first message, res:")
????print(rn2483.tx_uncnf('TTN'))
?
????temp_hum = hts221.HTS221( I2C1,D31 ) # Temp Hum Click on slot C
????
????while True:
????????temp, hum = temp_hum.get_temp_humidity()
????????print('temp: ', temp, 'hum: ', hum)
????????data = bytearray(4) 
????????data[0:2] = bytearray([ int(temp) + 127, int((temp - int(temp)) * 100) ])
????????data[2:4] = bytearray([ int(hum) + 127, int((hum - int(hum)) * 100) ])
????????r = rn2483.tx_uncnf(data) # send data to TTN
????????sleep(5000)
????????
except Exception as e:
????print(e)

使用您可以在TTN 控制臺的設備概述中找到的“ appeui ”和“ appkey ”值編輯行。

將代碼上傳到您的開發板,您就完成了!

現在單擊 TTN 控制臺的“數據”選項卡,您可以看到 LoRa 節點發送的傳感器數據!

如您所見,此腳本與上一個項目中使用的“ping”示例非常相似。唯一的區別與Temp&Hum Click搭載的HTS221溫濕度傳感器的使用有關。感謝 Zerynth,您只需要幾行Python ,就可以從傳感器獲取真實數據并將其發送到 LoRa 網絡!

通過 MQTT 從 The Things Network 控制臺獲取數據

現在是從 TTN 控制臺獲取數據的時候了。為此,我們準備了一個非常簡單的 Python 腳本,該腳本使用?Eclipse Paho MQTT Python 客戶端庫,該客戶端庫實現了MQTT協議的 3.1 和 3.1.1 版。

請注意,您必須在筆記本電腦上運行此腳本,因此您需要在 PC 上安裝 Python (3.x)。

get_plot_data_TTN.py:

# Get and plot data from TTN Console using Python
?
import paho.mqtt.client as mqtt
import json
import base64
?
APPEUI = 'YOURAPPEUI'
APPID??= 'YOUAPPID'
PSW????= 'YOURPASSWORD'
?
import matplotlib.pyplot as plt
#import DataPlot and RealtimePlot from the file plot_data.py
from plot_data import DataPlot, RealtimePlot
?
fig, axes = plt.subplots()
plt.title('Data from TTN console')
?
data = DataPlot()
dataPlotting= RealtimePlot(axes)
?
count=0
?
def bytes_to_decimal(i,d):
????xx = i - 127
????dec = (-d if xx < 0 else d)/100
????return xx + dec
?
def on_connect(client, userdata, flags, rc):
????client.subscribe('+/devices/+/up'.format(APPEUI))
?
def on_message(client, userdata, msg):
????j_msg = json.loads(msg.payload.decode('utf-8'))
????dev_eui = j_msg['hardware_serial']
?
????tmp_hum = base64.b64decode(j_msg['payload_raw'])
????tmp = bytes_to_decimal(*tmp_hum[0:2])
????hum = bytes_to_decimal(*tmp_hum[2:4])
?
????# print data
????print('---')
????print('tmp:', tmp, ' hum:', hum)
????print('dev eui: ', dev_eui)
?
????# plot data
????global count
????count+=1
????data.add(count, tmp , hum)
????dataPlotting.plot(data)
????plt.pause(0.001)
?
# set paho.mqtt callback
ttn_client = mqtt.Client()
ttn_client.on_connect = on_connect
ttn_client.on_message = on_message
ttn_client.username_pw_set(APPID, PSW)
ttn_client.connect("eu.thethings.network", 1883, 60) #MQTT port over TLS
?
try:
????ttn_client.loop_forever()
except KeyboardInterrupt:
????print('disconnect')
????ttn_client.disconnect()

使用 Matplotlib 實時繪制傳感器數據

一旦你的計算機中有了數據,你就可以用它做各種各樣的事情。在這種情況下,我們想要讀取這些溫度和濕度值并將它們繪制為時間的函數。

因為我們喜歡 Python,所以我們準備了一個名為“ plot_data.py ”的腳本,它為此使用了Matplotlib庫。

plot_data.py:

import time
import math
from collections import deque , defaultdict
?
import matplotlib.animation as animation
from matplotlib import pyplot as plt
?
import threading
?
from random import randint
?
from statistics import *
?
class DataPlot:
????def __init__(self, max_entries = 20):
????????self.axis_x = deque(maxlen=max_entries)
????????self.axis_y = deque(maxlen=max_entries)
????????self.axis_y2 = deque(maxlen=max_entries)
?
????????self.max_entries = max_entries
?
????????self.buf1=deque(maxlen=5)
????????self.buf2=deque(maxlen=5)
?
???? 
????def add(self, x, y,y2):
?
????????self.axis_x.append(x)
????????self.axis_y.append(y)
????????self.axis_y2.append(y2)
?
class RealtimePlot:
????def __init__(self, axes):
???? 
????????self.axes = axes
?
????????self.lineplot, = axes.plot([], [], "ro-")
????????self.lineplot2, = axes.plot([], [], "go-")
?
????def plot(self, dataPlot):
????????self.lineplot.set_data(dataPlot.axis_x, dataPlot.axis_y)
????????self.lineplot2.set_data(dataPlot.axis_x, dataPlot.axis_y2)
?
????????self.axes.set_xlim(min(dataPlot.axis_x), max(dataPlot.axis_x))
????????ymin = min([min(dataPlot.axis_y), min(dataPlot.axis_y2)])-10
????????ymax = max([max(dataPlot.axis_y), max(dataPlot.axis_y2)])+10
????????self.axes.set_ylim(ymin,ymax)
????????self.axes.relim();
?
def main():
????fig, axes = plt.subplots()
????plt.title('Plotting Data')
?
????data = DataPlot();
????dataPlotting= RealtimePlot(axes)
?
????try:
????????count=0
????????while True:
????????????count+=1
????????????data.add(count, 30 + 1/randint(1,5) , 35 + randint(1,5))
????????????dataPlotting.plot(data)
?
????????????plt.pause(0.001)
????except KeyboardInterrupt:
????????print('\n\nKeyboard exception received. Exiting.')
????????plt.close()
????????ser.close()
????????exit()
?
if __name__ == "__main__": main()

請注意,您必須在之前的腳本中導入此文件才能正常工作。這就是情節的樣子。隨著數據的不斷涌入,它會向右滾動。

使用 Zerynth Studio PRO 擴展您的 LoRa 網絡

以下列表包括一些LoRa?關鍵特性:

  • 遠距離:15 – 20 公里;
  • 電池壽命長:超過十年;
  • 百萬節點!

Zerynth Studio?的免費版本允許您使用LoRa解決方案原型所需的所有功能,但您最多可以免費為每個受支持的電路板編程 5 個單元您可以使用Zerynth Studio PRO?版本(從 6 月 28 日開始提供,預購可享受高達 50% 的折扣)解鎖此限制,該?版本還將包括工業級功能,例如:

  • 可選擇實時操作系統;
  • 無線更新開發;
  • 硬件驅動的安全固件以工業規模燒錄在設備上;
  • …以及更多
通過Zerynth 學院

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

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 国产精品美女久久久久浪潮AV | 天美传媒在线观看免费完整版| 大香网伊人久久综合网2020| 亚洲 综合 欧美在线 热| 久久国产免费观看精品1| 变态露出野外调教| 亚洲精品久久久WWW游戏好玩| 久久亚洲精品成人| 俄罗斯人xxx| 亚洲一区国产| 日本精品久久久久中文字幕| 国内精品免费视频精选在线观看| 5G在线观看免费年龄确认| 色美妞论坛| 久久影院一区| 国产人妻人伦精品久久无码| 4480YY无码午夜私人影院| 午夜影院老司机| 男人和女人全黄一级毛片| 国产午夜不卡| TUBE19UP老师学生| 亚洲视频在线观看网站| 日韩欧美一区二区三区免费看| 狠狠久久免费视频在线| 成年人在线免费观看视频网站| 野花日本韩国视频免费高清观看| 日本女人bbb| 久久伊人在| 国产亚洲色婷婷久久精品99| JLZZJLZZJLZ老师好多的水| 亚洲中文字幕AV在天堂| 无码人妻精品一区二区蜜桃色欲| 欧美日韩国产高清综合二区| 极品美女穴| 国产高清精品自在久久| 99热在线视频| 在线免费观看国产精品| 亚洲精品视频久久| 色婷婷综合激情中文在线| 欧美.亚洲.日韩.天堂| 两个奶被男人揉了一个晚上|