MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端

目录

MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)

MQTT(二)在windows64位上安装Python环境

MQTT(三)Python客户端+net客户端+net服务端 简单通信

MQTT(四)树莓派开机自动运行Python客户端

MQTT(五)EMQ开源MQTT消息服务器


参考EMQ文档:http://docs.emqtt.cn/zh_CN/latest/install.html#windows

一、Windows 服务器安装

Windows 10平台程序包下载: http://emqtt.com/downloads/latest/windows10

程序包下载解压后,打开 Windows 命令行窗口,cd 到程序目录。

控制台模式启动:

进入解压目录执行: bin\emqttd console (我的win10执行打开2次cmd才能启动,没有验证是不是我电脑问题)

出现以下界面说明启动成功

MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端_第1张图片

二、Web 管理控制台(Dashboard)

EMQ 消息服务器启动后,会默认加载 Dashboard 插件,启动 Web 管理控制台。用户可通过 Web 控制台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。

控制台地址: http://127.0.0.1:18083,默认用户: admin,密码:public

在Websocket菜单可以可以进行测试,登录、订阅, 查看从其他客户端发来的消息

MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端_第2张图片

三、H5客户端测试

页面引用 jquery.js 和 mqttws31.js

连接服务器(30.77为mqtt服务器ip)

H5发送消息后,控制台收到消息

MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端_第3张图片

控制台发送消息,H5页面收到消息

MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端_第4张图片

四、树莓派Python客户端 和 H5客户端测试

树莓派安装 paho-mqtt ,运行python代码

pip install paho-mqtt

python代码

#coding=utf-8
#!/usr/bin/python


import RPi.GPIO as GPIO 
import sys
import paho.mqtt.client as mqtt
import time

#LED begin

GPIO_LIGHT = 27 #灯,设置GPIO18为电流输出
GPIO_ARI = 22   #空气过滤器,设置GPIO19为电流输出

GPIO.setmode(GPIO.BCM)   #设置GPIO模式,BCM模式在所有数码派通用
GPIO.setup(GPIO_LIGHT, GPIO.OUT)   #设置GPIO18为电流输出
GPIO.setup(GPIO_ARI, GPIO.OUT)   #设置GPIO18为电流输出

#GPIO输出

def on_gpio(gpioIndex,value):
    
    if value == 0:
        GPIO.output(gpioIndex, GPIO.LOW)   #GPIO18 输出3.3V
    elif value == 1:
        GPIO.output(gpioIndex, GPIO.HIGH)    #GPIO18 输出0V
   
    time.sleep(0.05)   #程序控制流程睡眠0.05秒

#LED end

#MQTT begin
#连接
def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc)+'\n')

#接收消息
def on_message(client, userdata, msg):
    valueStr = bytes.decode(msg.payload)
    print(msg.topic+" " + valueStr + '\n')
    valueArr = valueStr.split(":",1) #valueArr[0]:项目 , valueArr[1]:值
    print(valueArr[0]+'\n')
    print(valueArr[1]+'\n')
    
    item = valueArr[0]
    value = valueArr[1]

    if item == "light":
        on_gpio(GPIO_LIGHT,int(value))
    elif item == "air":
        on_gpio(GPIO_ARI,int(value))
    

client1 = mqtt.Client()
client1.username_pw_set("admin", "public")   #username: marshal | password: 123456
client1._client_id = "/01-001-0001"        #客户端id

client1.on_connect = on_connect
client1.on_message = on_message

#MQTT end


#HOST = "127.0.0.1"    #IP address of broker
HOST = "172.16.30.77"

client1.connect_async(HOST)

client1.loop_start()  #client1 runs a thread at background

time.sleep(1)

client1.subscribe("/01-001-0001")

i=0

while(True):

    i = i+1
    print(i)
    #client1.publish('/topic',i)  #发布消息
    time.sleep(1)

    '''
    inputStr = input()
    if inputStr == "exit":
        sys.exit()
    '''


client1.loop_stop()

print("end")

树莓派python客户端接收到来自H5的消息

MQTT(五)EMQ开源MQTT消息服务器 + 树莓派python客户端 + H5客户端_第5张图片


pw的其他原创文章导航

  • C#的MQTT系列

MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)

MQTT(二)在windows64位上安装Python环境

MQTT(三)Python客户端+net客户端+net服务端 简单通信

MQTT(四)树莓派开机自动运行Python客户端

MQTT(五)EMQ开源MQTT消息服务器

  • C#的阿里物联网平台

阿里物联网平台(一)Windows系统+VS2017 模拟设备端接入

阿里物联网平台(二).net 实现移动端(WEB、HTML)与设备端通讯

  • 落地项目

落地项目-智慧海绵城市

落地项目-智能焊机,钢塑管行业物联网应用


 

你可能感兴趣的:(物联网-入门)