DT-06 For MQTT

感谢关注深圳四博智联科技有限公司产品!我公司提供完整的WiFi信号强度采集方案,包括WiFi信号采集、设备远程管理平台、智能终端应用等。

Doit_MQTT透传固件基于乐鑫ESP_IOT_SDK使用C编写,代码执行效率高。经过多个版本迭代,可靠性较高,功能丰富。固件开放,可自由使用。

  • 兼容nodemcu开发板、esp8266 arduino开发板等
  • 通过内置web页面设置串口参数以及网络参数
  • 无线路由器自动重连
  • 热点模式(AP)可设置:ssid、密码、加密方式、网关地址
  • 远程服务器地址支持dns域名自动解析
  • MQTT登录,主题订阅,发布。

一、配置方法

1.1 首次配置的方法

在配置模式下,设备工作在热点模式,指示灯快速闪烁。发出WiFi信号,信号名称为:“Doit_MQTT_XXXXXX”,其中“xxxxxx”是该设备的产品ID。产品ID是设备的唯一标识。

使用笔记本电脑或者智能手机连接上述SSID,密码12345678。 

连接成功后,使用浏览器进行配置。浏览器推荐使用Chrome、Firefox等。

在浏览器地址栏中输入:“192.168.4.1”,进入配置页面。

1.1.1 串口设置

波特率为与单片机的波特率,默认9600,可以自定义

数据位可以设置8bit与7bit

停止位可设置为1bit,1.5bit,2bit

校验位可设置为None,Odd,EVEN

1.1.2 STA设置

用于设置需要连接的路由的信息

SSID :目标热点SSID

密码:目标热点密码,路由无密码清空输入框即可。

DHCP开关,关闭dhcp功能后,手动设置模块IP地址,网关,子网掩码。

1.1.3  AP设置

用于设置模块开放的热点

Ssid 为模块的热点名,默认为Doit_MQTT_XXXXXX,不建议修改。

Password为模块热点密码,默认为开放热点,修改时需要注意的是密码最短8位,最长64位。

打开“更多设置”可以设置热点的IP地址,网关地址,子网掩码,信道,最大连接数

Ip地址为模块地址,默认为192.167.4.1,修改后重新配置浏览器访问的地址需要访问修改后的地址。

   网关与ip地址一致

   子网掩码默认为255.255.255.0

信道默认为ch1,范围1-13

最大连接数为可接入模块的最多station数量,非tcp server的客户端数量。

1.1.4 网络设置

 

模式:模式有4种TCP Server,TCP Client,UDP,MQTT,同时只能设置为一种模式。

MQTT模式

MQTT使用的是普通tcp连接,非ssl

服务器地址(Broker Address)为MQTT服务器地址,支持域名。

服务器端口(Broker Port)为MQTT服务器端口,MQTT服务器默认端口一般为1883。

设备ID(Clinet ID)为连接MQTT服务器的设备ID,建议使用唯一ID防止冲突被踢下线。例如可以使用默认热点名中的ID。

用户名(UserName)为登录MQTT的用户名,可选,若服务器无需输入用户名,设置为空。

用户密码(UserPassword)为登录MQTT的用户密码,可选,若服务器无需输入用户名,设置为空。

订阅的主题:(Subscribes Topic)为模块订阅的主题,若本模块需要接受其他客户端发布的主题,输入对方发布的主题即可。最多订阅10个主题。

订阅的主题的Qos,值为0 1 2

Publishes Topic为模块发布的主题,如果其他客户端需要订阅本拓展板的消息,即订阅本主题。可通过AT指令修改本主题。

发布的主题的Qos,值为0 1 2

TCP Client模式

远端地址(remote ip)目标服务器地址,支持域名。

远端端口(remote port)目标服务器端口,0-65535

TCP Server模式

模块作为tcp 服务器

本机端口(remote port)模块监听的端口范围0-65535

UDP模式

默认不需要设置远端地址和端口,收到udp数据后自动记录回复对方

 

点击保存,提示“保存成功”。或提示“IP格式错误”!为网关ip格式错误,请检查参数是否设置正确。

设置成功后,设备自动重启,使新设置生效! 

1.2重新配置的方法

如果用户已经配置过无线路由器SSID和密码,需要再次配置,WIFI-TTL按一下“R”键,ESP13拓展版按一下模块“KEY ”键,模块即可重新进入配置模式。指示灯快闪。

如果曾修改过扩展板热点名,热点密码,网关地址。拓展板发出的热点为修改后的热点。如果忘记修改的配置,WIFI-TTL长按“R”键超过5s,ESP13拓展版长按“KEY”键超过5s,指示灯快闪恢复出厂设置。重复1.1步骤。

二、配合单片机使用方法

配置完成后指示灯先每隔1s闪烁一次,连接上路由后常亮。

 

拓展板或者WIFI-TTL使用串口与单片机通讯,波特率9600,8个数据位,1个停止位,无校验(即9600,8N1)。

拓展板启动时会发送数据到串口。

==============================================

|Start ESP8266

|Firmware Version:MQTT_v1.0.2

|Compile Time:Jul 10 2018,16:51:20

|SDK Version:2.2.1(cfd48f3)

|MAC address:60-01-94-96-87-0F

==============================================

 

 

 

 

 

 

 

 

连接成功后发送以下信息到串口:

WIFI CONNECTED

WIFI GOT IP

三、LED灯指示含义

按键r或者key键长按时,会快闪,超过5秒恢复出厂设置;

在ap模式下,上电快速闪烁;

在sta模式下,上电慢闪;连接成功无线路由器后,常亮。

 

转载于:https://www.cnblogs.com/doiting/p/11136901.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MQTT是一种轻量级的消息传输协议,用于物联网等场景下的设备通信。在C语言中,可以使用各种MQTT客户端库来实现MQTT客户端。下面是一个使用Eclipse Paho MQTT C客户端库实现MQTT客户端的示例代码: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #include "MQTTClient.h" #define ADDRESS "tcp://localhost:1883" #define CLIENTID "ExampleClientSub" #define TOPIC "test" #define QOS 1 #define TIMEOUT 10000L volatile MQTTClient_deliveryToken deliveredtoken; void deliveryComplete(void *context, MQTTClient_deliveryToken dt) { printf("Message with token value %d delivery confirmed\n", dt); deliveredtoken = dt; } int messageArrived(void *context, char *topicName, int topicLen, MQTTClient_message *message) { printf("Message arrived on topic %s: %.*s\n", topicName, message->payloadlen, (char*)message->payload); MQTTClient_freeMessage(&message); MQTTClient_free(topicName); return 1; } int main(int argc, char* argv[]) { MQTTClient client; MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer; MQTTClient_message pubmsg = MQTTClient_message_initializer; MQTTClient_deliveryToken token; int rc; MQTTClient_create(&client, ADDRESS, CLIENTID, MQTTCLIENT_PERSISTENCE_NONE, NULL); conn_opts.keepAliveInterval = 20; conn_opts.cleansession = 1; MQTTClient_setCallbacks(client, NULL, messageArrived, deliveryComplete, NULL); if ((rc = MQTTClient_connect(client, &conn_opts)) != MQTTCLIENT_SUCCESS) { printf("Failed to connect, return code %d\n", rc); exit(EXIT_FAILURE); } if ((rc = MQTTClient_subscribe(client, TOPIC, QOS)) != MQTTCLIENT_SUCCESS) { printf("Failed to subscribe, return code %d\n", rc); exit(EXIT_FAILURE); } pubmsg.payload = "Hello world!"; pubmsg.payloadlen = strlen(pubmsg.payload); pubmsg.qos = QOS; pubmsg.retained = 0; MQTTClient_publishMessage(client, TOPIC, &pubmsg, &token); printf("Waiting for up to %d seconds for publication of %s\n" "on topic %s for client with ClientID: %s\n", (int)(TIMEOUT/1000), pubmsg.payload, TOPIC, CLIENTID); rc = MQTTClient_waitForCompletion(client, token, TIMEOUT); printf("Message with delivery token %d delivered\n", token); MQTTClient_disconnect(client, 10000); MQTTClient_destroy(&client); return rc; } ``` 这个示例代码实现了一个MQTT客户端,通过TCP连接到本地的MQTT服务器,订阅了一个名为"test"的主题,发布了一条消息"Hello world!"。在接收到订阅主题的消息时,会调用messageArrived函数进行处理。在发布消息时,会等待一段时间来确认消息是否成功发布,并使用deliveryComplete函数进行处理。 需要注意的是,使用MQTT客户端库时需要根据具体的库提供的API进行调用,并根据实际情况进行配置和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值