文档章节

[Micropython][ESP8266] TPYBoard V202 之MQTT协议接入OneNET云平台

bodasisiter
 bodasisiter
发布于 2017/07/22 14:10
字数 979
阅读 210
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

  随着移动互联网的发展,MQTT由于开放源代码,耗电量小等特点,将会在移动消息推送领域会有更多的贡献,在物联网领域,传感器与服务器的通信,信息的收集,MQTT都可以作为考虑的方案之一。在未来MQTT会进入到我们生活的各各方面,本篇文章教大家利用TPYBoardv202使用MQTT协议接入OneNET平台,并且远程控制LED灯。

  什么是MQTT协议

  早在1999年,IBM的AndyStanford-Clark博士以及Arcom公司ArlenNipper博士发明了MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)技术。MQTT(MessageQueuingTelemetryTransport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器(比如通过Twitter让房屋联网)的通信协议。

  实验准备

  一、硬件材料

  1.TPYBoardv202

  2.面包板

  3.数据线

  4.LED发光二极管

  二、软件准备

  1.MicroPythonFileUploader用于与开发板的文件传输

  下载地址:http://www.tpyboard.com/download/tool/170.html

  2.ESPFlashDownloadTool_v3.3.4TPYBoardv202固件烧写工具

  下载地址:http://www.tpyboard.com/download/tool/185.html

  3.第三方库文件:micropython-lib\umqtt.simple\umqtt\simple.py

  下载地址:http://www.tpyboard.com/download/data/184.html

  4.TPYBoardv202固件

  下载地址:http://www.tpyboard.com/download/firmware/171.html

  OneNET平台创建MQTT协议的产品并添加设备

  如果没有产品,点击创建产品即可,上面显示我已经创建完毕。

  SmartBoy是我添加的设备,当我们插上TPYBoardv202时,就会看到上图绿点点亮,拔了以后就会变灰,前提是板子里程序已经写入。

  实物接线图

  我用的TPYBoardv202的G4引脚,这个引脚可以随便定义,主要看程序里你想用哪个。

  程序源代码

  boot.py源码

#连接本地网络
def do_connect():
        import network
        sta_if = network.WLAN(network.STA_IF)
        ap_if = network.WLAN(network.AP_IF)
        if ap_if.active():
                ap_if.active(False)
        if not sta_if.isconnected():
                print('connecting to network...')
        sta_if.active(True)
        sta_if.connect(WIFI名称, '密码') #wifi的SSID和密码
        while not sta_if.isconnected():
                pass
        print('network config:', sta_if.ifconfig())
do_connect()


  mqtt.py源码

from simple import MQTTClient
from machine import Pin
import machine
import micropython
#选择G4引脚
g4 = Pin(4, Pin.OUT, value=0)
# MQTT服务器地址域名为:183.230.40.39,不变
SERVER = "183.230.40.39"
#设备ID
CLIENT_ID = "9377500"
#随便起个名字
TOPIC = b"TurnipRobot"
#产品ID
username='91025'
#产品APIKey:
password='y7zd=7wNaObdfRYhxQn7D5jiDnI='
state = 0
def sub_cb(topic, msg):
    global state
    print((topic, msg))
    if msg == b"on":
            g4.value(1)
            state = 1
            print("1")
    elif msg == b"off":
            g4.value(0)
            state = 0
            print("0")
    elif msg == b"toggle":

            state = 1 - state
            g4.value(state)
           
def main(server=SERVER):
    #端口号为:6002
    c = MQTTClient(CLIENT_ID, server,6002,username,password)
    c.set_callback(sub_cb)
    c.connect()
    c.subscribe(TOPIC)
    print("Connected to %s, subscribed to %s topic" % (server, TOPIC))
    try:
            while 1:
                    c.wait_msg()
    finally:
            c.disconnect()


  simple.py源码不用更改,直接按照下载地址下载即可。

  main.py源码

import mqtt
mqtt.main()

  源码下载请到:http://www.tpyboard.com/download/data/183.html

  效果展示

  这个时候我们OneNET云平台上设备就会显示在线了

  当我们发送指令on的时候,就会看到控制台显示

  (b'$creq/3e25b3f5-27c8-50d5-b2bb-b7cb7ddddac4',b'on')

  1并且看到我们面包板上的led会亮起来

  当我们发送指令off的时候,就会看到控制台显示

  (b'$creq/c01cc820-72b2-50e2-ab0c-6954d35796ef',b'off')

  0并且看到我们面包板上的led灯会熄灭

  当我们发送toggle时候,就会看到控制台显示:

  (b'$creq/e2f94a0b-7363-56ec-b87c-1d5d02dc4774',b'toggle')

  并且看到我们面包板上的led灯会亮起来,再次发送,控制台会显示:

  (b'$creq/9aa4a04f-eb90-503f-b14f-6f0575869c23',b'toggle')

  我们会看到led熄灭。    

  视频展示效果

  http://player.youku.com/player.php/sid/XMjkwNDM1MjMwMA==/v.swf

  在这只是给大家演示了TPYBoardv202怎么用MQTT协议接入OneNet云平台,并教大家如何控制一个外围电路点亮一个led,大家可以利用TPYBoardv202接入更复杂,更好玩的东西。

  

© 著作权归作者所有

bodasisiter
粉丝 31
博文 209
码字总数 196976
作品 0
潍坊
私信 提问
加载中

评论(0)

[MicroPython]TPYBoard v202 MQTT协议2:上传数据点到OneNET平台

前言 在之前的教程中,学习过如何使用MQTT协议接入OneNET平台,同时获取该平台下发的命令实现远程控制的功能。若之前没有接触过MQTT协议和OneNET平台的朋友,建议先学习之前的教程,点击链接...

bodasisiter
2018/09/14
753
0
[Micropython][ESP8266] TPYBoard V202 之MQTT协议接入OneNET云平台

  随着移动互联网的发展,MQTT由于开放源代码,耗电量小等特点,将会在移动消息推送领域会有更多的贡献,在物联网领域,传感器与服务器的通信,信息的收集,MQTT都可以作为考虑的方案之一。...

bodasisiter
2017/07/25
0
0
MicroPython是未来?当Python遇上单片机!

  Python已经逐渐成为热门编程语言的“座上宾”,同时它也是一款比较容易上手的脚本语言,而且有强大的社区支持,一些非计算机专业领域的人都选它作为入门语言。因此也就出现了将Python应用...

bodasisiter
2017/05/13
89
0
[Micropython]TPYBoard v202 智能WIFI远控小车

转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇 前言 ---------------------- 之前有过用TPYBoard v102制作的各种各样功能...

小五义
01/15
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
2019/01/19
404
0

没有更多内容

加载失败,请刷新页面

加载更多

Python笔记:爬取各国疫情仙去人数数据制作南丁格尔玫瑰图

我凌晨用Python爬虫实时从网上爬取各国在疫情中仙去人数的数据,然后仿人民日报制作成“南丁格尔玫瑰图” 英国37048;意大利32877;西班牙27117都对得上; 但美国、法国、巴西的跟百度大数据...

tengyulong
今天
26
0
PHP Session的用法

在 PHP 中,Session 是一种服务器端的机制,服务器使用一种散列表的结构(类似于 JSON)来保存信息。相比于保存在客户端的 Cookie,Session 将用户交互信息保存在了服务器端,使得同一个客户...

linuxprobe2020
今天
37
0
webpack.03-打包js同时生成html页面

在空文件夹初始化:CMD npm init -y cnpm install -D webpack webpack-cli 文件结构 src(文件夹)--->test.js console.log('hello webpack') src(文件夹)--->index.html <html> ......

_qq507570355
今天
24
0
希望多年运维的大佬能回答一下小弟心中的疑惑

小弟之前公司项目有搭建过一个数据中心,底层虚拟化系统,建设好之后配合开发人员完成好了各种项目环境的搭建。前期比较累一点,也负责各种日志备份,监控系统之类的搭建。当系统趋于稳定之后...

夜雨声声到天明
今天
38
0
OSChina 周三乱弹 —— 只泡面不泡妞

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @Cobbage :分享许巍的单曲《我的爱 (慕思《觉/醒》视频主题曲)》: 《我的爱 (慕思《觉/醒》视频主题曲)》- 许巍 手机党少年们想听歌,请使劲...

小小编辑
今天
73
2

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部