资讯详情

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

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

概述

有些人可能已经熟练地写作了ESP8266程序,但因为我花了大约一周的时间学习和使用,踩了很多坑,所以如果你不喜欢,不要看或喷。本文仅分享和交流一些经验供参考。

主要工作是连接服务器,使用app控制灯的亮灭,以此类推IIC或者其他传感数据。以下是几张成果照片,只是项目的一部分,完整的项目代码将在后续发布。

模块用的ESP8266MOD,协议是TCP,APP用的TCP连接(可以在浏览器上下载),因为阿里云,腾讯的服务器是MQTT因此,本协议的程序也将发布。

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

实现方法

1、ESP8266配网

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

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

WiFi.beginSmartConfig()///开始快速连接开启快速连接模式ESP8266Station到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,反之亦然。

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

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

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

3.接收数据分析操作IO口

操作IO嘴开始我用的乐心SDK,软件是ARduino不知道是不是因为没有乐信提供软件。IDE还是什么导致操作失败,所以后来又用了ARDuino的SDK来操作,Arduino引脚不同于8266,关系表如下。

staticconstuint8_tD0=16;

staticconstuint8_tD1=5;

staticconstuint8_tD2=4;

staticconstuint8_tD3=0;

staticconstuint8_tD4=2;

staticconstuint8_tD5=14;

staticconstuint8_tD6=12;

staticconstuint8_tD7=13;

staticconstuint8_tD8=15;

staticconstuint8_tD9=3;

staticconstuint8_tD10=1;

如果要操作IO12,#defineLEDD6

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

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

没有其他困难。

关注微信官方账号,后台私信留邮箱。

调试

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

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

最后,请多加支持,谢谢!

已修改0/20

还没有开始修改

预览提交修改

undefined

标签: 直连继电器sta继电器1ap继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台