欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > ESP32云开发二( http + led + lcd)

ESP32云开发二( http + led + lcd)

2025/1/19 8:40:46 来源:https://blog.csdn.net/qq_20330595/article/details/145209839  浏览:    关键词:ESP32云开发二( http + led + lcd)

文章目录

          • 前言
          • 先上效果图
          • platformio.ini
          • wokwi.toml
          • diagram.json
          • 源代码
          • 编译
          • 编译成功
          • 上传云端
          • 完结撒花⭐⭐⭐⭐⭐

前言

阅读此篇前建议先看 此片熟悉下wokwi
https://blog.csdn.net/qq_20330595/article/details/144289986

先上效果图
Column 1Column 2
在这里插入图片描述在这里插入图片描述
platformio.ini

在这里插入图片描述

wokwi.toml

在这里插入图片描述

diagram.json

注意这里代码是自动生成的
在这里插入图片描述

源代码
// Learn about the ESP32 WiFi simulation in
// https://docs.wokwi.com/guides/esp32-wifi#include <WiFi.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <HTTPClient.h>LiquidCrystal_I2C LCD = LiquidCrystal_I2C(0x27, 16, 2);#define NTP_SERVER "pool.ntp.org"
#define UTC_OFFSET 0
#define UTC_OFFSET_DST 0const int ledPin = 27; // 定义27号引脚为LED引脚void sendHttpRequest()
{if (WiFi.status() == WL_CONNECTED){WiFiClientSecure client;HTTPClient http;client.setInsecure(); // 如果是自签名证书可以使用此行http.begin(client, "https://wanandroid.com/harmony/index/json");int httpCode = http.GET();/**/LCD.clear();LCD.setCursor(0, 0);LCD.print("Sending Http");LCD.setCursor(0, 1);LCD.print("Request..... ");if (httpCode > 0){String payload = http.getString();Serial.println("HTTP Response code: " + String(httpCode));// Serial.println("Response payload: " + payload);// 在LCD的第二行显示HTTP返回值的长度LCD.clear();LCD.setCursor(0, 0);LCD.print("httpCode: ");LCD.print(String(httpCode));LCD.setCursor(0, 1);LCD.print("Len: ");LCD.print(payload.length());}else{Serial.print("Error on HTTP request: ");      // 输出错误信息Serial.println(http.errorToString(httpCode)); // 转换错误代码为可读格式}http.end(); // 结束请求}else{Serial.println("WiFi Disconnected");}
}void spinner()
{static int8_t counter = 0;const char *glyphs = "\xa1\xa5\xdb";LCD.setCursor(15, 1);LCD.print(glyphs[counter++]);if (counter == strlen(glyphs)){counter = 0;}
}void printLocalTime()
{struct tm timeinfo;// 如果获取本地时间失败,则打印错误信息并返回if (!getLocalTime(&timeinfo)){// 在LCD的第二行显示连接错误信息LCD.setCursor(0, 1);LCD.println("Connection Err");return;}// 在LCD的第一行第9列开始显示当前时间LCD.setCursor(8, 0);LCD.println(&timeinfo, "%H:%M:%S");// 在LCD的第二行显示当前日期和时区LCD.setCursor(0, 1);LCD.println(&timeinfo, "%d/%m/%Y   %Z");
}/*** @brief 初始化设置函数** 该函数用于初始化串口通信、LCD显示屏,并连接到WiFi网络。* 它会在设备启动时执行一次。*/
void setup()
{// 设置27号引脚为输出模式pinMode(ledPin, OUTPUT);// 初始化串口通信,波特率为115200Serial.begin(115200);// 初始化LCD显示屏LCD.init();// 打开LCD背光LCD.backlight();// 在LCD的第一行显示连接信息LCD.setCursor(0, 0);LCD.print("Connecting to ");// 在LCD的第二行显示WiFi信息LCD.setCursor(0, 1);LCD.print("WiFi ");// 开始连接到WiFi网络,SSID为"Wokwi-GUEST",密码为空,超时时间为6秒WiFi.begin("Wokwi-GUEST", "", 6);// 等待WiFi连接成功while (WiFi.status() != WL_CONNECTED){// 延迟250毫秒delay(250);// 显示连接状态的旋转图标spinner();}Serial.println("");Serial.println("WiFi connected");Serial.print("IP address: ");Serial.println(WiFi.localIP());LCD.clear();LCD.setCursor(0, 0);LCD.println("Online");LCD.setCursor(0, 1);LCD.println("Updating time...");configTime(UTC_OFFSET, UTC_OFFSET_DST, NTP_SERVER);
}void loop()
{// printLocalTime();// delay(250);// delay(4000);// sendHttpRequest();// 循环输出高低电平digitalWrite(ledPin, HIGH);LCD.clear();LCD.setCursor(0, 0);LCD.println("HIGH");delay(1000);digitalWrite(ledPin, LOW);LCD.clear();LCD.setCursor(0, 0);LCD.println("LOW");delay(1000);
}
编译

Ctrl+Alt+B

编译成功

在这里插入图片描述
注意这里输出的固件路径对应前面wokwi.toml的内容

上传云端

Ctrl+Shift+P
在这里插入图片描述

完结撒花⭐⭐⭐⭐⭐

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com