電子發(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)>電子資料下載>嵌入式開發(fā)>paho在OneNET平臺(tái)的應(yīng)用

paho在OneNET平臺(tái)的應(yīng)用

2017-12-04 | rar | 0.3 MB | 次下載 | 1積分

資料介紹

 使用python2.7測(cè)試通過,實(shí)現(xiàn)消息訂閱,發(fā)布,平臺(tái)數(shù)據(jù)下發(fā),存儲(chǔ)功能。
  一定要修改下面代碼
  clientid = ‘8760549’ # 創(chuàng)建設(shè)備時(shí)得到的設(shè)備ID,為數(shù)字字串
  username = ‘79581’ # 注冊(cè)產(chǎn)品時(shí),平臺(tái)分配的產(chǎn)品ID,為數(shù)字字串
  password = ‘iDO9cRe85v2wpgFm2hQsMiapP=U=’ # 為設(shè)備的鑒權(quán)信息(即唯一設(shè)備編號(hào),SN),或者為apiKey,為字符串
  安裝 sudo pip install paho-mqtt
  關(guān)于paho的使用參考:https://pypi.python.org/pypi/paho-mqtt/1.3.0
  實(shí)現(xiàn)功能:
  平臺(tái)下發(fā)的數(shù)據(jù),會(huì)轉(zhuǎn)發(fā)給訂閱了test主題的設(shè)備。收到主題為upload后,會(huì)將數(shù)據(jù)類型3:Json數(shù)據(jù)2的固定數(shù)據(jù){“a”:1,“c”:3,“b”:2,“d”:4}發(fā)給平臺(tái)。
  樹莓派上也同樣適用。
  不知道有沒有EDP的python庫(kù)可以用,沒有的話,我打算自己弄一個(gè),后面在樹莓派上用。||ヽ(* ̄▽ ̄*)ノミ|Ю
  原帖鏈接:https://open.iot.10086.cn/bbs/thread-16116-1-1.html
  #!/usr/bin/python
  # -*- coding:utf-8 -*-
  import paho.mqtt.client as mqtt
  try:
  import paho.mqtt.publish as publish
  except ImportError:
  # This part is only required to run the example from within the examples
  # directory when the module itself is not installed.
  #
  # If you have the module installed, just use “import paho.mqtt.publish”
  import os
  import inspect
  cmd_subfolder = os.path.realpath(
  os.path.abspath(os.path.join(os.path.split(inspect.getfile(inspect.currentframe()))[0], “。./src”)))
  if cmd_subfolder not in sys.path:
  sys.path.insert(0, cmd_subfolder)
  import paho.mqtt.publish as publish
  hostname = ‘183.230.40.39’ # OneNET服務(wù)器地址
  port = 6002 # OneNET服務(wù)器端口地址
  clientid = ‘8760549’ # 創(chuàng)建設(shè)備時(shí)得到的設(shè)備ID,為數(shù)字字串
  username = ‘79581’ # 注冊(cè)產(chǎn)品時(shí),平臺(tái)分配的產(chǎn)品ID,為數(shù)字字串
  password = ‘iDO9cRe85v2wpgFm2hQsMiapP=U=’ # 為設(shè)備的鑒權(quán)信息(即唯一設(shè)備編號(hào),SN),或者為apiKey,為字符串
  topic1 = ‘$creq/#’ #訂閱平臺(tái)下發(fā)命令主題
  topic2 = ‘upload’
  # 連接成功回調(diào)函數(shù)
  def on_connect(client, userdata, flags, rc):
  print(‘Connected with result code ’ + str(rc))
  # Subscribing in on_connect() means that if we lose the connection and
  # reconnect then subscriptions will be renewed.
  # 連接完成之后訂閱gpio主題
  client.subscribe(topic1, 0) # 參數(shù)一為topic字符串, 參數(shù)二為QoS級(jí)別,默認(rèn)QoS=0
  client.subscribe(topic2)
  # 消息推送回調(diào)函數(shù)
  def on_message(client, userdata, msg):
  print(‘[topic:]’+msg.topic + ‘ ’ + ‘[payload:]’+str(msg.payload))
  if msg.topic == ‘upload’: # 如果收到upload主題,就將數(shù)據(jù)類型3(json數(shù)據(jù)2)內(nèi)容上傳給OneNET平臺(tái)
  dp_load = ‘{“a”:1,“c”:3,“b”:2,“d”:4}’
  dp_type = 3
  dp_len = len(dp_load)
  dp=bytearray()
  dp.append(dp_type)
  dp.append((dp_len 》》 8) & 0xFF)
  dp.append(dp_len & 0xFF)
  dp = dp + dp_load
  print repr(dp)
 ?。╮c, final_mid) = client.publish(‘$dp’, str(dp), 2, True)
  if ‘$creq’ in msg.topic: # 如果收到OneNET下發(fā)的主題,然后將信息轉(zhuǎn)發(fā)給test主題,其他設(shè)備將會(huì)收到
 ?。╮c, final_mid) = client.publish(‘test’, str(msg.payload), 2, True)
  def on_publish(mqttc, obj, mid):
  print(“Publish mid: ” + str(mid))
  pass
  def on_subscribe(mqttc, obj, mid, granted_qos):
  print(“Subscribed: ” + str(mid) + “ ” + str(granted_qos))
  def on_log(mqttc, obj, level, string):
  print(“Log:” + string)
  if __name__ == ‘__main__’:
  client = mqtt.Client(client_id=clientid, clean_session=True, userdata=None, protocol=mqtt.MQTTv311, transport=“tcp”)
  client.on_connect = on_connect
  client.on_message = on_message
  client.on_publish = on_publish
  client.on_subscribe = on_subscribe
  client.on_log = on_log
  try:
  # 配置用戶名和密碼
  client.username_pw_set(username, password)
  # 請(qǐng)根據(jù)實(shí)際情況改變MQTT代理服務(wù)器的IP地址
  client.connect(hostname, port, 60)
  # Blocking call that processes network traffic, dispatches callbacks and
  # handles reconnecting.
  # Other loop*() functions are available that give a threaded interface and a
  # manual interface.
  client.loop_forever()
  except KeyboardInterrupt:
  client.disconnect()
?
下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)