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
ESP8266配网并将IP显示至oled液晶屏 ESP8266远程连接服务器控制灯或继电器相关推荐
- Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x480的分辨率选项
欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 Teamviewer连接服务器显示不能够全屏 或 向日葵连接服务器不能够全屏 或 Teamviewer只显示一个640x ...
- 连接服务器显示出现内部错误怎么解决方案,远程连接服务器提示“出现了内部错误”解决方法锐讯网络罗海清...
远程连接服务器提示"出现了内部错误"解决方法: 解决方法: Win+R键 打开DOS窗口 输入"ncpa.cpl"并敲击回车 紧接着会看到"本地连接& ...
- stm32 esp8266配网-smartConfig和BT串口方式配网
stm32 esp8266 ota系列文章: stm32 esp8266 ota-快速搭建web服务器之docker安装openresty stm32 esp8266 ota升级-tcp模拟http ...
- ESP8266配网最方便快捷的库
ESP8266配网最方便快捷的库 WiFiManager.h应该是我见过的配网库里面最快捷方便,而且功能齐全的库. 库的地址:GitHub 不需要手动写配置页面.省去了html代码的编写. 实例程序代 ...
- AliOS-Things ESP8266 配网 学习
AliOS-Things ESP8266 配网 学习 1.环境搭建 2.流程 1.环境搭建 参考官网 2.流程 确认流程通过浏览源码.增加打印以及查看打印来确认,如果遇到乐鑫SDK的函数,不作详细说明 ...
- 如何给esp8266 配网?
玩ESP8266也有一段时间了,发一篇博客记录一下ESP8266配网的方法,也希望能给大家提供一点帮助,我使用的是Arduino的开发环境. 1. 固定在程序里 首先是测试时我们经常将自己家的WIFI ...
- 使用花生壳远程连接服务器,服务器的IP地址改变时,重连服务器的方法
这个事情是我经历过的,想分享给大家,同时也做个自己的记录. 不知道审核为什么非说这篇是个广告???!!!审核的人一定没用过花生壳这个软件吧!!我又没有引导大家进行消费,只是告诉大家在出现这个问题的时候 ...
- 【vscode远程开发】使用SSH远程连接服务器 「内网穿透」
文章目录 视频教程 1.安装OpenSSH 2.vscode配置ssh 3. 局域网测试连接远程服务器 4. 公网远程连接 4.1 ubuntu安装cpolar 4.2 创建隧道映射 4.3 测试公网 ...
- 【内网穿透服务器】利用云服务器+FRP实现内网穿透并远程连接服务器
应用目的:远程管理或在外网访问内网机器上的服务 这里我们是使用云服务器+FRP实现内网穿透,达到远程连接服务器的目的 准备工作 云服务器 这里我们租用的是腾讯云的服务器,类似于下图的这种,配置选择可以 ...
最新文章
- 区块链BaaS云服务(22)趣链BitXHub跨链平台
- [原创]OpenvSwitch安装
- uva 10396——Vampire Numbers
- Linux 终端(TTY)
- python怎么创建变量_Python之变量的创建过程
- 新代数控系统编程说明书_数控加工中心编程快速入门教程
- 批量创建文件夹 在批量创建的文件夹下创建两个子文件夹
- 几种微弱信号处理电路
- 【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
- 使用Cent Browser+Aria2+Bilibili Envolved下载b站视频--保姆级安装步骤
- android 修改aar包资源文件的最简单方法
- Exception [WinError 995] 由于线程退出或应用程序请求 的解决办法
- 商品筛选html,js实现简单商品筛选功能
- html图片靠右浮动 文字左侧环绕,关于html:将图片浮动到右下角,文字环绕
- 请别再问我什么是分布式事务
- 特效笔记1----特效设计的概念和基础原则
- 为什么换了硬盘计算机无法启动,完美的解决方案:更换固态硬盘后无法打开计算机的原因分析和解决方案...
- Windows下 批量重命名文件【bat实现】
- 速读原著-TCP/IP(UDP首部)
- 咳咳咳。继续编下去,等未来的我来嘲讽现在的我,百度圣典内部函数归类总结