文档章节

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

bodasisiter
 bodasisiter
发布于 2017/07/22 14:10
字数 979
阅读 40
收藏 0
点赞 0
评论 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
粉丝 14
博文 130
码字总数 118441
作品 0
潍坊
[Micropython][ ESP8266] TPYBoard V202之Network

实验目的 学习在PC机系统中网络(network)的使用方法。 学习TPYBoard V202连接网络的使用。2.准备工作 所需元器件 TPYBoard V202一块 数据线一条 电脑 1台(本次实验以win7为例)所需软件 ...

bodasisiter ⋅ 06/01 ⋅ 0

[Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台

一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品。想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控...

bodasisiter ⋅ 05/30 ⋅ 0

Micropython TPYBoard拼插编程之按键控制LED灯

一、什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4...

bodasisiter ⋅ 04/18 ⋅ 0

[Micropython]TPYBoard v202 邪恶改装:TPYBoard制作廉价WIFI干扰器

想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网、复制、欺骗等等。刚好手上有块Tpyboard V202(30元),也是esp8266芯片的,也是想换个固件是不是...

bodasisiter ⋅ 05/28 ⋅ 0

人生苦短,用 RT-Thread MicroPython 享受编程的乐趣

在 i.MX RT1050 EVK 开发板上实现这样的一个读取板载的 6 轴传感器信息和系统 CPU 利用率等信息,实时显示到网页中效果,你猜需要多少代码? 事实上 RT-Thread 的同事利用 RT-Thread MicroP...

RTThread物联网操作系统 ⋅ 05/02 ⋅ 0

[Micropython]TPYBoard v10x拼插编程实验 点亮心形点阵

一、什么是TPYBoard开发板 TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该开发板内置4...

bodasisiter ⋅ 04/17 ⋅ 0

[Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测

一、实验器件 1、TPYBoard v102 1块 2、TPYBoard v202 1块 3、Nokia 5110LCD显示屏 1块 4、DHT11温湿度传感器 1个 5、micro USB 数据线 2根 6、面包板 1块 7、杜邦线 若干 二、实验步骤 1、T...

bodasisiter ⋅ 05/31 ⋅ 0

RT-Thread 软件包介绍

1、软件包的目的 软件包在高级语言中非常常见,很多高级语言都有对应的软件包平台,比如 Python 的 PyPi,Ruby 的 Gems 等等。软件包生态对于一门语言的选择至关重要,因为这些软件包具有很强...

RTThread物联网操作系统 ⋅ 05/17 ⋅ 0

第一款Micropython图形化编辑器—Python Editor

当你看到这篇文章的时候,显然你已经阅读了很多类似的文章,那么本篇文章会深入讲解一些新手的需求,提供详细的建议,当然我不会告诉你具体怎么做,一切答案都是肤浅的。 就拿我自己来说,初...

bodasisiter ⋅ 04/23 ⋅ 0

Micropython之萝卜狗远程门禁控制系统

  * 本文作者:_橙子 ゝ,本文属FreeBuf原创奖励计划,未经许可禁止转载   当代社会,我们进公司需要门禁卡,出入小区需要门禁卡,门禁系统又称出入管理控制系统(ACCESS CONTROL SYSTEM)...

FreeBuf ⋅ 05/24 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

用SQL命令查看Mysql数据库大小

要想知道每个数据库的大小的话,步骤如下: 1、进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; 2、查询所有数据的大小: select concat(round(sum(da...

源哥L ⋅ 42分钟前 ⋅ 0

两个小实验简单介绍@Scope("prototype")

实验一 首先有如下代码(其中@RestController的作用相当于@Controller+@Responsebody,可忽略) @RestController//@Scope("prototype")public class TestController { @RequestMap...

kalnkaya ⋅ 47分钟前 ⋅ 0

php-fpm的pool&php-fpm慢执行日志&open_basedir&php-fpm进程管理

12.21 php-fpm的pool pool是PHP-fpm的资源池,如果多个站点共用一个pool,则可能造成资源池中的资源耗尽,最终访问网站时出现502。 为了解决上述问题,我们可以配置多个pool,不同的站点使用...

影夜Linux ⋅ 56分钟前 ⋅ 0

微服务 WildFly Swarm 管理

Expose Application Metrics and Information 要公开关于我们的微服务的有用信息,我们需要做的就是将监视器模块添加到我们的pom.xml中: 这将使在管理和监视功能得到实现。从监控角度来看,...

woshixin ⋅ 57分钟前 ⋅ 0

java连接 mongo伪集群部署遇到的坑

部署mongo伪集群 #创建mongo数据存放文件地址mkdir -p /usr/local/config1/datamkdir -p /usr/local/config2/data mkdir -p /usr/local/config3/data mkdir -p /usr/local/config1/l......

努力爬坑人 ⋅ 57分钟前 ⋅ 0

React Native & Weex 区别

JS引擎 Weex使用V8, React native使用JSCore JS开发框架 ( Js Framework ) Weex基于vue.js(2W+ star)。小巧轻量的前端开发框架,组件化,数据绑定,2.0引入virtual dom。 ReactNative使用...

东东笔记 ⋅ 今天 ⋅ 1

UIkit 分页组件动态加载简单实现

1. 问题描述 使用过UIkit分页组件的都清楚,UIkit的分页不能动态刷新数据,也就是不能在点击下一页的时候,动态从后台加载数据,并且刷新页数以及该页数上的数据,下面是一个简单实现,没有做...

影狼 ⋅ 今天 ⋅ 0

Mobx入门之三:Provider && inject

上一节中<App/>组件传递状态temperatures给children -- <TemperatureInput />,如果组建是一个tree, 那么属性的传递则会非常繁琐。redux使用Provider给子组件提供store, connect将子组件和s...

pengqinmm ⋅ 今天 ⋅ 0

魔兽世界 7.0版本 S23/S24/S25全职业普通+精锐套

  死亡骑士   (联盟)   (部落)   (精锐)   恶魔猎手   (联盟)   (部落)   (精锐)   德鲁伊   (联盟)   (部落)   (精锐)   猎人   (联盟) ...

wangchen1999 ⋅ 今天 ⋅ 0

maven顶级pom和子pom的版本号批量修改

当一个版本发布,新起一个版本时,我们只需要手动修改一下项目中pom.xml的版本号就可以了。但是如果这个maven项目有很多的子模块项目,那么一个个手动的去改就显得费时费力又繁琐了。还好,m...

ArlenXu ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部