手机连接ESP8266的WIFI,进入内置网页,输入要显示的内容,在OLED显示屏上显示文本

本文主要是介绍手机连接ESP8266的WIFI,进入内置网页,输入要显示的内容,在OLED显示屏上显示文本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这篇技术博客中,我们将探讨如何使用ESP8266 Wi-Fi 模块和SSD1306 OLED显示屏,构建一个简易的信息显示和交互系统。此系统能够让用户通过一个简单的Web界面输入信息,并将其显示在OLED屏幕上。这种设备的应用非常广泛,可以用于智能家居系统、信息提示牌或任何需要远程显示信息的场景。

设备 连线

OLEDESP8266含义
GNDGND地线
VCC3V电源
SCLD1时钟线
SDAD2通信数据线

在这里插入图片描述

web server 效果图

在这里插入图片描述

OLED 显示效果

在这里插入图片描述

只支持英文信息的显示和数字。

硬件组成

本项目主要使用两个核心组件:

  1. ESP8266 Wi-Fi模块:这是一个低成本的Wi-Fi芯片,具备完整的TCP/IP协议栈和微控制器功能。
  2. SSD1306 OLED显示屏:一种小型显示屏,分辨率为128x64,适合显示文本和简单图形。

软件设置

项目的软件部分涉及到几个关键步骤:

  • 初始化显示屏:使用Adafruit的SSD1306库来初始化OLED屏幕。如果初始化失败,程序将不会继续执行。
  • 配置ESP8266为AP模式:将ESP8266配置为接入点(AP)模式,这样用户可以直接连接到由ESP8266创建的Wi-Fi网络。
  • 启动Web服务器:运行一个简单的Web服务器,允许用户通过浏览器与ESP8266进行交互。

功能实现

显示启动信息

一旦设备启动,它会在OLED屏上显示如何连接到Wi-Fi网络的信息,包括网络的SSID和一个基础的Web链接。

Web服务器交互

用户可以通过访问在OLED显示屏上提供的Web地址来输入想要显示的消息。这通过一个简单的HTML表单完成,提交后消息会发送到ESP8266。

消息显示

提交的信息将通过Web服务器的路由处理器接收,并显示在OLED屏幕上。同时,服务器会向用户确认消息已显示。

编程注意事项

在代码中,我们首先定义了所有必要的库和参数,如屏幕尺寸和Wi-Fi设置。主要的逻辑包括设置AP模式、初始化Web服务器,并创建处理HTTP请求的函数。这些功能的实现体现了如何在嵌入式系统中处理网络通信和显示控制的结合使用。

此外,代码中还体现了良好的错误处理机制,如初始化失败时,程序将进入死循环,确保不会执行后续的不稳定操作。

全部代码如下

 
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET    -1Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);const char* ssid = "ESP8266-AP";
const char* password = "12345678";ESP8266WebServer server(80);void setup() {Serial.begin(115200);// 初始化显示屏if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {Serial.println(F("SSD1306 allocation failed"));for (;;); // 死循环,无法初始化则不继续执行}display.clearDisplay();// 显示启动信息displayStartupMessage();// 设置ESP8266为AP模式WiFi.softAP(ssid, password);IPAddress myIP = WiFi.softAPIP();Serial.print("AP IP address: ");Serial.println(myIP);// 启动Web服务器setupWebServer();
}void loop() {server.handleClient(); // 处理客户端请求
}void displayStartupMessage() {display.setTextSize(1);display.setTextColor(WHITE);display.setCursor(0, 0);display.println("Connect WiFi ");display.println(ssid);display.println("visit");display.println("http://192.168.4.1");display.println("to set content.");display.display();
}void handleRoot() {String message = "Enter message to display: <form action=\"/display\"><input type=\"text\" name=\"message\"><input type=\"submit\"></form>";server.send(200, "text/html", message);
}void handleDisplay() {String message = server.arg("message"); // 获取用户输入的消息display.clearDisplay();display.setTextSize(1);display.setTextColor(WHITE);display.setCursor(0, 0);display.println(message);display.display();server.send(200, "text/plain", "Message displayed: " + message);
}void setupWebServer() {server.on("/", HTTP_GET, handleRoot);server.on("/display", HTTP_GET, handleDisplay); // 处理显示消息的路径server.begin();Serial.println("HTTP server started");
}

结论

通过ESP8266和SSD1306,我们能够创建一个简单而强大的信息显示系统,不仅成本低廉,而且实现了用户与设备的实时交互。这个项目示范了物联网设备开发的基本概念,也提供了一个扩展其他功能和接口的良好起点。

这篇关于手机连接ESP8266的WIFI,进入内置网页,输入要显示的内容,在OLED显示屏上显示文本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1050896

相关文章

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

python获取网页表格的多种方法汇总

《python获取网页表格的多种方法汇总》我们在网页上看到很多的表格,如果要获取里面的数据或者转化成其他格式,就需要将表格获取下来并进行整理,在Python中,获取网页表格的方法有多种,下面就跟随小编... 目录1. 使用Pandas的read_html2. 使用BeautifulSoup和pandas3.

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调

一文详解如何在Python中从字符串中提取部分内容

《一文详解如何在Python中从字符串中提取部分内容》:本文主要介绍如何在Python中从字符串中提取部分内容的相关资料,包括使用正则表达式、Pyparsing库、AST(抽象语法树)、字符串操作... 目录前言解决方案方法一:使用正则表达式方法二:使用 Pyparsing方法三:使用 AST方法四:使用字

C#TextBox设置提示文本方式(SetHintText)

《C#TextBox设置提示文本方式(SetHintText)》:本文主要介绍C#TextBox设置提示文本方式(SetHintText),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录C#TextBox设置提示文本效果展示核心代码总结C#TextBox设置提示文本效果展示核心代

使用Python实现全能手机虚拟键盘的示例代码

《使用Python实现全能手机虚拟键盘的示例代码》在数字化办公时代,你是否遇到过这样的场景:会议室投影电脑突然键盘失灵、躺在沙发上想远程控制书房电脑、或者需要给长辈远程协助操作?今天我要分享的Pyth... 目录一、项目概述:不止于键盘的远程控制方案1.1 创新价值1.2 技术栈全景二、需求实现步骤一、需求

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.