赞
踩
简单的结合一下在家里面搞个物联网挺实在的,开个灯了检测一下温湿度,ESP32-CAM也可以给家里安装个监控,家里有太阳能热水器可以改装一下自动上水什么的无非多找点传感器模块,如果觉得不方便也可以加一个语音模块什么的,总之拿来初学是没有问题的。当然这里面还有很多优化的问题,我学的很浅显能用就可以了。
这三个函数是C库里的很实在,之前从没用过C库的函数也不知道,太尴尬了
sprintf(ClientID,"%s",DEVICEID); //把某数据按照某种格式存放到数据当中
memset(ClientID,0,128);//把某个数组可选大小清0,这是最快的方式,以前都是自己for循环的 尴尬····
memcpy(&MQTT_TxDataInPtr[2],data,size);//把某数组copy到另一个数组,这个也特别好,以前也是自己写的类似的用 实在是尴尬····
这里有一个这样的思想,把自己要发的数据先打包好放到数组当中最后等着发送出去。接下来这种方式对指针操作会有一定的提高。
unsigned char MQTT_TxDataBuf[5][300]; unsigned char *MQTT_TxDataInPtr; unsigned char *MQTT_TxDataOutPtr; unsigned char *MQTT_TxDataEndPtr; memcpy(&MQTT_TxDataInPtr[2],data,size); MQTT_TxDataInPtr[0] = size/256; MQTT_TxDataInPtr[1] = size%256; MQTT_TxDataInPtr+=300; if(MQTT_TxDataInPtr==MQTT_TxDataEndPtr) MQTT_TxDataInPtr = MQTT_TxDataBuf[0]; 定义个5行每行300空间的数组,定义一个头指针一个尾指针一个中间指针。当我们 第一次打包好数据之后就会把数据Copy到二维数组的第一行当中,在刚开始头指针 和中间指针都指向数组的开头,MQTT_TxDataInPtr+=300; 之后头指针指向第二行 这个时候判断头指针和中间指针指向的位置不同即可判断打包的缓冲区数组内有了 数据,这个时候就可以把数据发送出去
安卓基于Java开发,面向对象这玩意我感觉最大的难点就是你并不知道他有什么方法,按照C语言的思想就是我需要什么功能就自己写什么功能。
这不Java就有Mqtt包,百度搜一下都有什么方法然后填入代码即可连接。
提供源码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。