写在前面

之前博主学习了很多网络编程的东西是因为工作上要开始做“智能家居”、物联网方面的东西了。
下面主角要登场了。就是单片机。

关于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相关推荐

  1. c语言编程TLC2543AD采集,51单片机驱动12位AD转换TLC2543电路图+程序

    51单片机驱动12位AD转换TLC2543电路图+程序 2015-06-18 16:51:15   来源:51hei void resultvolt() { volt=volt*5000.0/4334 ...

  2. 51单片机驱动——LCD1602

    51单片机驱动--LCD1602 1.描述 51单片机控制LCD1602屏幕显示测量数据.固定字符串等,大家复制过去可以直接使用,相关注释我已标明. 2.子文件 LCD1602.c #include ...

  3. 51单片机与ESP8266轻松上手Onenet(二)--onenet AT指令测试

    本编内容如下: 1 准备工作 2 onenet产品创建 3 AT指令测试 4小结 51单片机与ESP8266快速上手物联网系列将一步步介绍89C51单片机将采集到的DS18B20的温度数据通过ESP8 ...

  4. 用51单片机驱动蜂鸣器

    用51单片机驱动蜂鸣器 #include<reg51.h>//头文件 sbit BEEP=P1^5;//位定义P1的第五个端口为蜂鸣器 void delay() //延时函数 {unsig ...

  5. 51单片机驱动DS18B20温度传感器测量温度

    51单片机驱动DS18B20温度传感器测量温度 1.DS18B20温度传感器介绍: 2.51单片机驱动DS18B20测量温度 1.DS18B20温度传感器介绍: ①引脚定义 引脚 符号 说明 1 GN ...

  6. 51单片机通过ESP8266模块与手机进行通讯

    51单片机通过ESP8266模块与手机进行通讯 WIFI 工作方式: 1.AP模式 提供热点 2.Station模式 作为设备接入热点 3.同时支持 配置 通过USB转TTL模块把ESP8266模块和 ...

  7. 使用51单片机驱动YM12232B型液晶显示屏

    这是一个使用51单片机驱动YM12232B 液晶显示器的例子,本人水平有限,仅供参考. 本实例中将使用51单片机控制YM12232B LCD分别在主窗口和副窗口中显示"科"和&qu ...

  8. 基于51单片机驱动A4988实现步进电机逆时针转动

    基于51单片机驱动A4988实现步进电机逆时针转动 一.简介 二.接线 典型接线图 实际接线 三.部分代码 引脚定义 定时器初始化 主函数 四.实验现象 五.注意事项 一.简介 A4988 是一款完全 ...

  9. 基于51单片机驱动HC-SR04超声波模块(LCD1602显示)

    基于51单片机驱动HC-SR04超声波模块(LCD1602显示) 一.基本参数 二.通信时序 三.部分代码展示 四.实际效果 总结 一.基本参数 点击图片购买 HC- SR04+是一款宽电压工作的超声 ...

最新文章

  1. R语言将多个dataframe导出到excel的多个表单(sheet)实战
  2. SQL语句正常,在Navicat中运行正常,但是在后台运行,无法查询出数据,也不报错...
  3. 【Python】Effective Python 读书笔记
  4. Python的第三方库pandas
  5. 北京科技大学计算机专业博导,北京科技大学计算机与通信工程学院-班晓娟
  6. vue excel导入mysql详细教程_Vue前端上传EXCEL文件,后端(springBoot+MyBatis+MySQL)解析EXCEL并批量插入/更新数据库...
  7. Bailian4145 放弃考试 POJ2976 ZOJ3068 Dropping tests【二分法+01分数规划】
  8. python用什么来写模块-用cython来写python的c模块
  9. 实习成长之路:MySQL二 : 一条SQL更新语句是如何执行的?
  10. (译)使用Go语言从零编写PoS区块链
  11. K-means聚类算法及其各种变形模型的实验分析
  12. 热释电人体感应红外报警器设计 - 没人取消报警
  13. 大屏监控系统实战(1)-项目介绍
  14. LeetCode994. 腐烂的橘子( BFS )
  15. Color Constancy Datasets
  16. 【YOLOP 解读】You Only Look Once for Panoptic Driving Perception
  17. mysql 数据库是utf8 用cms gbk 可以吗_帝国cms编码GBK转换成UTF-8版教程方法
  18. Java实现欧几里得法求最大公约数GCD
  19. Epson XP-225 驱动
  20. 2022年重氮化工艺考题及在线模拟考试

热门文章

  1. 大津二值化算法(Otsu)
  2. msdn i tell you网址及下载系统详细步骤
  3. 如何给 Windows 和 npm 加上 socks 代理
  4. 基于fpga的单线激光雷达数据处理
  5. MySQL 排序语句
  6. 网页制作篇(智慧树网站马红老师)-基础知识总结1(标记篇)
  7. MySQL数据库---数据库基础
  8. python安装模块(官网文档)
  9. C++ opencv之像素值统计(minMaxLoc,meanStdDev)
  10. netcat使用方法