CheckNetwork

  1. '''
  2. 下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
  3. '''
  4. PROJECT_NAME = "QuecPython_AliYin_example"
  5. PROJECT_VERSION = "1.0.0"
  6. checknet = checkNet.CheckNetwork(PROJECT_NAME, PROJECT_VERSION)
  7. stagecode, subcode = checknet.wait_network_connected(30)

demo

  1. import log
  2. import utime
  3. import checkNet
  4. from aLiYun import aLiYun
  5. '''
  6. 下面两个全局变量是必须有的,用户可以根据自己的实际项目修改下面两个全局变量的值
  7. '''
  8. PROJECT_NAME = "QuecPython_AliYin_example"
  9. PROJECT_VERSION = "1.0.0"
  10. checknet = checkNet.CheckNetwork(PROJECT_NAME, PROJECT_VERSION)
  11. # 设置日志输出级别
  12. log.basicConfig(level=log.INFO)
  13. aliYun_log = log.getLogger("ALiYun")
  14. productKey = "" # 产品标识(参照阿里 IoT 平台应用开发指导)
  15. productSecret = None # 产品密钥(使用一机一密认证时此参数传入None,参照阿里 IoT 平台应用开发指导)
  16. DeviceName = "" # 设备名称(参照阿里 IoT 平台应用开发指导)
  17. DeviceSecret = "" # 设备密钥(使用一型一密认证此参数传入None,免预注册暂不支持,需先在 IoT 平台创建设备,参照阿里 IoT 平台应用开发指导)
  18. state = 5
  19. # 回调函数
  20. def sub_cb(topic, msg):
  21. global state
  22. aliYun_log.info("Subscribe Recv: Topic={},Msg={}".format(topic.decode(), msg.decode()))
  23. state -= 1
  24. if __name__ == '__main__':
  25. stagecode, subcode = checknet.wait_network_connected(30)
  26. if stagecode == 3 and subcode == 1:
  27. aliYun_log.info('Network connection successful!')
  28. # 创建aliyun连接对象
  29. ali = aLiYun(productKey, productSecret, DeviceName, DeviceSecret)
  30. # 设置mqtt连接属性
  31. clientID = "" # 自定义字符(不超过64)
  32. ali.setMqtt(clientID, clean_session=False, keepAlive=300)
  33. # 设置回调函数
  34. ali.setCallback(sub_cb)
  35. topic = "" # IoT 平台自定义或自拥有的Topic
  36. # 订阅主题
  37. ali.subscribe(topic)
  38. # 发布消息
  39. ali.publish(topic, "hello world")
  40. # 运行
  41. ali.start()
  42. while 1:
  43. if state:
  44. pass
  45. else:
  46. ali.disconnect()
  47. break
  48. else:
  49. aliYun_log.info('Network connection failed! stagecode = {}, subcode = {}'.format(stagecode, subcode))