美文网首页
micropython之动手搭建自己的MQTT服务器并实现通信

micropython之动手搭建自己的MQTT服务器并实现通信

作者: 鼾声鼾语 | 来源:发表于2020-03-20 18:49 被阅读0次

    先讲一下mqtt吧,相信大家也都有所了解,我就简单说一下:
    MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和致动器的通信协议。
    看我标红的文字,就知道mqtt协议有多厉害了吧,具体的可以去问一下度娘,这里就不在过多赘述。

    一.先来搭建自己的mqtt服务器
    服务器的搭建主要参考了极客工坊的一位师兄所做的贡献,原帖地址 迷你强的物联网 ,写的也很详细,我这里就简单把步骤再走一遍。
    1.购买自己的云主机
    阿里云百度云腾讯云都可以的啦,我这里是用了一个腾讯云免费体验7天的,因为学生机老是抢不到,就先用一下,不过自己也还有阿里云的一台学生机,太多也没啥用。
    如何购买呢?
    点击链接 腾讯云主机 选择好配置直接购买就可以了,我这里的主机配置是

    哈哈 配置是有点低,谁让是免费的呢~
    系统是 centos 7.2 64位的
    购买好后会给你分配一个公网IP,用超级终端 PuTTy 工具登陆,

    按上图填好后 点击Open,

    输入用户名 root 然后输入密码 注意:这里输密码是不可见的。
    如果不知道主机密码的 可以去你的主机列表重置:
    登录好以后 就开始下载安装了
    下载地址 http://emqtt.io/downloads/stable/centos7 这是稳定版本,你也可以安装最新版本
    命令 wget http://emqtt.io/downloads/stable/centos7 就开始下载了

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

    解压完成后 输入上面图里的两条命令,就可以开启mqtt服务器了
    看到跟下边图一样的输出就代表成功了。 是不是很简单?

    然后我们让它后台运行 先CTRL+C 然后 CTRL+C 两次
    然后 ./bin/emqttd start

    看到 successfully! 就表示 运行成功了
    我们可以查看一下状态 是否在运行
    输入 ./bin/emqttd status

    是不是, is running!
    这就完成整个的部署了,到此为止你的MQTT服务器已经完全搭建好了,接下来就让我们开始点亮LED灯吧!
    二. 远程点亮LED灯
    准备工作,准备一块esp8266 cropython开发板,esp32也行。 我这里用的是OpenIoE 的ESP8266。
    mqtt客户端,我这里用的是手机 MQTT 客户端 ,大家可以自行下载。
    话不多说,先上代码fromsimple importMQTTClient
    frommachine importPin
    importnetwork
    importtime

    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
    defsub_cb(topic, msg):
    globalstate
    print((topic, msg))
    ifmsg ==b"on":
    led.value(0)
    state=1
    c.publish(TOPIC2,"on-state",retain=True)
    elifmsg ==b"off":
    led.value(1)
    state=0
    c.publish(TOPIC2,"off-state",retain=True)
    defconnectWifi(ssid,passwd):
    globalwlan
    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))

    whileTrue:
    c.wait_msg()
    finally:
    if(cisnot None):
    c.disconnect()
    wlan.disconnect()
    wlan.active(False)

    原文地址:https://blog.csdn.net/u010871058/article/details/78264252/

    相关文章

      网友评论

          本文标题:micropython之动手搭建自己的MQTT服务器并实现通信

          本文链接:https://www.haomeiwen.com/subject/drksyhtx.html