<WIFI>在soft-AP模式下实现配置UDP实验——手机点灯

来源:互联网 发布:自适应卡尔曼滤波算法 编辑:程序博客网 时间:2024/05/17 07:39

在看本文档之前,请先参考《wifi模式的获取和设置成AP模式》

前面我们分析了wifi的三种模式以及如何配置成soft-AP模式,在这个基础上,进一步配置UPD通讯,使得wifi板子能和手机进行通讯,下面做一个小实验来说明这个过程。嘿嘿,会了这个实验,就可以在其他专业的小伙伴面前装逼了——看,我能利用手机控制我的台灯。实际上感觉还是挺low的吧。话不多说,直接上图:


在用户手册里面,我们可以看到,esp8266实现TCP/UDP的通信主要是通过espconn这个结构实现的。首先是选择类型,我们选择UDP方式,而在这个结构体下包含了一个联合体proto,并且在最后要注册发送和接收的回调函数。那么我们选择了UPD方式之后,对这个方式要进行什么样的设定呢?接着看:


我们可以看到,在UPD参数的这个结构体中,我们只要配置好了这些参数即可。那么代码如何实现呢?

struct espconn PhoneConn;
esp_udp PhoneConnUdp;

如上,首先我们先利用两个结构体分别定义两个变量,那么接下来就是赋值的问题了。


由于我们仅仅是手机和8266的开发板接做的这么个实验,那么我们的赋值就简单点吧。依照结构体的成员一次填入对应的值,其中local_ip和remote_ip都是255表示传输是以广播的发送的,这也仅仅是作为实验。要是应用在其他场合,请认真了解UDP传输协议。最后我们注册一个UDP的接收回调函数。并且用espconn_create函数,以我们设置的参数生成UDP传输。

那么现在问题来了,板子什么时候能接收来自手机段的数据?这就得利用我们在设置参数时所注册的接收回调函数了,我们先看一下它的结构是什么样的:


在数据手册中我们看到,这个回调函数有两个参数,第一个是对应网络传输的结构体,也就是我们刚才设置参数的结构体。第二个是成功接收网络数据的回调函数,这也就是说我们要自己写一个接收处理函数,那就写呗,关键是怎么写?凭空捏造一个?问我怎么办?我能怎么办,我也很绝望啊。。这时候,就得去看我们万能的用户手册了,讲真,一定要习惯查看数据手册,更关键的是要习惯看英文版的数据手册。不说了,今天的单词还没背完,心疼两分钟。话说能坚持背单词和平时看一下英文版的新闻倒是挺不错的。

哈哈哈......扯远了,还是来继续分析我们的问题吧。我们要想写一个函数,那你总得知道这个函数的结构吧,至少要知道它应该有那些参数吧。设置参数的时候不是要注册回调函数吗?那么我直接跟踪一下它是怎么定义的:

sint8 espconn_regist_recvcb(struct espconn *espconn, espconn_recv_callback recv_cb);

看吧,也就是我要写的接收处理函数它是espconn_recv_callback 这种类型的,可我还是不知道这是什么类型的啊,于是乎,万能的手册来了:


duang!这就是,我要的接收函数...摩擦摩擦..(咋还唱起来了呢,囧)。上面已经解释得很清楚了,我就不废话了,直接写函数吧:


由于只是做个点灯的实验,咱们就不折腾了,怎么简单怎么来吧。

可是还有一个最为严重的问题,手机如何给板子发送消息?先上图,下面是我用易安卓设计的测试APP。


放心,APP的制作也很简单,它的代码全都是中文的,至于APP的源码和教程,我有空的时候再上传,明天开始忙着复习,要考试啦~~实验效果到时候一起上传。


0 0
原创粉丝点击