ESP8266配网并将IP显示至oled液晶屏 ESP8266远程连接服务器控制灯或继电器

智能车与机器人技术交流平台

概述

   可能已经有人很熟练的编写ESP8266程序,但是因为我学习运用的时间也就一周左右,踩了好多坑,所以不喜就不要看勿喷。文章仅此分享交流一些经验,供此参考。

     主要做的工作是连接服务器,用app控制灯的亮灭,以此类推也可以控制继电器以及向服务器传输IIC或者其他传感数据。下面是几张做出来的成果照片,只是做了项目的一部分,后续会把完整项目的代码发布出来。

     模块用的ESP8266MOD,协议是TCP,APP用的TCP连接(浏览器上下载就可以),由于阿里云,腾讯的服务器是MQTT协议,所以也会发布一版此协议的程序。

 

  

     TCP直连APP可以直接在聊天窗口发接消息,也可以在12宫格自行设置,我设置的开关灯。

实现方法

1、ESP8266配网

   配网用安信可公众号的一键配网功能,wifi名称和密码写入即可。

WiFi.mode(WIFI_STA);//设置工作模式

   WiFi.beginSmartConfig();//开始快连开启快连模式,快速连接 ESP8266 Station 到 AP。ESP8266 抓取空中特殊的数据包,包含⽬ 标 AP 的 SSID 和 password 信息,同时,用户需要通过手机或者电脑广播加密的 SSID 和 password 信息。

   WiFi.smartConfigDone()//等待配网完成。

WiFi.status()//判断当前是否联网,判断此时wifi状态,做好相应的操作。

WiFi.localIP());ESP8266的ip

WiFi.gatewayIP());//路由的IP,可将其打印在串口或者显示在oled液晶屏,我没显示和本地ip操作一致。

     Oled液晶屏不在此讲解,可自行看资料,网上好多,将IP显示在oled显示屏花费了我半天的时间,IP地址属于IP类型,不能直接显示,所以需要将此转换为字符串,再转换为char*格式,具体操作见下。

ip1=WiFi.localIP().toString();

  OLED_ShowString(0,6,(char *)(ip1.c_str()),16);

     千万不要一蹴而就将整个公式写一行代码,因为Arduino软件自身或者模块的问题(不太清楚),公式最好一步一步写,不然会出错。

2、连接服务器

    服务器IP和端口都是固定的,所以你需要查看你要连接的服务器明确他们的信息。

client.connect(serverIP, serverPort)//模块连接WIFI后通过路由连接服务器,serverIP,是IP地址,serverPort是端口,连接成功返回1,反之为0。

client.available()//判断有无数据到达,有返回1,没有返回0。

client.read()//读取服务器发送的数据。

 client.write()//给服务器发送数据。

3、接收到数据解析操作IO口

  操作IO口开始我用的乐鑫的SDK,软件是ARduino软件,不知道是否是因为没有用乐鑫提供的IDE还是什么导致不能成功操作,所以后来我又用了ARDuino的SDK来操作,Arduino引脚与8266对应不同,关系表如下。

static const uint8_t D0   = 16;

static const uint8_t D1   = 5;

static const uint8_t D2   = 4;

static const uint8_t D3   = 0;

static const uint8_t D4   = 2;

static const uint8_t D5   = 14;

static const uint8_t D6   = 12;

static const uint8_t D7   = 13;

static const uint8_t D8   = 15;

static const uint8_t D9   = 3;

static const uint8_t D10  = 1;

如果要操作IO12,#define LED  D6  

pinMode(LED,OUTPUT);//配置输入还是输出

 digitalWrite(LED, HIGH);//设置高  digitalWrite(LED, LOW);//设置低

其它难点就没有什么了

要源码可以关注公众号,后台私信留邮箱。

 调试

调试过程下载的时候有时候会出现错误,COM5或者三口不存在或者找不到,一是重新插拔下载,而是找到Arduino软件的Driver文件重新下载驱动就好了。

二、注意Arduino软件是g++编译器,有的语法不跟C语言 C++一样,比如void*可代替所有类型的指针,但是此软件会报错,只能用同宗同源的类型。

     最后,请多多支持,谢谢大家!

        

已修改 0/20

还未开始修改

预览 提交修改

undefined

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxxsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值