第18篇ESP32platformio-arduino框架-ili9488-3.5lcd显示时间天气

第18篇ESP32platformio-arduino框架-ili9488-lcd显示时间天气

第18篇esp32ili9488lcd显示时间天气

连接方法:

修改WIFI:

关键代码 

void setup()
{Serial.begin(115200);WiFi.mode(WIFI_STA);WiFi.begin(ssid,password);Serial.print("\r\nConnecting to ");//serial:串口函数,serial.print:经由串口的打印函数Serial.print(ssid);Serial.println("...");while(WiFi.status()!= WL_CONNECTED){//返回值由WiFi连接状态决定delay(1000);//while循环每一秒检查一次Serial.print("Waiting for ");// Serial.print(j++);Serial.println("sss...");}//————————————————
//版权声明:本文为CSDN博主「txwtech」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
//原文链接:https://blog.csdn.net/txwtech/article/details/132945424//wifi.addAP("txwpp2.4g", "80438250txw@");   // 修改里面的ssid和password为你的WIFI名称和密码即可//wifiMulti.addAP("ssid2", "password2"); //这里可以设置多个常用wifi,会自动连接信号最强的//wifiMulti.addAP("ssid3", "password3");tft.init();tft.setRotation(0);  //旋转屏幕   参数为:0, 1, 2, 3 分别代表 0°,90°,180°,270°,可以设置4为镜像。tft.fillScreen(0x0000);tft.setTextColor(TFT_BLACK, bgColor);targetTime = millis() + 1000; Serial.print("正在连接WIFI ");Serial.println(WiFi.SSID());while (WiFi.status()!= WL_CONNECTED) {for(byte n=0;n<10;n++){ //每500毫秒检测一次状态loading(50);}}while(loadNum < 200){ //让动画走完loading(1);}Serial.print("本地IP: ");Serial.println(WiFi.localIP());//Serial.println("启动UDP");Udp.begin(localPort);//Serial.print("端口号: ");//Serial.println(Udp.localPort());//Serial.println("等待同步...");setSyncProvider(getNtpTime);setSyncInterval(300);TJpgDec.setJpgScale(1);TJpgDec.setSwapBytes(true);TJpgDec.setCallback(tft_output);//TJpgDec.drawJpg(0,0,watchtop, sizeof(watchtop));TJpgDec.drawJpg(0,0,img240_10, sizeof(img240_10));//顶部图标显示//TJpgDec.drawJpg(0,220,watchbottom, sizeof(watchbottom));//绘制一个视口// tft.setViewport(0, 20, 240, 200);// tft.fillScreen(0x0000);// tft.fillRoundRect(0,0,240,200,5,bgColor);//实心圆角矩形tft.setViewport(0, 20, 320, 460);tft.fillScreen(0x0000);tft.fillRoundRect(0,0,320,460,5,bgColor);//实心圆角矩形//tft.resetViewport();//绘制线框tft.drawFastHLine(0,34,320,TFT_BLACK);//240tft.drawFastVLine(150,0,34,TFT_BLACK);tft.drawFastHLine(0,426,320,TFT_BLACK); //240tft.drawFastVLine(60,426,34,TFT_BLACK);tft.drawFastVLine(160,426,34,TFT_BLACK);getCityCode();  //获取城市代码digitalClockDisplay();TJpgDec.drawJpg(230,387,humidity, sizeof(humidity));  //湿度图标TJpgDec.drawJpg(161,428,temperature, sizeof(temperature));  //温度图标getCityWeater();digitalClockDisplay();imgPlant();  //一定要JPG格式的图片才能显示getCityWeater();}time_t prevDisplay = 0; // 显示时间
unsigned long weaterTime = 0;void loop(){if (now() != prevDisplay) {prevDisplay = now();digitalClockDisplay();}if(millis() - weaterTime > 300000){ //5分钟更新一次天气weaterTime = millis();getCityWeater();}scrollBanner();imgPlant();  //一定要JPG格式的图片才能显示
}// 发送HTTP请求并且将服务器响应通过串口输出
void getCityCode(){String URL = "http://wgeo.weather.com.cn/ip/?_="+String(now());WiFiClient client;//创建 HTTPClient 对象HTTPClient httpClient;httpClient.begin(client,URL);//设置请求头中的User-AgenthttpClient.setUserAgent("Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");httpClient.addHeader("Referer", "http://www.weather.com.cn/");//启动连接并发送HTTP请求int httpCode = httpClient.GET();Serial.print("Send GET request to URL: ");Serial.println(URL);//如果服务器响应OK则从服务器获取响应体信息并通过串口输出if (httpCode == HTTP_CODE_OK) {String str = httpClient.getString();int aa = str.indexOf("id=");if(aa>-1){//cityCode = str.substring(aa+4,aa+4+9).toInt();cityCode = str.substring(aa+4,aa+4+9);Serial.println(cityCode); getCityWeater();}else{Serial.println("获取城市代码失败");  }}else {Serial.println("请求城市代码错误:");Serial.println(httpCode);}//关闭ESP32与服务器连接httpClient.end();
}

platformio.ini

; PlatformIO Project Configuration File
;
;   Build options: build flags, source filter
;   Upload options: custom upload port, speed and extra flags
;   Library options: dependencies, extra library storages
;   Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino
upload_speed = 921600
upload_port = COM8
monitor_port = 115200

工程源代码:

https://download.csdn.net/download/txwtech/88417218

第1篇:Arduino与ESP32开发板的安装方法

第2篇:ESP32 helloword第一个程序示范点亮板载LED

第3篇:vscode搭建esp32 arduino开发环境

第4篇:vscode+platformio搭建esp32 arduino开发环境

​​​​​​第5篇:doit_esp32_devkit_v1使用pmw呼吸灯实验

第6篇:ESP32连接无源喇叭播放音乐《涛声依旧》

第7篇:ESP32连接按钮点亮LED无源喇叭播放声音

​​​​​​第8篇:ESP32连接超声波HC-SR04测距点亮LED无源喇叭播放声音

第9篇:ESP32超声波HC-SR04Arduino类库编写

第10篇:ESP32外部中断功能的使用

第11篇:ESP32vscode_platformio_idf框架helloworld点亮LED

第12篇:ESP32模拟SPI驱动12864LCD_ST7920显示屏

第13篇:ESP32 idf wifi联网使用SNTP同步网络时间LCD ST7920液晶屏显示

第14篇ESP32 idf wifi联网_WiFi STA 模式(连接到WIFI)LCD ST7920液晶屏显示
第15篇ESP32 idf框架 wifi联网_WiFi AP模式_手机连接到esp32开发板

第16篇ESP32 platformio_arduino框架 wifi联网_连接WiFi热点并连接tcp server收发数据进行通讯
第17篇ESP32 platformio_arduino框架 AP热点与AP+STA同时存在模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/158835.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java设计模式:Callback

介绍 回调&#xff08;Callback&#xff09;是一种设计模式&#xff0c;在这种模式中&#xff0c;一个可执行的代码被作为参数传递给其他代码&#xff0c;接收方的代码可以在适当的时候调用它。 在真实世界的例子中&#xff0c;当我们需要在任务完成时被通知时&#xff0c;我…

Qt工具开发,该不该跳槽?

Qt工具开发&#xff0c;该不该跳槽? 就这样吧&#xff0c;我怕你跳不动。 嵌入式UI&#xff0c;目前趋势是向着LVGL发展。QT已经在淘汰期了。很多项目还在用&#xff0c;但技术上已经落后。QT短期内不会全面淘汰&#xff0c;但退位让贤的大趋势已经很清楚了。 最近很多小伙伴…

springboot 志同道合交友网站演示

springboot 志同道合交友网站演示 liu1113625581

百度开放平台第三方代小程序开发,授权事件、消息与事件通知总结

大家好&#xff0c;我是小悟 关于百度开放平台第三方代小程序开发的两个事件接收推送通知&#xff0c;是开放平台代小程序实现业务的重要功能。 授权事件推送和消息与事件推送类型都以event的值判断。 授权事件推送通知 授权事件推送包括&#xff1a;推送票据、授权成功、取…

排序算法-希尔排序法(ShellSort)

排序算法-希尔排序法&#xff08;ShellSort&#xff09; 1、说明 我们知道当原始记录的键值大部分已排好序的情况下插入排序法非常有效&#xff0c;因为它不需要执行太多的数据搬移操作。希尔排序法是D.L.Shell在1959年7月发明的一种排序法&#xff0c;可以减少插入排序法中数…

微信小程序入门

目录 一.微信小程序简介 二. 什么是小程序&#xff1f; 三.小程序商城项目案例 四.小程序之入门案例 json配置 wxml模板 wxss样式 js逻辑交互 测试结果 一.微信小程序简介 微信小程序是一种运行在微信客户端内的应用程序&#xff0c;它以小巧、轻量、便捷的特点受到广…

androidx.appcompat.widget.Toolbar最右边设置控件不能仅靠最右边

androidx.appcompat.widget.Toolbar最右边设置控件不能仅靠最右边 Android Toolbar左、中、右对齐-CSDN博客&#xfeff;&#xfeff;Android Toolbar左、中、右对齐默认的Android Toolbar中添加子元素view是从左到右依次添加。需要注意的是&#xff0c;Android Toolbar为自身的…

推荐几款简单易用的协作化项目管理工具

您是否正在寻找一种有效且简单的项目管理工具来帮助您与团队成员协作?项目管理工具在当今的商业世界中已经变得必不可少&#xff0c;因为它们帮助团队保持组织和生产力。找到合适的工具是困难的&#xff0c;因为有太多的选择。有些工具是为特定类型的项目设计的&#xff0c;而…

腾讯云国际站-阿里云OSS如何迁移到腾讯云COS?腾讯云cos迁移教程

下面小编将介绍当源对象存储部署在阿里云国际版OSS 时&#xff0c;如何配置全托管迁移任务和半托管迁移任务&#xff0c;实现顺利迁移数据至腾讯云国际版COS。 准备工作 阿里云对象存储 OSS 创建 RAM 子账号并授予相关权限&#xff1a; 登录 RAM 控制台。选择人员管理 > …

二分查找:如何用最省内存的方式实现快速查找功能?

文章来源于极客时间前google工程师−王争专栏。 有序数据集合的查找算法&#xff1a;二分查找(Binary Search)算法&#xff0c;也叫折半查找算法。二分查找的思想非常简单&#xff0c;但是难掌握好&#xff0c;灵活运用更加困难。 问题&#xff1a;假设有1000万个整数数据&…

S32K1xx的MBD工具箱加载及激活

1、安装Matlab&#xff0c;本次使用Matlab2022b 2、打开Matlab&#xff0c;加载含有MBD工具的目录&#xff0c;如下 3、双击第一个---安装&#xff0c;正常安装就可以 4、双击第二个---安装&#xff0c;正常安装就可以 5、找到MBD的安装位置如下 C:\Users\Administrator\App…

应用在汽车发动机温度检测中的高精度温度传感芯片

汽车发动机是为汽车提供动力的装置&#xff0c;是汽车的心脏&#xff0c;决定着汽车的动力性、经济性、稳定性和环保性。根据动力来源不同&#xff0c;汽车发动机可分为柴油发动机、汽油发动机、电动汽车电动机以及混合动力等。 常见的车用温度传感器有进气温度传感器、变速器…

C++智能指针(三)——unique_ptr初探

与共享指针shared_ptr用于共享对象的目的不同&#xff0c;unique_ptr是用于独享对象。 文章目录 1. unqiue_ptr的目的2. 使用 unique_ptr2.1 初始化 unique_ptr2.2 访问数据2.3 作为类的成员2.4 处理数组 3. 转移所有权3.1 简单语法3.2 函数间转移所有权3.2.1 转移至函数体内3.…

Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)

Puppeteer实现上下滚动、打开新Tab、用户数据保存&#xff08;三&#xff09; Puppeteer实现上下滚动、打开新Tab、用户数据保存&#xff08;三&#xff09;一、实现上下滚动二、打开新Tab三、用户数据保存四、效果演示 一、实现上下滚动 在自动化测试中&#xff0c;我们需要能…

Blender:使用立方体制作动漫头像

好久没水文章 排名都掉到1w外了 ~_~ 学习一下blender&#xff0c;看能不能学习一点曲面变形的思路 一些快捷键 ctrl 空格&#xff1a;区域最大化&#xff0c;就是全屏 ctrl alt 空格&#xff1a;也是区域最大化 shift b&#xff1a;框选区域然后最大化显示该范围 shift 空…

XGBoost+LR融合

1、背景简介 xgboostlr模型融合方法用于分类或者回归的思想最早由facebook在广告ctr预测中提出&#xff0c;其论文Practical Lessons from Predicting Clicks on Ads at Facebook有对其进行阐述。在这篇论文中他们提出了一种将xgboost作为feature transform的方法。大概的思想…

函数栈帧的创建与销毁(保姆级讲解)

局部变量是怎么创建的? 在为main函数开辟栈帧空间时&#xff0c;在一定范围内初始化成0CCCCC&#xff0c;再把里面0CCCC的一些开辟空间给局部变量使用。 为什么局部变量的值是随机值? 因为我们在为main函数开辟栈帧空间时&#xff0c;会将一定范围内空间初始成0CCCCCC里面…

【云原生】都在说云原生?到底什么是云原生?

文章目录 一、云原生是什么云原生云原生 二、云原生四要素微服务容器化DevOps 三、具体的云原生技术有哪些容器(Containers)微服务(Microservices)服务网格(Service Meshes)不可变基础设施(Immutable Infrastructure)声明式API(Deciarative API) 四、云服务器相对传统物理服务器…

小程序的入门

目录 小程序的简介 好处 安装及使用 小程序的入门案列 小程序的简介 微信小程序是一种轻量级的应用程序&#xff0c;可以在微信平台上运行。它们具有快速、便捷和低成本等特点。通过微信小程序&#xff0c;用户可以在微信内直接使用各种功能&#xff0c;而无需下载和安装额外…

python pip安装超时使用国内镜像

网络环境差的时候需要我们独立的进行相对应的包下载离线安装&#xff0c;或者给pip 加上 国内的镜像源比如加上清华的镜像源&#xff1a; 参考网址&#xff1a;pypi | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror https://mirrors.tuna.tsinghua…