在Mind+下使用sIoT及安卓app实现mqtt实验

本文介绍如何利用sIoT平台实现局域网内设备的MQTT消息通讯,并通过AppInventor实现手机APP远程控制设备显示内容及灯光。

一、实验目的及要求

【实验一】实现sIoT配置并实现sIoT上mqtt消息的通讯。
【实验二】通过AppInventor结合sIoT实现手机app控制掌控板的灯和显示内容。

二、实验原理与内容

sIoT可以在局域网上实现mqtt消息的通讯。借助sIoT可以通过手机app实现局域网内的设备操控。

三、实验软硬件环境

硬件:掌控板
软件:Mind+

四、实现sIoT上mqtt消息的通讯(实验一)

4.1 SIoT平台的启动与使用

(1)下载和解压包

点击 https://mindplus.dfrobot.com.cn/siothttps://siot.readthedocs.io/zh_CN/latest/ 下载SIoT包,然后解压包。
解压后的文件结构如下:
在这里插入图片描述

(2)config.json配置文件的说明

在这里插入图片描述
图片的User是指登录的用户名或账号;Password是指登录的密码;WebServerAdrr是服务器地址,8888是自定义的端口号,尽量定义大一点的端口号,防止与系统其它默认的端口号冲突了(以上提及的3个属性是可以自定义的,其它的属性可以保持默认)

(3)启动SIoT

  • 双击文件中的 SIoT_windows_1_2.exe 的应用程序,然后出现以下信息表示SIoT启动成功了
    在这里插入图片描述
  • 启动成功后就可以到浏览器输入 http://localhost:8888 (8888是自己在config.json文件中定义的端口号)去访问SIoT控制台页面了。
    访问网址成功后先会来到登录页面如下:
    在这里插入图片描述
  • 然后输入用户名和密码就可以登录了 (用户名和密码请参考config.json文件)
    登录成功后会跳转SIoT控制台首页如下:
    在这里插入图片描述

(4)SIoT平台的使用

  • 首先我们点击发送消息,然后创建一个主题(在Mind+配置初始化参数时需要用到),点击发送(主题名称要按照规则来命名,即项目ID/设备名)
    在这里插入图片描述
  • 然后我们就可以点击项目列表设备列表查看每个设备的详细通信信息

项目列表
在这里插入图片描述
设备列表
在这里插入图片描述

4.2 Mind+上的配置与操作步骤

(1)连接设备与模式切换

在这里插入图片描述

(2)选择主控板

在这里插入图片描述

(3)添加网络服务

在这里插入图片描述

(4)开始图形化编程

在这里插入图片描述

(5)MQTT参数初始化

在这里插入图片描述
参数说明通信双方(多方)服务器地址要一样;账号密码也要一样;Topic_0是甲方的主题,Topic_1是乙方的主题(所有的Topic均需要先在SIoT控制台里面去创建才能使用)

(6)完成编程

在这里插入图片描述
注意MQTT发送消息是使用自己的Topic来发送;接收信息则使用对方的Topic来接收,这样才能完成双方相互的通信

4.3 代码展示

(1)核心代码

初始化所用到的Topics数组常量:

// 静态常量
const String topics[5] = {
   
   "2018764240/汪晓婵","2018764238/马振乐","","",""};

连接手机Wi-Fi热点:

myIot.wifiConnect("MEIZU 16th", "66666666");

MQTT初始化参数:

myIot.init("192.168.43.84","602","","iot", topics, 1883);

MQTT发起连接:

myIot.connect();

按A键发送消息

void loop() {
   
   
	if ((buttonA.isPressed())) {
   
   
		myIot.publish(topic_0, "NBA 牛逼!");
		display.setCursorLine(4);
		display.printLine("发送信息成功");
		rgb.write(0, 0x0000FF);
	}

我成功接收到对方信息后的回调响应事件:

// 事件回调函数
void obloqMqttEventT1(String& message) {
   
   
	display.setCursorLine(1);
	display.printLine(message);
	rgb.write(1, 0xFF9900);
}

(2)完整代码

/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_Iot.h>
// 函数声明
void obloqMqttEventT1(String& message);
// 静态常量
const String topics[5] = {
   
   "2018764240/汪晓婵","2018764238/马振乐","","",""};
const MsgHandleCb msgHandles[5] = {
   
   NULL,obloqMqttEventT1,NULL,NULL,NULL};
// 创建对象
DFRobot_Iot myIot;


// 主程序开始
void setup() {
   
   
	mPython.begin();
	myIot.setMqttCallback(msgHandles);
	display.setCursorLine(1);
	display.printLine("程序开始");
	myIot.wifiConnect("MEIZU 16th", "66666666");
	while (!myIot.wifiStatus()) {
   
   yield();}
	display.setCursorLine(2);
	display.printLine("Wi-Fi连接成功");
	myIot.init("192.168.43.84","602","","iot", topics, 1883);
	myIot.connect();
	while (!myIot.connected()) {
   
   yield();}
	display.setCursorLine(3);
	display.printLine("MQTT连接成功");
}
void loop() {
   
   
	if ((buttonA.isPressed())) {
   
   
		myIot.publish(topic_0, "NBA 牛逼!");
		display.setCursorLine(4);
		display.printLine("发送信息成功");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值