micropython 蓝牙固件开发_micropython之动手搭建自己的MQTT服务器并实现通信(点亮led)...

【micropython之动手搭建自己的MQTT服务器并实现通信(点亮led)】

先讲一下mqtt吧,相信大家也都有所了解,我就简单说一下:

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器的通信协议。

看我标红的文字,就知道mqtt协议有多厉害了吧,具体的可以去问一下度娘,这里就不在过多赘述。

一.先来搭建自己的mqtt服务器

服务器的搭建主要参考了极客工坊的一位师兄所做的贡献,原帖地址 迷你强的物联网 ,写的也很详细,我这里就简单把步骤再走一遍。

1.购买自己的云主机

阿里云百度云腾讯云都可以的啦,我这里是用了一个腾讯云免费体验7天的,因为学生机老是抢不到,就先用一下,不过自己也还有阿里云的一台学生机,太多也没啥用。

如何购买呢?

点击链接 腾讯云主机 选择好配置直接购买就可以了,我这里的主机配置是

主机.png (7.31 KB, 下载次数: 32)

2017-9-8 18:24 上传

哈哈  配置是有点低,谁让是免费的呢~

系统是 centos 7.2 64位的

购买好后会给你分配一个公网IP,用超级终端 PuTTy 工具登陆,

putty.png (52.32 KB, 下载次数: 32)

2017-9-8 18:35 上传

按上图填好后 点击Open,

root.png (12.52 KB, 下载次数: 32)

2017-9-8 18:36 上传

输入用户名 root 然后输入密码 注意:这里输密码是不可见的。

如果不知道主机密码的   可以去你的主机列表重置:

mima.png (10.35 KB, 下载次数: 25)

2017-9-8 18:38 上传

登录好以后  就开始下载安装了

下载地址http://emqtt.io/downloads/stable/centos7  这是稳定版本,你也可以安装最新版本

download.png (63.9 KB, 下载次数: 27)

2017-9-8 20:33 上传

我这里保存为centos7.1了,因为我已经下载好了,这是演示了一下,这里我删除它,然后我们继续。

解压安装包  unzip centos7

unzip.png (39.54 KB, 下载次数: 34)

2017-9-8 20:36 上传

console.png (47.08 KB, 下载次数: 31)

2017-9-8 20:39 上传

解压完成后 输入上面图里的两条命令,就可以开启mqtt服务器了

看到跟下边图一样的输出就代表成功了。 是不是很简单?

ok.png (44.94 KB, 下载次数: 28)

2017-9-8 20:40 上传

然后我们让它后台运行 先CTRL+C 然后 CTRL+C 两次

然后   ./bin/emqttd start

start.png (45.8 KB, 下载次数: 34)

2017-9-8 20:42 上传

看到 successfully! 就表示 运行成功了

我们可以查看一下状态 是否在运行

输入  ./bin/emqttd status

running.png (46.13 KB, 下载次数: 25)

2017-9-8 20:44 上传

是不是,   is running!

这就完成整个的部署了,到此为止你的MQTT服务器已经完全搭建好了,接下来就让我们开始点亮LED灯吧!

二. 远程点亮LED灯

准备工作,准备一块esp8266 cropython开发板,esp32也行。  我这里用的是OpenIoE 的ESP8266。

mqtt客户端,我这里用的是手机 MQTT 客户端 ,大家可以自行下载。

话不多说,先上代码

[Python] 纯文本查看 复制代码from simple import MQTTClient

from machine import Pin

import network

import time

SSID="YOURSSID"

PASSWORD="YOURPARSSWORD"

led=Pin(2, Pin.OUT, value=1)

SERVER = "119.29.244.94" [/size][size=3]#mqtt服务器的IP[/size][size=3]

CLIENT_ID = "imliubo" #设备ID

TOPIC = b"led" #设备订阅的主题 客户端推送消息的主题

TOPIC2 =b"ledled" #手机客户端订阅的主题 设备推送消息的主题

username='123123' #随便填。。。。

password='321321'

state = 0

c=None

def sub_cb(topic, msg):

global state

print((topic, msg))

if msg == b"on":

led.value(0)

state = 1

c.publish(TOPIC2,"on-state",retain= True)

elif msg == b"off":

led.value(1)

state = 0

c.publish(TOPIC2,"off-state",retain= True)

def connectWifi(ssid,passwd):

global wlan

wlan=network.WLAN(network.STA_IF)

wlan.active(True)

wlan.disconnect()

wlan.connect(ssid,passwd)

while(wlan.ifconfig()[0]=='0.0.0.0'):

time.sleep(1)

try:

connectWifi(SSID,PASSWORD)

server=SERVER

c = MQTTClient(CLIENT_ID, server,0,username,password)

c.set_callback(sub_cb)

c.connect()

c.subscribe(TOPIC)

c.publish(TOPIC2,"shebeishangxian",retain= True)

print("Connected to %s, subscribed to %s topic" % (server, TOPIC))

while True:

c.wait_msg()

finally:

if(c is not None):

c.disconnect()

wlan.disconnect()

wlan.active(False)

记得先上传umqtt库,否则会报错的。

simple.png (7.7 KB, 下载次数: 31)

2017-9-8 21:02 上传

把代码编辑好后上传到板子上就可以开始操作了。

三. 开始操作!

打开手机客户端

连接服务器 按下图指示填好信息

IMG_5032.PNG (128.76 KB, 下载次数: 29)

2017-9-8 21:13 上传

IP填写你的IP地址  端口一定要填1883。

接下来就是实际操控了!

tuisong.png (135.05 KB, 下载次数: 29)

2017-9-8 21:14 上传

哈哈,有点乱,不过很重要,仔细看,可能不同的客户端界面不太一样,不过都大同小异。

输入推送消息,点击publish就会看到板子上的LED灯有反应,没法自己上传视频.......

放两张图片凑合一下?

TIM图片20170908210612.jpg (75.18 KB, 下载次数: 32)

2017-9-8 21:17 上传

有点不大清晰。。。。。。不过应该能看清楚吧,推送off, LED就会灭,返回“off-status”的状态。

TIM图片20170908210619.jpg (76.38 KB, 下载次数: 27)

2017-9-8 21:17 上传

推送on, LED就会亮,返回“on-status”的状态。

四.总结

到这里,就结束了,你没有有收获什么呢?是不是觉得搭建自己的IoT服务器也很简单呢?嘿嘿,是的,就是这么简单。多看不如多动手,抓紧动起手来吧。

有问题可以留言,我会及时解答的。

欢迎访问我的个人主页 www.imliubo.me(虽然没什么东西,不过万一会更新什么有趣的东西呢,啊哈哈哈)

祝大家生活愉快!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值