在本教程中,我们将学习如何使用 TTGO ESP32 和 Visuino 从互联网上获取基于位置的天气数据。
第 1 步:您需要什么
第 2 步:OpeanWeatherMap API
并创建一个帐户,然后导航到 API 页面以复制 API 密钥
您可以在此上找到有关 API 的更多文档
第 3 步:启动 Visuino,并选择 Arduino TTGO T-Display ESP32 Board Type
Visuino:也需要安装。下载免费版本或注册免费试用。
启动Visuino,如第一张图所示点击Visuino中Arduino组件(图1)上的“工具”按钮出现对话框时,选择“TTGO T-Display ESP32”,如图2所示
第 4 步:在 Visuino 中设置 WiFi
选择 TTGO T-Display ESP32 board 并在属性窗口中展开“Modules>WiFi>Connect To Access Points
-
单击连接到接入点 3 点
-
在 AccessPoints 窗口中,将“WiFi Access Point”拖到左侧
-
在属性窗口中设置 SSID(您的 WiFi 热点或路由器的名称)
-
在属性窗口中设置密码(您的 WiFi 热点或路由器的密码)
-
关闭接入点窗口
选择TTGO T-Display ESP32 board 并在属性窗口中展开“ Modules > WiFi > Sockets
-
点击 Sockets 3 Dots
-
在“套接字窗口”中,将TCP/IP 安全客户端 (SSL)拖到左侧
-
在属性窗口中将主机设置为:api.openweathermap.org/
-
关闭“套接字窗口”
第 5 步:在 Visuino 设置显示中
选择TTGO T-Display ESP32板并在属性窗口中展开“模块>显示>方向
将方向设置为:goRight
选择TTGO T-Display ESP32 board 并在属性窗口中展开“ Modules > Display > Elements
单击元素3 点
-
在Elements 窗口中向左拖动Draw Bitmap在属性窗口中:
-
在位图编辑器中单击位图 3 个点 加载天气位图(图 6)并关闭位图编辑器
您可以在https://iconarchive.com/search?q=weather找到其他位图
-
在“元素窗口”中将“绘制文本”拖到左侧,在属性窗口中将大小设置为 3,将“x”设置为 80,然后在文本中放置您的位置,在我们的例子中是“柏林”
-
在“元素窗口”中将“文本字段”拖到左侧,在属性窗口中将大小设置为 3,将“x”设置为 80,将“y”设置为 30
-
在“元素窗口”中将“文本字段”拖到左侧,在属性窗口中将大小设置为 2,将“x”设置为 90,将“y”设置为 60,将颜色设置为“aclYellow”
-
在“元素窗口”中将“文本字段”拖到左侧,在属性窗口中将大小设置为 2,将“x”设置为 60,将“y”设置为 80,将颜色设置为“aclYellowGreen”
-
在“元素窗口”中将“绘制文本”拖到左侧,在属性窗口中将大小设置为 2,将“y”设置为 80,将文本设置为“WIND”
-
在“元素窗口”中将“绘制文本”拖到左侧,在属性窗口中将大小设置为 2,将“y”设置为 100,将文本设置为“湿度”
-
在“元素窗口”中将“文本字段”拖到左侧,在属性窗口中将大小设置为 2,将“x”设置为 110,将“y”设置为 100,将颜色设置为“aclTurquoise”
关闭元素窗口
第 6 步:在 Visuino 添加组件
-
添加“ HTTP Client ”组件
-
选择“ HTTPClient1 ”并在属性窗口中将 Host 设置为 api.openweathermap.org
-
单击请求3 点
-
在“请求窗口”中将“GET”拖到左侧
-
在属性窗口中,将URL设置为:/data/2.5/weather ?q=Berlin&units=metric&APPID=123456重要提示!:在 URL 中将末尾的 123456 替换为您的 API 密钥也将“Berlin”替换为您所在城市的名称
-
关闭请求窗口
-
添加“ Char To Text ”组件
-
选择“ CharToText1 ”并在属性窗口中将 Max Length 设置为 2000
-
添加“开始”组件
-
添加“时钟发生器”组件
-
选择“ ClockGenerator1 ”,在属性窗口中设置频率为0.0016,这是10分钟左右,所以数据每10分钟刷新一次,你可以根据需要改变频率
-
添加“延迟”组件并在属性窗口中将“间隔(uS)”设置为 2000000
第 7 步:在 Visuino 中解析 JSON
用鼠标右键单击“SplitJSON1”并在菜单中单击“解析 JSON 对象..”在“JSON 对象”窗口中粘贴此示例代码(将YOURAPIKEY 替换为您在帐户中获得的 API 密钥或复制粘贴以下内容:
{"coord":{"lon":13.4105,"lat":52.5244},"weather":[{"id":800,"main":"Clear","description":"晴空","icon ":"01d"}],"base":"stations","main":{"temp":25.91,"feels_like":25.5,"temp_min":24.99,"temp_max":27.16,"pressure":1010 “湿度”:36},“能见度”:10000,“风”:{“速度”:1.79,“度”:303,“阵风”:7.15},“云”:{“所有”:0}, "dt":1624722776,"sys":{"type":2,"id":2011538,"country":"DE","sunrise":1624675484,"sunset":1624736011},"timezone":7200, "id":2950159,"name":"柏林",“鳕鱼”:200}
关闭“ JSON 对象”窗口
“ SplitJSON1 ”组件现在将创建新引脚
第 8 步:在 Visuino 中连接组件
-
将“ ClockGenerator1 ”引脚输出连接到“ HTTPClient1 ”引脚时钟和“Delay1”引脚启动
-
将“ Start1 ”引脚 [Out] 连接到“ HTTPClient1 ”引脚时钟和“Delay1”引脚 Start
-
将“ HTTPClient1 ”引脚内容连接到“ CharToText1 ”引脚输入
-
将“ HTTPClient1 ”引脚连接到TTGO T-Display ESP32 > WiFi>TCP Secure Client1 pin In
-
将“ Delay1 ”引脚输出连接到“ CharToText1 ”引脚时钟和TTGO T-Display ESP32 > WiFi>TCP Secure Client1 引脚断开连接
-
将“ CharToText1 ”引脚输出连接到“ SplitJSON1 ”引脚输入
-
将“ SplitJSON1 > temp连接到TTGO T-Display ESP32 >Text Field1 pin In
-
将“ SplitJSON1 >描述连接到TTGO T-Display ESP32 >Text Field2 pin In
-
将“ SplitJSON1 > speed连接到TTGO T-Display ESP32 >Text Field3 pin In
-
将“ SplitJSON1 >湿度连接到TTGO T-Display ESP32 >Text Field4 pin In
注意:您也可以使用“SplitJSON1”组件中的其他引脚
第 9 步:生成、编译和上传代码
在 Visuino 中,在底部单击“构建”选项卡,确保选择了正确的端口,然后单击“编译/构建和上传”按钮。
第 10 步:播放
如果您为 TTGO ESP32 模块供电,它将连接到网络并显示当前天气数据。
恭喜!您已经使用 Visuino 完成了您的项目。还附上了我为本教程创建的 Visuino 项目,
注意:在 Visuino 中打开文件项目时,将 WiFi 设置(接入点和密码)更改为您的设置并在 URL 末尾添加 API KEY