ESP8266模块与单片机的通信程序(硬件与软件详解)

发布者:心灵舞动最新更新时间:2019-10-25 来源: 51hei关键字:ESP8266模块  单片机  通信程序 手机看文章 扫描二维码
随时随地手机看文章

初次接触ESP8266模块,说实话还是费了很大的劲,从硬件部分到软件部分,一个一个的问题对于我这个新手来说,确实有些吃力。不过还好,在51hei电子论坛有很多这方面的资料,也有很多很友好的人,感谢他们给予的帮助。



虽然我是一个菜鸟,但我还是希望和大家分享一下。时间比较仓促,代码也有很多不成熟的地方,希望能对初次接触这个模块的人有一些帮助。


1,硬件:USB转TTL是必需的,ESP8266模块,一般模块出厂就已经烧好了固件,拿到就可以直接发AT指令,AT指令的手册网上很多,可以自行百度。

  硬件连接  TXD-RXD, RXD-TXD; 交叉连接,有的模块需要自己拉高一个引脚的电平,如图所示,电源最好是3.3V,模块发热很严重,不要长时间接电。


2 ,软件:在执行代码之前,模块要先设定好什么模式,用串口助手发送AT指令设定。我的是AP模式,模块设定为server端,然后生成一个WiFi,名字随   意,这个时候(当然得知道模块的IP地址),可以用电脑上的网络助手,尝试连接模块,电脑必须连接ESP8266模块产生的WiFi才可以;这几步之后,模块就可以连接已经下载好的单片机了,在上面设定好之后,模块断电重启后,在设定的模式不会变,WiFi不会变,后面的指令就需要通过单片机发送了。到这儿基本就可以实现简单的通讯了,程序工程已附上。

 

时间仓促,我也是这几天才学的,分享只是为了更多的分享,不足的地方希望谅解,目前准备做433M。有愿意指导的或是技术交流的可以加我qq1946706342


单片机源程序如下:

#include

#include

#include

#define uchar unsigned char 

#define uint unsigned int 


sbit D1 = P2^0;

sbit D2 = P2^1;

sbit D3 = P2^2;

sbit D4 = P2^3;

sbit D5 = P2^4;

sbit D6 = P2^5;

sbit D7 = P2^6;

sbit D8 = P2^7;


uchar Receive;

uchar Recive_table[15];

uchar flag = 1;

uchar flag1 = 1;

uchar flag2 = 0;

uchar num = 0;

uint i=0;

void ms_delay(uint n)        

{

        uint j,m;

        for( m =n; m>0; m--)

        for(j=110; j>0; j--);

}

void us_delay(uchar n)

{

        while(n--);

}


void Usart_init()

{

        SCON = 0x50;        //设置串行口工作在方式一,且启动串行口接收(REN=1)

        TMOD = 0x20;        //设置计数器1工作在方式二,即自动重装计数值(8位)

        PCON=0X80;

        TH1 = 0xf3;                //设置波特率为4800

        TL1 = 0xf3;

        

        EA = 1;       //开总中断

        TR1 = 1;                         //启动计数器

}


void sent_AT(uchar *at_comd)

{

        ES = 0;

        while(*at_comd != '')  //字符串结束标志

        {

                TI = 0;

                SBUF = *at_comd;

                while(!TI);

                TI = 0;

                us_delay(5);

                at_comd++;

        }

        us_delay(5);

        SBUF = 'r';

        while(!TI);

        TI = 0;

        us_delay(5);

        SBUF = 'n';

        while(!TI);

        TI = 0;

}

void main()

{


                uchar Recivedat;

        //        uchar Rec;

        

                Usart_init();

                ms_delay(5000);

                ES = 0;

                while(flag == 1){

                        sent_AT("AT+CIPMUX=1");//最方便的是直接printf("AT+CIPMUX=1rn");我想弄清楚发送原理,所以绕了一个弯

                                flag1 = 1;

                                while(flag1 == 1)//检测模块是否返回OK

                                {

                                        if(RI)

                                        {

                                                RI = 0;

                                                Recivedat = SBUF;

                                                if(Recivedat == 'K')

                                                {

                                                        flag = 0;

                                                        flag1 = 0;

                                                }

                                        }

                                        num++;

                                        if(num == 1000)

                                        {

                                                num = 0;

                                                flag1 = 0;

                                        }

                                }

                        }

                flag = 1;

                flag1 = 1;

                num = 0;

          D1 = 0;

                        

                while(flag == 1){

                                sent_AT("AT+CIPSERVER=1,8080");

                                flag1 = 1;

                                while(flag1 == 1)

                                {

                                        if(RI)

                                        {

                                                RI = 0;

                                                Recivedat = SBUF;

                                                if(Recivedat == 'K')

                                                {

                                                        flag = 0;

                                                        flag1 = 0;

                                                }

                                        }

                                        num++;

                                        if(num == 1000)

                                        {

                                                num = 0;

                                                flag1 = 0;

[1] [2]
关键字:ESP8266模块  单片机  通信程序 引用地址:ESP8266模块与单片机的通信程序(硬件与软件详解)

上一篇:基于51单片机8音键电子琴DIY制作
下一篇:单片机自动浇花系统设计

推荐阅读最新更新时间:2024-11-07 16:16

单片机EMC设计的几点建议
    单片机的工作频率单片机的设计应根据客户的需求来选择较低的工作频率首先介绍一下这样做的优点:采用低的晶振和总线频率使得我们可以选择较小的单片机满足时序的要求,这样单片机的工作电流可以变得更低,最重要的是VDD到VSS的电流峰值会更小。   当然我们这里需要做一个妥协,因为客户的要求可能是兼容的和平台化的(目前汽车电子的发展趋势就是平台化),选择较高的工作频率可以兼容更多的平台,也方便以后升级和扩展,因此要选择一个较低的可以接受的工作频率。   恰当的输出驱动能力在给定负载规范,上升和下降时间,选择适当的输出的上升时间,最大限度地降低输出和内部驱动器的峰值电流是减小EMI的最重要的设计考虑因素之一。驱动能力不匹配或不控制输出电压
[电源管理]
<font color='red'>单片机</font>EMC设计的几点建议
单片机键盘扫描程序(汇编)
;这个相对起来比较难,如果理解不了的话,可以(返回日志目录,或者是本日志的右上角,你也可以看到)看上篇(课程设计:矩阵键盘,相对来说,非常简单了) ;键盘扫描程序;此程序比较复杂,不过如果你坚持的理解下去的话,还是能够理解的,比较经典 ;最终是按键的值输出到数码管中(接在P2口) ORG 0000H START: MOV R0,#00H ;初始化程序,开始的延时是为了使硬件能够准备好 DJNZ R0,$ LOOP: MOV SP,#60H CALL KEY DISPLAY: MOV A,R4 MOV DPTR,#TABLE ;定义字形表的起始地址
[单片机]
北京君正:公司MCU主要配合公司LED驱动芯片,目前销量不大
9月13日,北京君正与投资者互动时表示,公司MCU主要配合公司LED驱动芯片,目前销量尚不大。 公开资料显示,北京君正为集成电路设计企业,自成立以来在嵌入式CPU、视频编解码、影像信号处理、神经网络处理器、AI算法等领域持续投入,形成自主创新的核心技术;基于这些核心技术,北京君正推出了微处理器芯片和智能视频芯片两条产品线,并且围绕着这两条产品线,研发了相应的软硬件平台和解决方案,帮助客户快速把产品推向市场。 今年上半年,北京君正各产品线市场需求旺盛,总体营业收入呈快速增长趋势,带动了净利润的持续增长。同时,北京君正因收购产生的存货、固定资产和无形资产等资产评估增值,其折旧与摊销等对北京君正报告期损益的影响金额合计为3,651.1
[手机便携]
MSP430单片机在微型低功耗数据广播接收机中的应用
一、 引言 我们独立自主开发了数据广播编码器和微型低功耗调频数据广播接收机,整套系统采用连续相位频移键控(CPFSK)调制方式,副载波频率为72KHz,占用带宽约16Khz,数据传输速率4.8KHZ。采用CPFSK调制方式使接收机易于实现,与QPSK的调制方式相比对相位稳定度要求不高,不易受外界温度噪声的影响,而且在信号解调处理时实现低功耗。 由于在发送端先后进行了数据编码、信道调制、线性调频,所以接收设备要完成信号逆处理。硬件结构框图: 二、MSP430单片机的特点及在接收机中的应用 TI公司MSP430系列单片机的超低功耗特性(运行在1MHz时钟条件下工作电流视工作模式不同为0.1-400uA
[单片机]
MSP430<font color='red'>单片机</font>在微型低功耗数据广播接收机中的应用
介绍单片机硬件抗干扰经验
单片机硬件抗干扰经验 在研制带器的电子产品时,如何提高抗干扰能力和电磁兼容性? 一、下面的系统要特别注意抗电磁干扰: 1、微控制器时钟频率特别高,总线周期特别快的系统。 2、系统含有大功率,大电流驱动电路,如产生火花的继电器,大电流开关等。 3、含微弱模拟信号电路以及高精度A/D变换电路的系统。 二、为系统的抗电磁干扰能力采取如下措施: 1、选用频率低的微控制器 选用外时钟频率低的微控制器可以有效降低噪声和提高系统的抗干扰能力。同样频率的方波和正弦波,方波中的高频成份比正弦波多得多。虽然方波的高频成份的波的幅度,比基波小,但频率越高越发射出成为噪声源,微控制器产生的最有影响的高频噪声大约是时钟频率的3倍。 2、减
[单片机]
单片机中的位域操作
在一个工程项目中,有时候我们经常会用到许多状态标志位。很多时候我们会去程序中定义这些变量,而这些变量往往占用了一个字节(byte),然而我们需要的仅仅是一个状态位(bit)。这样去定义变量不仅浪费了存储空间,而且不利于变量管理。下面,介绍一种使用位域的方法定义状态标志的方法: //定义联合体,同时命名别名为function typedef union { u8 flagByte; struct { u8 b0:1; u8 b1:1; u8 b2:1; }bits; }function; function myflag; //定义联合体变量myflag //变量操作 u
[单片机]
M68HC912D60在税务监控系统设计中的应用
   1 引言   税控系统即“POS电子税收控制系统”, 是由POS机、金税卡/IC卡、读卡器、计算机及打印机等设备构成的电子信息网络。POS税款机的推广是执行“金税工程”的一个重点项目,推广应用POS税款机能够让税务部门节约大量的人力财力,杜绝商家经营中的偷税漏税情形。由于目前市面上使用的POS机五花八门,全部更换是一个很大的经济负担,因此,一个可行的方法是对现有的普通收款机进行改造,安上税控装置。以MCU为核心的嵌入式税控系统以其高效、可靠、低价的优点,成为最佳的税控系统解决方案之一。    2 税务监控系统介绍   税务监控系统通过截获POS机的打印数据,从中提取出交易的日期、时间、金额等税控信息,并在打印数据中
[单片机]
关于Msp430 Flash型单片机内部Flash的操作
1 Msp430Flash型单片机内部Flash存储器介绍 MSP430的Flash存储器是可位、字节、字寻址和编程的存储器。该模块由一个集成控制器来控制编程和擦除的操作。控制器包括三个寄存器,一个时序发生器及一个提供编程、擦除电压的电压发生器。 Msp430的Flash存储器的特点有: 1) 产生内部编程电压 2) 可位、字节、字编程,可以单个操作,也可以连续多个操作 3) 超低功耗操作 4) 支持段擦除和多段模块擦除 2 Flash存储器的分割 Msp430 Flash存储器分成多个段。可对其进行单个字节、字的写入,也可以进行连续多个字、字节的写入操作,但是最小的擦除单位是段。 Flash 存储器被分割成两部分:主存储器和信息
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved