基于STM32的家庭气象站

项目地址

Maskbugzero/ESP8266-Weather-2021

一个关于STM32+ESP8266+DHT11的家庭气象站。

硬件资源

  1. 战舰V3\精英STM32F103开发板
  2. ALIENTEK 2.8/3.5/4.3/7寸TFTLCD模块(通过FSMC驱动.FSMC_NE4接LCD片选/A10接RS)
  3. 按键KEY0(PE4)/KEY1(PE3)/KEY_UP(PA0.也称之为WK_UP)
  4. ESP8266-12S WIFI模块1个
  5. DHT11模块1个

实现功能

  1. 微信小程序配网
  2. 室内温湿度测量及显示
  3. 室外天气数据获取及显示
  4. 时间显示及网络校准

连接方式

  • 模块与带有无线网卡的电脑或其他wifi设备连接:采用wifi连接
  • 模块与开发板连接:TTL串口方式

ATK-ESP8266 WIFI模块与精英板连接方式

TXD<------------>PB11

RXD<------------>PB10

GND<------------>GND

VCC<------------>3.3V\5V

DHT11模块与精英板连接方式

Data<------------>PE11

主要代码

外设初始化

初始化外设时,若DHT11工作不正常则显示屏无法正常显示。

 	LED_Init();		  			//初始化与LED连接的硬件接口
	KEY_Init();					//初始化按键
	LCD_Init();			   		//初始化LCD   
	RTC_Init();
 	while(DHT11_Init())	//DHT11初始化	
	{
   
	  printf("DHT11 出错!\r\n");
 		delay_ms(200);
	}
	W25QXX_Init();				//初始化W25Q128
	tp_dev.init();				//初始化触摸屏
	usart3_init(115200);		//初始化串口3 
 	my_mem_init(SRAMIN);		//初始化内部内存池
	exfuns_init();				//为fatfs相关变量申请内存  
 	f_mount(fs[0],"0:",1); 		//挂载SD卡 
 	f_mount(fs[1],"1:",1); 		//挂载FLASH.

微信小程序配网

微信小程序配网

源码:

//一键配网设置
u8 atk_8266_wifi_config(void)
{
   
	int i;

	while(atk_8266_send_cmd("AT","OK",20))//检查WIFI模块是否在线
	{
   
		atk_8266_quit_trans();//退出透传
		atk_8266_send_cmd("AT+CIPMODE=0","OK",200);  //关闭透传模式	
		printf("未检测到模块!!!");
		delay_ms(800);
		printf("尝试连接模块..."); 
	} 
	u3_printf("AT+RESTORE");		//恢复出厂设置
	delay_ms(1000);      //延时3S等待恢复成功
	delay_ms(1000);
	delay_ms(1000);
	printf("恢复出厂设置完成"); 
	atk_8266_send_cmd("AT+RST","OK",20);		//软重启
	delay_ms(1000);         //延时3S等待重启成功
	delay_ms(1000);
	delay_ms(1000);
	delay_ms(1000);
	printf("软重启完成");
	while(atk_8266_send_cmd("ATE0","OK",20));//关闭回显
	atk_8266_send_cmd("AT+CWMODE=1","OK",50);		//设置WIFI STA模式
	atk_8266_send_cmd("AT+CWAUTOCONN=1","OK",20);   //使能上电自动连接AP
	delay_ms(300);
	atk_8266_send_cmd("AT+CWSTARTSMART=3","OK",
  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值