本文,我们将讨论如何构建网络服务器,以借助库来获取Wi-Fi网络凭据,将其保存到SPIFFS文件中,紧接着,我们将构建一个模块,使您可以使用红外线控制电视。

到目前为止,Sketch中已使用以下代码对用于将ESP8266连接到Wi-Fi网络的SSID和密码进行了硬编码:

从网络浏览器选择Wi-Fi网络和密码后,现在我们已连接到Wi-Fi网络:

编译并使用此代码刷新ESP8266之后,请拿起手机,寻找周围的Wi-Fi网络。 您将看到一个名为ESP_AP的网络。 连接到它,输入密码changeit,然后单击“登录到网络”。 如果没有看到此消息,请转到Web浏览器并尝试访问任何链接,或在地址栏中输入192.168.4.1。 您将被重定向到此页面:

在此页面中,您将看到定义的接入点名称,ESP_AP和四个按钮,以下列表中对此进行了说明:

选择Wi-Fi网络并输入密码后,串行控制台中的输出将显示ESP已连接到Wi-Fi; 它会并且还将显示路由器分配的IP地址,如以下屏幕截图所示:

注意:您可以添加一个连接到GPIO的硬件按钮,当按下该按钮时,可以删除Wi-Fi凭据,可以格式化闪存或删除其中的一些文件。 因此,如果您要更改Wi-Fi网络或Wi-Fi密码,则不必强制刷新Sketch。

设置页面添加参数

从页面保存的唯一参数是网络的SSID和密码。 让我们添加其他参数,例如MQTT服务器,端口,用户,密码和主题,并将其保存到SPIFFS中的配置文件中。

定义稍后将用于连接到MQTT代理的CLIENT_ID:

总之,这就是您可以使用WiFiManager库执行的操作。 创建一个强制门户,允许您使用Wi-Fi凭据和自定义参数设置ESP8266。 您可以在任何项目中使用此库,在这些项目中,用户可以给用户提供使用不同值配置其ESP的功能。

ESP8266和红外通讯

现在,让我们看看如何使用ESP8266打开/关闭松下电视。 可以通过修改地址和值将其扩展到其他电视品牌。

硬件

原理图

软件和库

首先,让我们安装库。 请转到**Sketch | Include Library | Manage Libraries…**并搜索库,如以下屏幕截图所示:

安装库并完成与ESP的连接后,让我们使用以下代码在MQTT主题上发送打开或关闭Panasonic TV的命令。 由于使用了相同的红外命令来打开或关闭电源,因此您只需要在MQTT主题上接收一些信息即可将红外命令发送到电视:

现在,使用MyMQTT Android应用程序,尝试向ir_topic发送命令以启动或停止电视。

详情参阅 - 亚图跨际