IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 51单片机上传数据到手机APP -> 正文阅读

[嵌入式]51单片机上传数据到手机APP

前言:
最近在指导朋友毕设时发现的一个比较简单实用的功能

实现功能:
将温度数据上传到手机APP

所需材料:
1、51单片机
2、WIFI模块:ESP8266-01S
3、温度传感器:DS18B20
4、手机APP:TCP连接

接线说明:
ESP826601S: TX–P30 RX–P31 VCC–3.3V GND–GND
DS18B20: IO–P37

注意事项:
1、由于51单片机的波特率是9600,而WiFi模块的默认波特率是115200,故需要修改WIFI模块的波特率。
使用USB转TTL的模块发送AT指令修改:AT+UART=9600,8,1,0,0
2、ESP8266 作为server 有超时机制,如果连接建立后,一段时间内无数据来往,server 会将client 踢掉。请在 PC 工具连上 ESP8266 后建立一个2s 的循环数据发送,用于保持连接。
3、下载程序时先断开WIFI模块的接线,因为51单片机是通过串口下载程序的,而WIFI模块接在串口上会导致下载失败。
4、下载好程序后,先等个几秒再连接热点,因为代码中发AT指令需要花五六秒。

演示图:
在这里插入图片描述
在这里插入图片描述

TCP连接APP操作:
APP的图标
在这里插入图片描述
点击连接
在这里插入图片描述
第一次使用点其他主机
在这里插入图片描述
输入WIFI模块的IP地址和端口号
在这里插入图片描述
IP地址可以在手机连上热点后查看得知,端口号在代码中设置好的。
在这里插入图片描述
代码实现:
main.c文件

/**************************************************************************************
接线:
ESP826601S: TX--P30 RX--P31  VCC--3.3V  GND--GND
DS18B20: IO--P37  

使用APP:TCP连接
WIFI模块的IP地址:可以在手机连接热点后查看热点属性得知
 
由于51单片机的波特率是9600,而WiFi模块的默认波特率是115200,故需要修改WIFI模块的波特率
使用USB转TTL的模块发送AT指令修改:AT+UART=9600,8,1,0,0

注意,ESP8266 作为server 有超时机制,如果连接建立后,一段时间内无
数据来往,server 会将client 踢掉。请在 PC 工具连上 ESP8266 后建立一个
2s 的循环数据发送,用于保持连接。																			  
***************************************************************************************/
#include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器
#include "usart.h"
#include "delay.h"
#include "stdio.h"
#include "18b20.h"
sbit led=P2^0;	   //将单片机的P0.0端口定义为led
unsigned char xdata dataBuf[16]= {0};//定义显示区域临时存储数组

void main()
{
	int temp1;
	float temperature;
	Init_DS18B20();
	
	UART_init();//串口初始化
	DelayMs(1000);
	
	UART_SendStr("AT\r\n",4); //测试 AT 启动
	DelayMs(1000);
	
	DelayMs(1000);
	UART_SendStr("AT+CWMODE=2\r\n",13);//选择 WIFI 应用模式:AP 模式
	
	DelayMs(1000);
	UART_SendStr("AT+CWSAP=\"X_CHUN\",\"12345678\",6,4\r\n",34);	// 设置 AP 模式下的参数:接入点名称,密码,通道号

	DelayMs(1000);
	
	UART_SendStr("AT+CIPMUX=1\r\n",13);		 //启动多连接
	
	DelayMs(1000);
	UART_SendStr("AT+CIPSERVER=1,8080\r\n",21);	  	//配置为服务器,1:开启 server 模式,8080端口号
	
	while(1)
	{
		temp1=ReadTemperature();		//读取温度
		temperature=(float)temp1*0.0625; //温度值转换
		
		UART_SendStr("AT+CIPSEND=0,16\r\n",17);		//发送数据
		sprintf(dataBuf,"Temp: %4.1fC",temperature);  //将温度数据放入dataBuf数组中
		UART_SendStr(dataBuf,16);		//发送16位数据
		
		DelayMs(1000);
	}		
}

至于DS18B20、串口发送字符串、延时函数的程序,我觉得网上应该都会有。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-17 22:22:07  更:2022-03-17 22:22:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:45:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码