『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 6302|回复: 4

跌跌撞撞搞完了每个功能都实现了点单片机mqtt连接hass

[复制链接]

43

主题

412

帖子

3806

积分

元老级技术达人

积分
3806
金钱
3389
HASS币
136
发表于 2020-7-1 22:48:10 | 显示全部楼层 |阅读模式
跌跌撞撞搞完了。
实现了

天猫精灵--hass(小米。博联)---MQTT--  单片机(STC12C5A60S2)  

ui.jpg

评分

参与人数 2金钱 +11 收起 理由
+ 10 虽然看不懂,但感觉很厉害的样子。.
yhwl8888 + 1 纳尼,还有这种操作?

查看全部评分

回复

使用道具 举报

6

主题

484

帖子

4040

积分

论坛元老

Rank: 8Rank: 8

积分
4040
金钱
3556
HASS币
0
发表于 2020-7-2 19:47:52 | 显示全部楼层
能分享一下具体的教程吗?STC单片机接入?感觉很厉害的样子!
回复

使用道具 举报

43

主题

412

帖子

3806

积分

元老级技术达人

积分
3806
金钱
3389
HASS币
136
 楼主| 发表于 2020-7-3 00:34:23 | 显示全部楼层
robotxc 发表于 2020-7-2 19:47
能分享一下具体的教程吗?STC单片机接入?感觉很厉害的样子!

惭愧,不厉害。stc单片机,主要是把MQTT协议写好。通过串口和esp8266交互。登录群晖MQTT服务器。报文都是人肉一个字节一个字节扒的。过程还是比较有意思的。
回复

使用道具 举报

43

主题

412

帖子

3806

积分

元老级技术达人

积分
3806
金钱
3389
HASS币
136
 楼主| 发表于 2020-7-3 00:38:19 | 显示全部楼层
robotxc 发表于 2020-7-2 19:47
能分享一下具体的教程吗?STC单片机接入?感觉很厉害的样子!

51单片机 ,登录MQTT 订阅主题 执行流程
switch(dat)
   {
                              case 0:
                          { sendString("+++");  //因为没有回码,自增一个1.
                             flag_netsend=1;
                             flag_intc=0;
                                 //flag_netback=1; //直接置回码标志
                             ATstep=1;
                                 k=0;
                           break;
                           }                                  //退出透传
                           case 1:
                          { sendString("AT+CIPCLOSE\r\n");
                          k=2;
                           break;}                  //测试esp8266在不在,     返回      OK
                                 
                   case 2:
                          { sendString("AT\r\n");
                           k=4;
                           break;}                  //FUWE
                   case 3:
                       
                           { sendString("AT+CWJAP=\"ej8508\",\"ejea8888\"\r\n");
                           k=10;  
                           break;}         //加入无线网络(路由器ID及其密码)         返回         OK
                   case 4:
                          { sendString("AT+CIPMUX=0\r\n");
                           k=4;
                           break;}                  //开启多连接模式 1:多连接 0:单连接                                         返回         OK
                   case 5:
                          { sendString("AT+CIPMODE=1\r\n");
                          k=4;
                           break;}                   //透传                                                                                                 返回         OK
                   case 6:
                          { sendString("AT+CIPSTART=\"TCP\",\"MQTT服务器ip\",端口\r\n");
                          k=4;
                           break;
                           }                  //开机自动连接并进入透传(服务器///ICONNECT   OK  //ALREADY CONNECTED    ERROR       
                  
                   case 7:
                          { sendString("AT+CIPSEND\r\n");
                             k=2;
                            break;
                                }                      //进入透传                //OK    >
                           case 8:
                       {  
                             flag_intc=1;
                                 k=2;                                                                                   
                                 ss=ConnectMqtt("MQTT用户名","MQTT账号","MQTT密码");
                                   for(i=0;i<ss;i++)                
                                   UART_2SendOneByte(MqttSendData) ;               
                                 break;
                                 }
                        case 9:
                                  {
                                  k=2;
                                  ss=MqttSubscribeTopic("hachina/settings/+/switch",0,1);        //所有数值类主题,下发数据
                                   for(i=0;i<ss;i++)       
                                     UART_2SendOneByte(MqttSendData) ;       
                                   break;
                                   }
                        case 10:
                        {
                        k=2;
                                ss=MqttSubscribeTopic("hachina/hardware/+/switch",0,1);         //所有开关量主题,下发开关
                                   for(i=0;i<ss;i++)       
                                    UART_2SendOneByte(MqttSendData) ;
                                   break;
                        }

评分

参与人数 1金钱 +20 HASS币 +20 收起 理由
+ 20 + 20 厉害了word楼主!

查看全部评分

回复

使用道具 举报

1

主题

3

帖子

28

积分

新手上路

Rank: 1

积分
28
金钱
25
HASS币
0
发表于 2020-12-23 12:39:35 | 显示全部楼层
谢谢楼主分享,想了解一下 ConnectMqtt 和 MqttSubscribeTopic 函数时如何实现的?是否有库可以分享一下。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-26 16:25 , Processed in 0.055927 second(s), 31 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表