普中51开发板+esp8266+DS18B20项目复刻

对普中科技资料内的esp8266的温感项目进行复刻而写的学习记录

一介绍

ESP8266是一种常用的Wi-Fi模块,而DS18B20则是一种数字式温度传感器。这两者结合起来可以实现通过ESP8266模块获取DS18B20传感器采集到的温度数据,并通过Wi-Fi将数据传输到云端或其他设备进行进一步处理。

二硬件连接

1首先测试esp8266是否正常 

   

esp8266-->串口/单片机USB转TTL模块

VCC(3.3v)-->3.3V

CH_PD(EN)-->3.3V

TXD-->RXD

RXD-->TXD

GND-->GND

打开串口调试窗口,输入AT回复OK说明模块可以正常使用

 

2输入 AT+UART_DEF=9600,8,1,0,0//修改波特率

修改波特率的原因是一般esp8266模块的出厂设置的波特率为115200,而51单片机的波特率为9600,若不修改会接收不到单片机传送来的数据

三程序

特别注意要先烧录程序再将esp8266与单片机引脚相连,若先连接esp8266会导致程序烧录不进去

之前有写过一篇esp8266手机电脑通信的文章,有感兴趣的可以去看看

esp8266配置代码

//ESP8266 WIFI发送AT指令
//pbuf: AT指令,字符串格式,如:"AT"
void ESP8266_SendCmd(u8 *pbuf)
{
    while(*pbuf!='\0') //遇到空格跳出循环
    {
        UART_SendData(*pbuf);
        delay_10us(5);
        pbuf++;
    }
    delay_10us(5);
    UART_SendData('\r'); //回车
    delay_10us(5);
    UART_SendData('\n'); //换行
    delay_ms(10);
}
//ESP8266 WIFI发送数据到APP
void ESP8266_SendData(u8 *pbuf)
{
    ESP8266_SendCmd("AT+CIPSEND=0,7"); // 发送AT指令,准备发送数据,连接ID为0,数据长度为7字节
    while(*pbuf!='\0') // 遇到空格跳出循环
    {
        UART_SendData(*pbuf); // 通过UART发送当前字符
        delay_10us(5); // 延时10微秒,确保数据稳定传输
        pbuf++; // 移动到下一个字符
    }
    UART_SendData('\n'); // 发送换行符,表示数据结束
    //delay_ms(10); // 
}
//ESP8266-WIFI模块工作命令
void ESP8266_ModeInit(void)
{
	ESP8266_SendCmd("AT+CWMODE=2");//设置模式
	delay_ms(2000);
	ESP8266_SendCmd("AT+CWSAP=\"ESP8266\",\"12345678\",11"); //设置WIFI名和密码
	delay_ms(2000);
	ESP8266_SendCmd("AT+CIPAP=\"192.168.4.1\"");//设置静态IP地址为192.168.4.1,此地址为esp8266内设,所给手册上会有
//	ESP8266_SendCmd("AT+RST");//进行复位
//	delay_ms(2000);
	ESP8266_SendCmd("AT+CIPMUX=1");	//设置多连接模式,允许多个客户端连接
	delay_ms(2000);
	ESP8266_SendCmd("AT+CIPSERVER=1,8080");	//开启TCP服务器,端口号为8080,允许客户端连接
    delay_ms(2000);
}

温感部分可以去b站江协科技或普中科技进行学习,本文章仅为复刻项目不多做讲述

四app接收

使用普中资料中所给的tcp连接软件测试

注意!!!资料所给的软件必须开发板晶振为11.15926MHZ晶振的开发板,12MHZ的是不行的,原理为什么还没弄清楚,同时此时模块波特率为9600,且提前确认手机是否与模块连接,我当初在这卡了很久。

再次注意!!!记得把USB转TTL模块的黄色盖帽给盖回去

esp8266-->单片机

VCC(3.3v)-->3.3V

CH_PD(EN)-->3.3V//出厂时默认已上拉,可不连

RXD-->P31(TXD)

TXD-->P30(RXD)

GND-->GND

若有人连接后不成功,可能是因为你用的单片机接收数据时内部自转了,可以P30与P31交换连接试试

开启后网络调试处会开始接收温度数据

开机会出现停顿是因为在进行配置,一开始几条温度可能不准确,一两秒后会精确

手机端显示如下

还可自行开发如点灯等其他功能 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值