51单片机上传数据到手机APP

2023-05-16

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

实现功能:
将温度数据上传到手机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、串口发送字符串、延时函数的程序,我觉得网上应该都会有。
看完这个后还想继续学习的,可以看续集使用手机APP远程控制51单片机

最后:
需要代码的可以自行下载,下载链接
下载操作:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机上传数据到手机APP 的相关文章

  • SIPp之认证注册

    欢迎大家转载 xff0c 为保留作者成果 xff0c 转载请注明出处 xff0c http blog csdn net netluoriver xff0c 有些文件在资源中也可以下载 xff01 如果你没有积分 xff0c 可以联系我 xf
  • HTTP:DIGEST认证的请求和响应报文

    以下是HTTP DIGEST认证的请求和响应报文的例子 xff0c 供以后参考 IE first request GET boe checkedServlet HTTP 1 1 Accept image gif image jpeg ima
  • Linux配置篇 | Ubuntu配置apt镜像源

    以下以 Ubuntu18 04 LTS 为例 xff0c 也适用于 Ubuntu 其他版本 一 修改apt镜像源 xff08 1 xff09 备份apt配置文件 xff1a cp etc apt sources list etc apt s
  • STC89C52RC单片机额外篇 | 04 - 认识头文件<intrins.h>与_nop_函数

    1 lt intrins h gt 头文件 头文件 lt intrins h gt 在我们51单片机日常开发中经常使用 xff0c 特别是 nop 函数 xff0c 以下是 lt intrins h gt 的内容 xff1a span cl
  • HTTP协议详解 - 通过C++实现HTTP服务剖析HTTP协议

    前言 C C 43 43 程序员一般很少会接触到HTTP服务端的东西 xff0c 所以对HTTP的理解一般停留在理论 本文章实现通过C 43 43 实现了一个http服务 xff0c 可以通过代码对HTTP协议有更深的理解 xff0c 并且
  • GIT 中如何打标签

    前言0x1 GIT 标签常用指令0x2 轻量标签0x3 附注标签0x4 远程仓库中的标签 前言 在我们开发的过程中 xff0c 可能经过多次 commit 提交才会确定一个版本 xff0c 那么除了用 commit comments 来标识
  • 用VSCode开发C++项目

    写在前面 最近在新学C 43 43 xff0c 又不想用VisualStudio那么庞大的IDE xff0c VS体量稍微有那么点笨重 xff08 主要还是因为穷 xff0c 没钱换电脑 xff0c 目前的电脑开个VS要个两三分钟 xff0
  • petalinux2018.3 error 记录

    petalinux config get hw description 61 报错 INFO sourcing bitbake ERROR Failed to source bitbake ERROR Failed to config pr
  • petalinux 编译,源码编译

    1 测试环境 Ubuntu 16 04PetaLinux 2019 1PetaLinux 2019 1 ZCU106 BSPZCU106 2 PetaLinux介绍 PetaLinux是Xilinx基于Yocto推出的Linux开发工具 Y
  • Optitrack Motive软件安装及使用说明

    Motive 软件安装程序 http www naturalpoint com optitrack downloads motive html 安装Motive需要安装两个底层插件 xff0c Directx aug2009 redist
  • Failed to get convolution algorithm. This is probably because cuDNN failed to initialize

    Failed to get convolution algorithm This is probably because cuDNN failed to initialize from tensorflow compat v1 import
  • C语言---整型字符串转换

    C语言提供了几个标准库函数 xff0c 可以将任意类型 整型 长整型 浮点型等 的数字转换为字符串 以下是用itoa 函数将整数转 换为字符串的一个例子 xff1a include lt stdio h gt include lt stdl
  • 约瑟夫环(C语言单项循环链表)

    约瑟夫环 C 语言单项循环链表 约瑟夫环 问题描述 xff1a 约瑟夫问题的一种描述是 xff1a 编号为1 xff0c 2 xff0c xff0c n 的n 个人按顺时针方向围坐一圈 xff0c 每人持一个密码 xff08 正整数 xff
  • 交换机VLAN的定义、意义以及划分方式

    什么是VLAN 虚拟网技术 xff08 VLAN xff0c Virtual Local Area Network xff09 的诞生主要源于广播 广播在网络中起着非常重要的作用 xff0c 如发现新设备 调整网络路径 IP地址租赁等等 x
  • coredump简介与coredump原因总结

    coredump简介与coredump原因总结 什么是coredump xff1f 通常情况下coredmp包含了程序运行时的内存 xff0c 寄存器状态 xff0c 堆栈指针 xff0c 内存管理信息等 可以理解为把程序工作的当前状态存储
  • 嵌入式设备web服务器比较

    现在在嵌入式设备中所使用的web服务器主要有 xff1a boa thttpd mini httpd shttpd lighttpd goaheand appweb和apache等 Boa 1 介绍 Boa诞生于1991年 xff0c 作者
  • memfd.c:40:12: error: static declaration of ‘memfd_create’ follows non-static declaration

    qemu编译安装出错 xff1a memfd c 40 12 error static declaration of memfd create follows non static declaration 修改 xff1a a util m
  • windows10 驱动开发环境 VS2019+WDK10

    windows10 驱动开发环境 1 下载SDK https developer microsoft com zh cn windows downloads windows 10 sdk 通用驱动demo xff1a https githu
  • 在用户配置文件中添加 IDF_PATH 和 idf.py PATH

    在用户配置文件中添加 IDF PATH 和 idf py PATH CMake 英文 注解 本文档将介绍如何使用 CMake 编译系统 目前 xff0c CMake 编译系统仍处于预览发布阶段 xff0c 如您在使用中遇到任何问题 xff0
  • error C3861: “gets”: 找不到标识符

    error C3861 gets 找不到标识 把 gets 改成 gets s 用VS2015打开一个win32工程 xff0c 生成解决方案失败 报错信息 xff1a 命令行 error D8016 ZI 和 Gy 命令行选项不兼容 选中

随机推荐

  • ROS和Optitrack通信

    ROS xff1a indigo Ubuntu xff1a 14 04 目的 xff1a 一台计算机通过Optitrack获得刚体 xff08 crazyflie2 0 xff09 的姿态信息并广播到同一局域网的其他计算机上 xff08 如
  • 运算放大电路(三)-加法器

    加法器 由虚短知 xff1a V 61 V 43 61 0 a 由虚断及基尔霍夫定律知 xff0c 通过R2与R1的电流之和等于通过R3的电流 xff0c 故 V1 V R1 43 V2 V R2 61 Vout V R3 b 代入a式 x
  • 一个嵌入式硬件高手的设计心得

    一 xff1a 成本节约 现象一 xff1a 这些拉高 拉低的电阻用多大的阻值关系不大 xff0c 就选个整数5K吧 点评 xff1a 市场上不存在5K的阻值 xff0c 最接近的是 4 99K xff08 精度1 xff09 xff0c
  • 跟着我从零开始入门FPGA(一周入门系列)第五

    5 同步和异步设计 前面已有铺垫 xff0c 同步就是与时钟同步 同步就是走正步 xff0c 一二一 xff0c 该迈哪个脚就迈那个脚 xff0c 跑的快的要等着跑的慢的 异步就是搞赛跑 xff0c 各显神通 xff0c 尽最大力量去跑 x
  • 硬件原理图设计规范(二)

    1 可编程逻辑器件 编号 级别 条目内容 备注 1 推荐 FPGA的LE资源利用率要保证在50 xff5e 80 之间 xff0c EPLD的MC资源的利用率要保证在50 xff5e 90 之间 对于FPGA中的锁相环 RAM 乘法器 DS
  • 嵌入式Linux应用程序开发-TCP-IP网络通信应用程序

    作为全世界最优秀的开源操作系统 xff0c Linux内部已经集成了强大的网络协议栈 xff0c 并向应用层提供丰富的系统调用 xff0c 开发者可以基于通用的系统调用接口 xff0c 使用Linux内核提供的网络功能 如果要分析Linux
  • STM32“死机“(实用调试技巧)

    2 硬件环境导致 34 死机 34 1 供电电源电压不在合适范围 单片机都需要有一个能够稳定运行的电压工作范围 xff0c 如果低于或者高于正常工作电压范围其单片机并不一定会立马无法工作 也有可能会立马死机 xff0c 而是工作一段时间在某
  • TI的ADS8320使用说明

    在调试程序的过程中遇到一个奇怪的现象 xff0c 使用ADS8320的16位AD采样温度数据 xff0c 在实际使用过程中遇到问题 xff0c 记录如下 xff1a 初始化 ADS8320 拉低片选 读取16位数据 拉高片选 使用STM32
  • [C++] 模板函数声明与实现的分离

    在使用模板时 xff0c 一般要求定义与实现在一起 xff0c 那么为了程序的统一与美观 xff0c 若想在仅在头文件中定义 xff0c 在源文件中实现 xff0c 例如 xff1a span class token comment tem
  • Android List 排序

    Android List lt Point gt 排序 1 按照x来排序 1 1升序 List points xff1b Collections sort points new Comparator 64 Override public i
  • Android反射机制

    Android反射机制实例 创建一个测试类 Person public class Person private String name 61 34 张三 34 private int age 61 15 private String de
  • 将json字符串转换为自定义对象

    将json字符串转换为自定义对象 将json转自定义对象或者List String json 61 34 34 name 34 cece 34 Gson gson 61 new Gson Person person1 61 gson fro
  • 启动一个没有注册的Activity

    废话不多说 xff0c 直接上代码 xff0c 如有不明白的可以私信留言 xff0c 一起进步 在Application 中调用即可 AndroidManifest 中已经有注册过的activity class App extends Ap
  • 将List<Object>集合(汉字、字母、数字)按照拼音来排序

    目录 将List xff1c Object xff1e 集合按照拼音来排序 1 需求 2 使用系统自带的compareTo可以排序汉字 xff0c 如果其中混入了字母 xff08 纯字母 xff09 xff0c 会直接排在汉字之前 xff0
  • 手写findviewbyid和使用注解给变量赋值

    手写findviewbyid和使用注解给变量赋值 使用到注解和反射 注解本身没有什么含义 xff0c 只有配合反射和插桩技术时才能体现价值 我们平时要初始化view都需要调用findviewbyid xff0c 那我们可不可以省去这一步呢
  • Android Studio 内无法直接运行 main 方法

    Android Studio 内无法直接运行 main 方法 在 idea 下的 gradle xml 下 GradleProjectSettings 结点增加以下代码 span class token operator lt span o
  • Android 获取文件类型

    根据文件头获取文件类型 我这里只列举了4种 xff0c 其他种类只需要替换掉对应的判断即可 span class token operator span span class token operator span span class t
  • Cygwin的安装使用,及其软件包apt-cyg的配置使用,以及apt-cyg错误“/usr/bin/apt-cyg: line 25: $‘\r‘: command not found”解决

    首先官网下载Cygwin的安装包 xff0c 然后双击开始安装 xff0c 如下选择 xff1a 接下来的安装地址你就随意了 xff0c 一直下一步到 xff0c 镜像地址的选择 xff0c 选了国内的快一些 xff0c 我这里就选了阿里
  • 大疆无人机4G/5G图传直播编码器

    M76是专为HDMI高清视频4G直播的需求 xff0c 为移动执法视频监控和远程直播开发的便携性的HDMI高清4G直播编码设备 系统采用LINUX系统和海思HiS3516 xff0c 支持H 264 H 265视频压缩技术 xff0c 支持
  • 51单片机上传数据到手机APP

    前言 xff1a 最近在指导朋友毕设时发现的一个比较简单实用的功能 实现功能 xff1a 将温度数据上传到手机APP 所需材料 xff1a 1 51单片机 2 WIFI模块 xff1a ESP8266 01S 3 温度传感器 xff1a D