STM32F103(正点原子精英版),ESP8266-01S接入机智云教程

本文详细介绍了如何利用STM32F103与机智云集成,创建MCU代码包,包括设置布尔型按键和温湿度传感器,移植和修改代码,以及固件更新教程。教程还包括了硬件连接和机智云APP的连接步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

本文利用STM32F103接入机智云(控制LED、获取温湿度简单例程)

ESP8266-01S波特率为9600,初始波特率一般为115200

例程链接:https://pan.baidu.com/s/1WtHkS7tvOUMsgr4DmYfG4w 
提取码:zk9i

 固件更新教程:​​​​​​ESP8266_01S机智云烧录esp8266固件步骤_fieldsag的博客-优快云博客​​​​​​

机智云创建产品生成MCU代码包

开发者中心:机智云 开发者中心

 创建一个新的项目

 点击编辑新建数据点

 

新建一个布尔型按键(可写),和两个数值型温湿度

新建完成后生成代码包

1、选择MUC开发界面,选择独立方案

2、选择硬件平台(STM32F103C8x)

3、输入自己的PS,生成代码包后

下载MCU代码包移植到库版本例程

需要自己准备一个库函数的代码,要有两个串口和一个定时,如果没有准备可以到文章后面下载移植好的示例

  生成代码包后下载

下载代码包,解压后,压缩包内包含以下文件,我们只使用Gizwits和Utils两个文件夹,并复制

 粘贴到我们准备好了库函数版本,后面我会上传自己成功的版本大家可以下载参考

打开程序,添加两个函数文件

 添加函数包含路径

修改移植后的代码错误问题

因为机智云下载的代码包使用的是HAL库版本,我们使用的是库版本,下面我将一步步演示修改步骤

 第一个错误是找不到hal_kay.h函数我们屏蔽就行

第二个问题

 修改后重新编译看到还是有很多错误,还需要屏蔽掉一写库函数

 下面都是要修改或者屏蔽的函数!!!!!

 修改!!!!

 从215行开始屏蔽到最后一个函数的开头

屏蔽尾部

修改成我们库版本串口函数

根据自己的WiFi连接串口修改,我自己用的是串口3 

**************************************************************************************************************

自此代码修改完成,编译后 0 错误,如果使用自己的程序还需要修改串口3和定时器中断函数

**************************************************************************************************************

使用自己库函数的需要修改这两个地方,记得添加头文件

 

编写初始化程序

编写main程序

//协议初始化
void Gizwits_Init(void)
{	
	TIM3_Int_Init(9,7199);//1MS系统定时
    usart3_init(9600);//WIFI初始化
	memset((uint8_t*)&currentDataPoint, 0, sizeof(dataPoint_t));//设备状态结构体初始化
	gizwitsInit();//缓冲区初始化
    printf("Gizwits_Init\r\n");
}

int main(void)
 {		
 
	int key;
	delay_init();	    	//延时函数初始化	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	uart_init(115200);	 	//串口初始化为115200
 	LED_Init();			    //LED端口初始化
	KEY_Init();			    //LED端口初始化
	Gizwits_Init();         //协议初始化
   	while(1)
	{
		key = KEY_Scan(0);
		if(key==KEY1_PRES)//KEY1按键
		{
			printf("WIFI进入AirLink连接模式\r\n");
			gizwitsSetMode(WIFI_AIRLINK_MODE);//Air-link模式接入
		}			
		if(key==WKUP_PRES)//KEY_UP按键
		{  
			printf("WIFI复位,请重新配置连接\r\n");
			gizwitsSetMode(WIFI_RESET_MODE);//WIFI复位 
		}
		
		userHandle();//数据上行
        gizwitsHandle((dataPoint_t *)&currentDataPoint);
//		LED0=!LED0;
		delay_ms(200);	   
	}	 

 
}	

 下面是温湿度数据上传函数

void userHandle(void)
{
	u8 buffer[5];  //获取值
	double hum=0;    //湿度值
	double temp=0;   //温度值
 /*
    currentDataPoint.valuetemp = ;//Add Sensor Data Collection
    currentDataPoint.valuehum = ;//Add Sensor Data Collection

    */
	if (dht11_read_data(buffer) == 0)
    {
        //获取温度和湿度
        hum = buffer[0] + buffer[1] / 10.0;
        temp = buffer[2] + buffer[3] / 10.0;
		currentDataPoint.valuetemp =temp ;//Add Sensor Data Collection
		currentDataPoint.valuehum =hum ;//Add Sensor Data Collection
	}
}

 云端数据接受处理控制LED

 自此程序部分全部完成,下载程序到开发板上

硬件连接

精英板ATK-ESP8266模块
3.3VVCC
3.3vEN
PB10RXD
PB11TXD
GNDGND

精英板DHT11温湿度模块
3.3VVCC
GNDGND

PB9

OUT

如果不是用正点原子精英版,LED、按键可自行设计

机智云APP连接

下载机智云APP链接:Gizwits

打开APP,点击一键配置

 连接WiFi

 到此界面后,我们实物按键按下进入AirLink连接模式  后点击我已完成上述操作等待连接

连接成功后我们就可以看见温湿度上传的实时数据,按键也可以控制LED的亮灭

小结

自此STM32接入机智云教程全部完成

例程链接:https://pan.baidu.com/s/1WtHkS7tvOUMsgr4DmYfG4w 
提取码:zk9i

固件更新教程:ESP8266_01S机智云烧录esp8266固件步骤_fieldsag的博客-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值