ATK-ESP8266 连接Blinker显示温度

总结一些这两天的学习内容。我最初的想法是将室内的温度通过ESP8266,连接网络发送到手机APP上,后来发现一直没有做物联网的APP有这个功能,之前学习贝壳物联的时候,发现它只能发送命令性质的代码给ESP8266,而ESP8266发送数据给他,他则没有相对应的组件去显示。直到最近发现点灯科技的Blinker有相对较为完备的组件,可以实现我最初的想法。于是就确定任务是通过ESP8266连接上blinker,再发送检测到的温度数据到blinker。

刚开始不会,手上只有一个ATK-ESP8266,于是上网找资料,怎样通过ESP8266连接上blinker。

功夫不负有心人,找到一篇博文,里面博主的处境和我一样,也只有一个ATK-ESP8266,但他成功的连上了blinker,而且有详细的步骤,下面是他的这篇博文的地址:
https://blog.csdn.net/wu568760312/article/details/104507011?utm_source=app
借助这篇博文,我成功接入blinker,在这里感谢这位博主。

在按照步骤下载Arduino IDE,在IDE内下载esp8266 package 报错的情况,下面的网址有对应的解决方法
https://www.arduino.cn/thread-76029-1-1.html
连接上后,可以通过手机APP发送指令和控制esp8266上的led灯。

之后我发现blinker给的代码里有控制数据组件的代码,所谓数据组件,就是显示esp8266发送的十进制数值的组件。


BlinkerNumber Number1("num-04u");        //新建一个数据组件,数据键名为num-04u

Number1.print(counter);                  //发送数据到这个组件

counter就是要显示的数值。那我现在只要将这个数值变成我实时的温度值就行。

我首先是通过STM32单片机,结合DS18B20测量出了当前温度,再将这个温度值通过32单片机的串口3发送给ESP8266的串口,ESP8266接收到数据后,将接收的值赋给counter,在通过函数
Number1.print(counter);
发送给blinker手机APP,显示出来。

以下是代码部分:
32单片机测量温度后存放在一个数组内,将这个数组发送给ESP8266.

while(1)
{
  if(t%10==0)                    //每100ms读取一次
  {                                                                
      temperature=DS18B20_Get_Temp(); 
      if(temperature<0)
      {
     	 LCD_ShowChar(30+40,150,'-',16,0);                 //显示负号
     	 temperature=-temperature;                        //转为正数
      }else LCD_ShowChar(30+40,150,' ',16,0);   //去掉负号 
      
      LCD_ShowNum(30+40+8,150,temperature/10,2,16);      //显示正数部分   
      LCD_ShowNum(30+40+32,150,temperature%10,1,16);   //显示小数部分
      shuzu[0]=temperature/10/10+'0';  //存放温度十位
      shuzu[1]=temperature/10%10+'0';	//存放温度个位
      Usart_SendString(USART3,shuzu);   //发送温度数据给ESP8266
  }
}      
             

ESP8266也有相应的接收处理函数(代码很粗糙)

```python
void loop()
 {
    	Blinker.run();      //运行blinker
	if(Serial.available()>0)
	{
		delay(100);
		comdata=Serial.readString();	    //ESP8266读取串口数据	   	    
		Serial.println(comdata);	   //串口打印接收到的数据
	}	    		    
	if( comdata == "28")     
	{       
		counter=28;     
	}     
	if( comdata == "29")     
	{       
		counter=29;     
	}
	 if( comdata == "30")     
	{       
		counter=30;     
	}     
	if( comdata == "31")     
	{       
		counter=31;     
	}      
	if( comdata == "32")     
	{       
		counter=32;     
	}     
	if( comdata == "33")     
	{     
		counter=33;     
	}     
	if( comdata == "34")     
	{       
		counter=34;     
	}     
	if( comdata == "35")     
	{       
		counter=35;     
	}     
	Number1.print(counter);	  //发送数据到Blinker			
	}
	```

成功运行后的结果就是
在这里插入图片描述

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值