[WiFi]Esp8285创建wifi热点,并作为http服务器,对外提供页面

.本文目标:

通过esp8285 创建wifi热点esp8285同时作为web服务器,对外提供页面访问。

用手机或电脑找到对应的wifi用户名和密码,连接esp8285提供的wifi之后,通过esp8285提供的ip地址,访问到页面,完成独立的wifi热点下的web服务器的搭建

.开发环境搭建硬件:esp8285 开发工具:arduino ide开发环境:windows测试终端:安卓手机三.详细步骤

首先搭建 开发环境搭建。具体请参考本专栏上一篇文章:

Esp8285开发环境搭建

1.打开开发工具 arduino ide,并选择开发板 DOIT ESP-Mx xxxx 

选择详细步骤不清楚的话,可以参考上一篇文章,这里不再详述。能够选择成功,会在界面上有上图的显示,即可继续按照本文往下进行。如果选择没成功,想先按照上文的步骤操作成功后再试。

2.找到WIFIAP的示例代码

文件-->示例-->ESP8266WiFi-->WiFiAccessPoint


 

打开新的窗口之后


 


3.修改示例代码



/*
   Copyright (c) 2015, Majenko Technologies
   All rights reserved.

   Redistribution and use in source and binary forms, with or without modification,
   are permitted provided that the following conditions are met:

* * Redistributions of source code must retain the above copyright notice, this
     list of conditions and the following disclaimer.

* * Redistributions in binary form must reproduce the above copyright notice, this
     list of conditions and the following disclaimer in the documentation and/or
     other materials provided with the distribution.

* * Neither the name of Majenko Technologies nor the names of its
     contributors may be used to endorse or promote products derived from
     this software without specific prior written permission.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
   ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
   ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
   ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/* Create a WiFi access point and provide a web server on it. */

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>

#ifndef APSSID
#define APSSID "ESP8285-1ap"
#define APPSK "Aaa123456"
#endif

/* Set these to your desired credentials. */
const char *ssid = APSSID;
const char *password = APPSK;

ESP8266WebServer server(80);

/* Just a little test message.  Go to http://192.168.4.1 in a web browser
   connected to this access point to see it.
*/
void handleRoot() {
  server.send(200, "text/html", "<h1>You are connected</h1>");
}

void setup() {
  delay(1000);
  Serial.begin(115200);
  Serial.println();
  Serial.print("Configuring access point...");
  /* You can remove the password parameter if you want the AP to be open. */
  WiFi.softAP(ssid, password);

  IPAddress myIP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(myIP);
  server.on("/", handleRoot);
  server.begin();
  Serial.println("HTTP server started");
}

void loop() {
  server.handleClient();
 

}

这里需要非常注意一点:我们创建的wifi用户名和密码的格式要正确,否则会生成esp-xxx为格式的用户名,开放登录的热点。





 

具体格式:wifi用户名密码尽量使用ESP-xxxx,格式,其中xxxx是要数字和大小写字母的混合

密码:不低于6位,大小写字母混合

4.烧录代码(部署)到esp8285

这里要特别注意一下,当修改过wifi名和密码的时候,一定要进行保存,而且保存之后实际上是会重新开启一个开发界面的,所以修改之后的编译和代码上传都是在保存后的界面上进行的,否则会按照默认的用户名密码进行设置

部署成功,效果如下:

鉴于平台的要求,ip不能出现在图片中,图片 是显示 文字即成功

.验证:

1.打开手机或者开发电脑,找到wifi连接的界面,就是浏览wifi列表的地方,找到我们设置的wifi名称,这里是ESP8285-1ap

会提示没有internet,不需要管。这里的原因是我们只是用esp8285作为一个wifi热点,但是esp8285还没有接入到运营商提供的外网中。这里连接上之后,只能访问esp8285所在的局域网下的内容,不能实际联网。如果需要实际联网,可以给esp8285连外部网络,后续章节会进行讲解


2.按照正常连接wifi的方式点

连接 按钮,输入密码(代码中配置的Aaa123456,连接之后如下,到开发工具的串口监视器下,查看下日志,看下esp8285对外提供的web访问地址是多少:

这里看到是  设置的ip 也是默认的,因为代码中我们未进行设置,如果需要设置可以修改代码后部署一下。

3.通过浏览器,输入ip 
.总结

至此,我们使用esp8285创建了一个ap,并通过浏览器的wifi连接到该热点,并且通过页面访问到了 esp8285提供的web页面。虽然页面简单只有一行字,如果我们需要扩展页面,可以在此基础上编写html代码。

如果我们需要实现交互功能,那么可以通过html代码里调用http接口或者mqtt方法,实现复杂的功能。当然,如果接口在外网,还需要给esp8285设置连接外网的能力,也就是连接一个对外的路由器。

我们通过上面的例子,已经可以实现一个简答的wifi热点了。在实际场景中,我们可能会需要从wifi热点提供的界面里,开放 用户名和密码的输入框,通过动态 输入框输入路由器提供的wifi用户名和密码来实现动态配置路由的功能。

其实我们的esp8285功能很强大,上述的功能是可以实现的,实现上述功能之后,esp8285就可以通过连接路由器提供的wifi,来访问外网或者调用http接口,或者mqtt接口了。当然,如果实现联网之后,可就可以通过http协议,通过透传的方式

提供对外的web服务器能力,这也是一种很强大的功能。esp8285还具备一种功能,是可以同时连接多个wifi实现多连接,这也是一种很强大的能力。后续章节会继续扩展讲解esp8285的这些能力。

至于可以应用的实际场景,我想是有很多的,我们可以自己去挖掘一下,我这里给出来一个我自己的例子:通过esp8285rxtx针脚,连接硬件设备,然后通过esp8285将硬件设备的控制功能放在针脚上,然后提供html页面,通过页面上的按钮,来控制具体的设备,实现设备的无线控制能力


---------------------
作者:了了2
链接:https://bbs.21ic.com/icview-3384206-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。

本项目分享的是国外开源ESP8285远程串口透传模块设计,附硬件/固件等。该WIFI模块是一个基于mqtt server的wifi远程透传串口模块(包含硬件与固件), 主要的功能为基于因特网(非局域网)的串口透传。serT 硬件设计开源,用户可以自由使用,制作,修改,发布, 遵循MIT协议. serT 固件设计提供二进制文件,用户可以自由使用,生产,反向,但暂不开源。serT 远程串口透传模块电路 PCB 3D截图: 应用模式: serT 支持两个配对使用(传统透传串口模式). 从其中一个设备上发出的串口信号, 会透传到另外一个设备串口的接收, 从而让设备看起来就像导线相连,从而简化了应用的开发. 多个设备配对使用(类似RS485总线模式). 从其中一个设备上发出的串口信号, 会透传到所有的串口(不包括自身)接收端.这种模式类似RS485总线, 这就要求用户在应用协议的实现上, 设备空闲态要处于接收状态,每个刻只有一个设备在发送数据,否则会出现数据错乱. 单个设备连接其他高级系统. 这相当于将一个串口透传给PC(或者其他高级系统),从而和PC上的应用软件连接, 实现功能. serPrint就是一个在电脑上打印远端serT数据的应用示例, 这个应用可以实现给远程非联网设备记录日志等有用的功能. serT设备需要一个mqtt server服务器, 已经测试eclipse(及 mosquitto搭建的broker), 百度云iot hub, emq搭建的borker, 中移物联等云, 未发现不适配问题. 这些有很多是免费或者限量免费的, 用户使用成本低。 相关资料下载,或者到“相关文件”下载。 视频演示:使用serT模块远程读取MH-Z19二氧化碳模块的数据, mqtt 使用自建的服务器,属于另外一个运行商 https://v.youku.com/v_show/id_XMjUwMTg3NTg1Mg==.html serT 项目链接, 包含硬件, 固件, 3D结构, 文档等: https://github.com/coffeerr2004001/serT serPrint( Java客户端, 用于将serT终端的数据透传显示到主机上 ) https://github.com/coffeerr2004001/serPrint serProg( serT 固件下载烧写客户端) https://github.com/coffeerr2004001/serProg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值