51单片机驱动ESP8266
写在前面
之前博主学习了很多网络编程的东西是因为工作上要开始做“智能家居”、物联网方面的东西了。
下面主角要登场了。就是单片机。
关于ESP8266你必须知道的
博主使用的是安信可的产品,12S
常用AT指令:
(1) 设置模块为ST模式:发送:AT+CWMODE=1;返回:OK
(2) 查看当前WiFi列表:AT+CWLAP返回: OK
(3) 加入当前无线网络:发送命令:AT+CWJAP=”MERSAIN”,”XXXXXXXX”
第一个填你想要连接的WiFi名称,第二个填WiFi的密码
(4)查看当前模块IP地址:发送: AT+CWLIF返回:当前IP地址
(5)开启多连接模式 :发送命令:AT+CIPMUX=1返回:OK
(6)建服务器 发送命令:AT+CIPSERVER=1,8080(设置指令)
指令:AT+CIPSERVER=[,]
说明::0-关闭server模式,1-开启server模式 :端口号,缺省值为333 响应:OK
重点注意:
单片机发过去的时候要主要每条指令要换行 例如send(“AT+RST\r\n”); //往串口发重启指令
硬件连接
TXD RXD 互相对接,GND共地,VCC:wifi模块要接3.3V
51代码
#include <STC12C5A60S2.h>
#include <stdio.h>
#include<string.h>#define uchar unsigned char
#define uint unsigned intuchar ReceiveData[5]; //回传的数组
uchar countnumber;void uart_init() //串口的初始化
{//9600bps@11.0592MHzPCON &= 0x7F; //波特率不倍速SCON = 0x50; //8位数据,可变波特率AUXR |= 0x40; //定时器1时钟为Fosc,即1TAUXR &= 0xFE; //串口1选择定时器1为波特率发生器TMOD &= 0x0F; //清除定时器1模式位TMOD |= 0x20; //设定定时器1为8位自动重装方式TL1 = 0xDC; //设定定时初值TH1 = 0xDC; //设定定时器重装值ET1 = 0; //禁止定时器1中断TR1 = 1; //启动定时器1EA = 1;ES = 1;} void delayms(uint xms) //延时
{
uint i,j;
for(i=xms;i>0;i--)for(j=110;j>0;j--);
}void Sent_ZF(uchar dat) //发送一个字节
{ES = 0;TI=0;SBUF = dat;while(!TI);TI = 0;ES = 1;
}void send(uchar *string) //发送字符串
{
while(*string){Sent_ZF(*string++);}}void Uart1() interrupt 4 //串口1 接收数据4wei(收到8266回传的OK,其实是\r\nOK)
{ //当然是因为目前8266里面刷的AT固件是出厂默认固件uchar a;if (RI==1){//RI=0; //复位中断请求标志,接收数据后置1a=SBUF; //接收数据RI=0; //复位中断请求标志,接收数据后置1*(ReceiveData + countnumber)=a;countnumber++;if (countnumber>4){countnumber=0;}
}} uchar data_compare(uchar *p) //比较字符串
{if(strstr(ReceiveData,p)!=NULL)return 1;elsereturn 0;
}void wifi_init() //初始化wifi模块
{while(1){send("AT+RST\r\n"); //往串口发重启指令if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);while(1){send("AT+CWMODE=1\r\n"); //选择STA模式if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);while(1){send("AT+CIPMUX=0\r\n"); //单通道模式if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);while(1){send("AT+CIPSTART=\"TCP\",\"192.168.1.100\",8080\r\n"); //往串口发重启指令if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);while(1){send("AT+CIPMODE=1\r\n"); //选择透传if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);while(1){send("AT+CIPSEND\r\n"); //发送数据命令if(data_compare("OK"))break;delayms(600); //适当延时,给wifi模块一点反应时间}memset(ReceiveData,0,5);}void main()
{P27=0; //蜂鸣器uart_init();delayms(2000);wifi_init(); //就可连上服务端了while(1){;}
}
ESP8266固件
配套刷的是出厂默认固件,可去安信可官网下载
结束
以后会对其进行完善的
51单片机驱动ESP8266相关推荐
- c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序
51单片机驱动12位AD转换TLC2543电路图+程序 2015-06-18 16:51:15 来源:51hei void resultvolt() { volt=volt*5000.0/4334 ...
- 51单片机驱动——LCD1602
51单片机驱动--LCD1602 1.描述 51单片机控制LCD1602屏幕显示测量数据.固定字符串等,大家复制过去可以直接使用,相关注释我已标明. 2.子文件 LCD1602.c #include ...
- 51单片机与ESP8266轻松上手Onenet(二)--onenet AT指令测试
本编内容如下: 1 准备工作 2 onenet产品创建 3 AT指令测试 4小结 51单片机与ESP8266快速上手物联网系列将一步步介绍89C51单片机将采集到的DS18B20的温度数据通过ESP8 ...
- 用51单片机驱动蜂鸣器
用51单片机驱动蜂鸣器 #include<reg51.h>//头文件 sbit BEEP=P1^5;//位定义P1的第五个端口为蜂鸣器 void delay() //延时函数 {unsig ...
- 51单片机驱动DS18B20温度传感器测量温度
51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...
- 51单片机通过ESP8266模块与手机进行通讯
51单片机通过ESP8266模块与手机进行通讯 WIFI 工作方式: 1.AP模式 提供热点 2.Station模式 作为设备接入热点 3.同时支持 配置 通过USB转TTL模块把ESP8266模块和 ...
- 使用51单片机驱动YM12232B型液晶显示屏
这是一个使用51单片机驱动YM12232B 液晶显示器的例子,本人水平有限,仅供参考. 本实例中将使用51单片机控制YM12232B LCD分别在主窗口和副窗口中显示"科"和&qu ...
- 基于51单片机驱动A4988实现步进电机逆时针转动
基于51单片机驱动A4988实现步进电机逆时针转动 一.简介 二.接线 典型接线图 实际接线 三.部分代码 引脚定义 定时器初始化 主函数 四.实验现象 五.注意事项 一.简介 A4988 是一款完全 ...
- 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)
基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...
最新文章
- R语言将多个dataframe导出到excel的多个表单(sheet)实战
- SQL语句正常,在Navicat中运行正常,但是在后台运行,无法查询出数据,也不报错...
- 【Python】Effective Python 读书笔记
- Python的第三方库pandas
- 北京科技大学计算机专业博导,北京科技大学计算机与通信工程学院-班晓娟
- vue excel导入mysql详细教程_Vue前端上传EXCEL文件,后端(springBoot+MyBatis+MySQL)解析EXCEL并批量插入/更新数据库...
- Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
- python用什么来写模块-用cython来写python的c模块
- 实习成长之路:MySQL二 : 一条SQL更新语句是如何执行的?
- (译)使用Go语言从零编写PoS区块链
- K-means聚类算法及其各种变形模型的实验分析
- 热释电人体感应红外报警器设计 - 没人取消报警
- 大屏监控系统实战(1)-项目介绍
- LeetCode994. 腐烂的橘子( BFS )
- Color Constancy Datasets
- 【YOLOP 解读】You Only Look Once for Panoptic Driving Perception
- mysql 数据库是utf8 用cms gbk 可以吗_帝国cms编码GBK转换成UTF-8版教程方法
- Java实现欧几里得法求最大公约数GCD
- Epson XP-225 驱动
- 2022年重氮化工艺考题及在线模拟考试