电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>嵌入式开发>paho在OneNET平台的应用

paho在OneNET平台的应用

2017-12-04 | rar | 0.3 MB | 次下载 | 1积分

资料介绍

 使用python2.7测试通过,实现消息订阅,发布,平台数据下发,存储功能。
  一定要修改下面代码
  clientid = ‘8760549’ # 创建设备时得到的设备ID,为数字字串
  username = ‘79581’ # 注册产品时,平台分配的产品ID,为数字字串
  password = ‘iDO9cRe85v2wpgFm2hQsMiapP=U=’ # 为设备的鉴权信息(即唯一设备编号,SN),或者为apiKey,为字符串
  安装 sudo pip install paho-mqtt
  关于paho的使用参考:https://pypi.python.org/pypi/paho-mqtt/1.3.0
  实现功能:
  平台下发的数据,会转发给订阅了test主题的设备。收到主题为upload后,会将数据类型3:Json数据2的固定数据{“a”:1,“c”:3,“b”:2,“d”:4}发给平台。
  树莓派上也同样适用。
  不知道有没有EDP的python库可以用,没有的话,我打算自己弄一个,后面在树莓派上用。||ヽ(* ̄▽ ̄*)ノミ|Ю
  原帖链接: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服务器地址
  port = 6002 # OneNET服务器端口地址
  clientid = ‘8760549’ # 创建设备时得到的设备ID,为数字字串
  username = ‘79581’ # 注册产品时,平台分配的产品ID,为数字字串
  password = ‘iDO9cRe85v2wpgFm2hQsMiapP=U=’ # 为设备的鉴权信息(即唯一设备编号,SN),或者为apiKey,为字符串
  topic1 = ‘$creq/#’ #订阅平台下发命令主题
  topic2 = ‘upload’
  # 连接成功回调函数
  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) # 参数一为topic字符串, 参数二为QoS级别,默认QoS=0
  client.subscribe(topic2)
  # 消息推送回调函数
  def on_message(client, userdata, msg):
  print(‘[topic:]’+msg.topic + ‘ ’ + ‘[payload:]’+str(msg.payload))
  if msg.topic == ‘upload’: # 如果收到upload主题,就将数据类型3(json数据2)内容上传给OneNET平台
  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)
  (rc, final_mid) = client.publish(‘$dp’, str(dp), 2, True)
  if ‘$creq’ in msg.topic: # 如果收到OneNET下发的主题,然后将信息转发给test主题,其他设备将会收到
  (rc, 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)
  # 请根据实际情况改变MQTT代理服务器的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()
 
下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1TC358743XBG评估板参考手册
  2. 1.36 MB  |  330次下载  |  免费
  3. 2开关电源基础知识
  4. 5.73 MB  |  6次下载  |  免费
  5. 3100W短波放大电路图
  6. 0.05 MB  |  4次下载  |  3 积分
  7. 4嵌入式linux-聊天程序设计
  8. 0.60 MB  |  3次下载  |  免费
  9. 5基于FPGA的光纤通信系统的设计与实现
  10. 0.61 MB  |  2次下载  |  免费
  11. 6基于FPGA的C8051F单片机开发板设计
  12. 0.70 MB  |  2次下载  |  免费
  13. 751单片机窗帘控制器仿真程序
  14. 1.93 MB  |  2次下载  |  免费
  15. 8基于51单片机的RGB调色灯程序仿真
  16. 0.86 MB  |  2次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33564次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21548次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6653次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537796次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420026次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191185次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183278次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费