前言:
这个算是51单片机上传数据到手机APP续集,添加了远程控制的功能,不懂的小伙伴可以看看之前的文章。

功能介绍:
1、采集温度数据到手机APP
2、通过APP控制单片机上的LED灯

APP操作:
APP通过发送LED0、LED1字符串来实现开关灯

演示图:

代码实现:
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);}
}

串口中断服务程序:
改动的地方,实现远程控制的代码

sbit led=P2^0;     //将单片机的P0.0端口定义为led
tatic  char  uart_buf[32]={0};  //用于保存串口数据
static  unsigned char uart_cnt=0;   //用于定位串口数据的位置
void UART_SER (void) interrupt 4    //串行中断服务程序
{if(RI)                        //判断是接收中断产生{RI=0;                      //标志位清零//接收串口数据uart_buf[uart_cnt] =SBUF;  uart_cnt++;//判断是否是下发的指令if(uart_buf[uart_cnt-4]=='L'&&uart_buf[uart_cnt-3]=='E'&&uart_buf[uart_cnt-2]=='D'&&uart_buf[uart_cnt-1] == '0')  {led = 0;       //开灯uart_cnt = 0;  //清零,重新计数}else if(uart_buf[uart_cnt-4]=='L'&&uart_buf[uart_cnt-3]=='E'&&uart_buf[uart_cnt-2]=='D'&&uart_buf[uart_cnt-1] == '1')  {led = 1;       //关灯uart_cnt = 0;}if(uart_cnt>28)   //防止数组越界{uart_cnt = 0;}}if(TI)  //如果是发送标志位,清零TI=0;
}

最后:
需要代码的可以自行下载,下载链接
下载操作:

使用手机APP远程控制51单片机相关推荐

  1. 实现微信小程序和手机app远程控制51单片机控制L298N电机驱动器控制马达(ESP8266 AT89S52 http请求转串口通信系统 mqtt )

    首先你有这样的8266 这种8266自身带2个按键和烧录芯片方便调试,综合性价比较高. 还有就是你需要有一个51单片机或者其他芯片都行.有了这2个芯片我们开始吧! 1.先看一段视频效果演示,再来介绍实 ...

  2. 搭建人工智能云服务器,搭建人工智能云连接,实现手机APP远程控制

    STC89C52驱动ESP8266-01搭建实现云连接,支持手机APP远程控制程序 单片机与wifi模块接线 单片机 wifi模块 TX--------RX RX--------TX GND----- ...

  3. 毕业设计——基于STM32的智能家具控制系统(ESP-01S(8266)、手机app远程控制、远程显示温度)

    智能家具系统分为两个不同版本系列: ①系列一:手机app远程控制.远程检测温湿度显示在app,(云平台)    ---------本文章 ②系列二:语音识别控制                http ...

  4. 安卓app+esp8266+51单片机+光敏电阻+lcd1602实现智能照明系统

    本文是本人51单片机和物联网的期末课程设计,没学过打板焊接,只用面包板和公母线实现. 安卓和esp8266控灯主要参考Android Studio设计APP实现与51单片机通过WIFI模块(ESP82 ...

  5. 手机APP远程控制树莓派

    手机APP远程控制三步快速连接树莓派 www.marsiot.com 请确认树莓派可以访问互联网 目前支持树莓派官方镜像Raspbian 硬件目前支持Raspberry Pi 2/3 Model B ...

  6. 一种典型的手机APP远程控制PLC解决方案

    一种低成本的手机APP远程控制PLC解决方案 对于很多用户来说,通过手机APP远程控制设备,是一种非常便利的事情.在物联网技术快速发展的时代,当前有几种方式可以实现手机APP远程控制PLC的解决方案, ...

  7. 手机蓝牙控制51单片机实现对led灯的开关

    根据蓝牙模块通过手机蓝牙实现对51单片机led灯的控制. 1.器材 2.连线说明 3.源码 4.操作过程 5.成果展示 1.器材 51单片机,本人选用的为亚博的51单片机,不同的单片机在引脚的定义上有 ...

  8. 如何通过手机APP远程控制PLC

    随着工业自动化的发展,PLC作为一种可靠的.高效的智能控制器在工业领域得到了广泛运用.同时在日常工作中,智能手机作为一台越来越强大的多媒体平台,应用于远程监控PLC的需求越来越高,现在已经十分成熟并得 ...

  9. (开源)ESP8266改装小风扇,手机app远程控制+天猫精灵控制

    ESP8266改装小风扇,app远程控制+天猫精灵控制 材料准备 拆解风扇 第一 下载ESP8266示例(arduino ide 编程开发) 第二 修改demo例程 关于主题topic 第三 app ...

最新文章

  1. 20190702 论回去
  2. android 代码混淆 gson,Android RecyclerView和Gson混淆问题
  3. mysql 加密方式 caching_sha2_password 和 mysql_native_password 说明
  4. python编程入门指南 代码库在哪下-致Python初学者 Anaconda入门使用指南完整版
  5. Windows下用C语言获取进程cpu使用率,内存使用,IO情况
  6. C指针原理(2)-ATT汇编
  7. web.xml中如何配置Servlet文件
  8. 005. how is RFC to backend determined - maintenance view IWFNDV_MGDEAM
  9. ssl 的jks 生成工具
  10. GUI编程tkinter模块常用参数(python3)
  11. HBase性能优化方法总结
  12. 云服务售后服务调研,参与问卷送福利!
  13. 《那些花儿》范玮琪版
  14. PTA 程序设计天梯赛(1~180题)
  15. iapp退出软件按钮代码_一师一优课视频专用转码软件的安装和使用教程
  16. mysql修改字段的名称类型_MySQL修改字段名和字段数据类型
  17. 实时语音视频通话SDK如何实现立体声(一)
  18. 【数据结构】图(最短路径Dijkstra算法)的JAVA代码实现
  19. 嵌入式软硬件模块化开发和工具性总结
  20. RocketMQ之消息重试。

热门文章

  1. python 批量修改图片的名字
  2. OS-练习题(10~13)
  3. IMAX6ULL正点原子学习笔记(led汇编驱动)
  4. 用一生的漫长,等待最初的绿色
  5. 大数据在社会中的重要性
  6. use SWR为什么能成为我的最爱React库?
  7. 2018年Oracle官网下载Oracle 11g安装包
  8. 360随身wifi驱动 v3.1.0.1075 官方版
  9. 聚焦物流4大场景,RPA如何降低物流企业运营成本
  10. python在两行中分别输入一个字符串s和整数n,定义一个函数将字符串s循环向右移动n位