1. 项目概述与核心价值
如果你手头有一块TTGO ESP32开发板,并且对加密货币市场有那么点兴趣,想自己动手做个能实时显示价格的小玩意儿,那这个项目正对你的胃口。它不是什么高深莫测的金融分析工具,而是一个典型的物联网(IoT)应用实战:让一个嵌入式设备连上网,从公开的API获取数据,然后漂亮地展示在一块小屏幕上。整个过程,我们不用写一行传统的C++代码,而是借助一个叫Visuino的图形化编程工具来完成。这听起来可能有点“玩具”属性,但背后涉及的技术栈——WiFi连接、HTTPS安全通信、SSL证书处理、JSON数据解析——都是当今物联网开发,尤其是涉及网络数据交互时,绕不开的核心技能。
这个项目的核心价值在于,它把一个看似复杂的“安全网络数据获取”流程,拆解成了一个个可视化的、可拖拽的模块。你不需要从零开始研究ESP32的WiFi库、理解mbedTLS的复杂配置,或者手动拼接HTTP请求字符串。Visuino帮你封装了这些底层细节,让你能更专注于逻辑的构建和数据的呈现。对于嵌入式开发的初学者、快速原型验证者,或者那些更偏爱视觉化逻辑搭建的开发者来说,这是一种高效且直观的学习和实践方式。我们将以获取以太坊(Ethereum)的实时价格、24小时涨跌幅等数据为例,最终在TTGO T-Display那块240x135像素的彩色LCD上,清晰地展示出来。
2. 硬件与软件环境准备
2.1 核心硬件:TTGO T-Display ESP32解析
TTGO T-Display ESP32是一款非常流行的All-in-One开发板,它之所以成为本项目的不二之选,主要基于以下几个关键特性:
首先,它集成了ESP32-WROVER模组,这意味着它自带WiFi和蓝牙功能,满足了项目联网的基本需求。更重要的是,它板载了一块1.14英寸的IPS液晶屏,分辨率是240x135,驱动芯片是ST7789。这意味着我们不需要额外连接任何显示模块,大大简化了硬件连接和编程的复杂性。对于显示价格、文本信息来说,这个屏幕的尺寸和精度完全够用。
其次,它的引脚布局和电源设计对嵌入式显示应用很友好。屏幕背光由独立的GPIO控制,我们可以通过编程调节亮度甚至关闭它以节能。板载的按键(通常标记为BOOT,可复用为用户按键)和USB-C接口,使得供电和程序上传都非常方便。在选择时,你需要注意区分TTGO T-Display的不同版本(如V1.0, V1.1),但Visuino的组件库通常能很好地兼容主流版本。
注意:在开始焊接或连接任何外设之前,建议先用USB线连接电脑,测试板载的LED和屏幕是否能被基本示例程序点亮。这能快速排除硬件故障。
2.2 核心软件:Visuino图形化开发环境
Visuino是一个基于图形化数据流编程的集成开发环境(IDE)。它的核心理念是“连线即编程”。你将代表不同功能(如WiFi连接、HTTP请求、JSON解析、屏幕显示)的组件拖放到设计界面,然后通过虚拟的“导线”连接它们的输入输出引脚,从而定义数据流和控制逻辑。
对于本项目,Visuino的几个优势非常突出:
- 抽象底层复杂性:ESP32的Arduino核心库虽然强大,但配置SSL客户端、处理HTTPS握手、管理证书链对于新手来说门槛不低。Visuino的“TCP/IP Secure Client (SSL)”组件内部封装了这些细节,你只需要提供证书和服务器地址。
- 可视化数据流:JSON数据从API返回后,如何提取
current_price这个字段?在Visuino中,你使用“Split JSON Array”组件,它会自动分析你提供的JSON样本,并为每个字段生成一个独立的输出引脚。你只需要把current_price引脚连接到显示文本框的输入引脚即可,直观地避免了在代码中手动解析字符串容易出错的问题。 - 快速迭代与调试:修改一个参数(比如刷新频率)或调整UI布局(比如文字位置),只需要在属性窗口中点击几下,重新编译上传即可,比反复修改和验证代码要快。
你需要从Visuino官网下载并安装软件。它有免费版本,功能足够完成本项目。安装过程很简单,一路下一步即可。安装完成后,首次运行可能会提示你安装或选择Arduino IDE的路径,这是因为Visuino最终需要调用Arduino CLI或原版IDE来编译代码并上传到硬件。请确保你的系统中已经安装了Arduino IDE,并且已经通过Boards Manager安装了“ESP32”开发板支持包。这是Visuino能正确编译ESP32项目的先决条件。
3. 项目核心原理与架构设计
3.1 安全网络通信:SSL/TLS与证书的作用
当我们用浏览器访问https://api.coingecko.com时,地址栏的小锁图标表示连接是安全的。这种安全由SSL/TLS协议保障。对于我们的ESP32设备,它作为客户端,要与Coingecko的服务器建立同样的安全连接,核心在于身份验证和加密。
服务器会向客户端出示一个“身份证”,即SSL证书。这个证书由受信任的证书颁发机构(CA,如DigiCert)签发,里面包含了服务器的域名、公钥等信息,并由CA进行数字签名。ESP32设备需要预先知道并信任签发该服务器证书的CA。在本项目中,我们手动获取的正是“DigiCert SHA2 Extended Validation Server CA”这个根证书。
为什么不能跳过证书验证?理论上,你可以配置客户端跳过证书验证(不推荐),但这会面临“中间人攻击”风险。恶意攻击者可以伪装成Coingecko服务器,与你设备通信并窃取或篡改数据。通过验证证书,ESP32确保了它正在与真实的、经过CA认证的api.coingecko.com通信,之后的所有数据交换才会使用该证书中的公钥进行加密。
在Visuino中,TCP/IP Secure Client (SSL)组件内部使用ESP32的mbedTLS库。我们提供的CA证书,会被该库用来验证服务器返回的证书链。验证通过后,双方协商出一个对称加密密钥,用于加密后续所有的HTTP请求和响应数据。这样,即使在公共WiFi下,价格数据在传输过程中也是密文,无法被窃听。
3.2 数据流与组件交互逻辑
整个项目的运行逻辑可以看作一个清晰的数据流水线,Visuino的组件就是这个流水线上的各个处理单元:
初始化与连接阶段:
Clock Generator(时钟发生器)以固定频率(如0.2Hz,即每5秒一次)发出脉冲信号,作为系统的主时钟。- 第一个脉冲触发
WiFi组件,使其根据预设的SSID和密码连接路由器。 - WiFi连接成功后,
TTGO ESP32板组件会输出一个[Connected]信号。这个信号触发一个Delay(延迟)组件,等待2秒(2000000微秒),确保网络稳定。 - 延迟结束后,
Delay组件的Out引脚同时做两件事:a) 触发CharToText组件准备接收数据;b) 触发TCP/IP Secure Client组件向api.coingecko.com发起SSL连接。
数据请求与获取阶段:
HTTP Client组件在收到时钟脉冲后,通过已建立的SSL连接,向指定的URL(/api/v3/coins/markets?vs_currency=eur&ids=ethereum)发送GET请求。- 服务器返回的HTTP响应(一个包含价格信息的JSON字符串)通过
Content引脚输出。
数据处理与解析阶段:
CharToText组件将接收到的原始字符流(字节数据)转换为Visuino内部可处理的文本(String)格式。- 文本被送入
Split JSON Array组件。这个组件是项目的“大脑”。你需要预先给它一个从目标API返回的JSON数据样本。它会分析样本的结构,自动识别出如current_price、price_change_percentage_24h、high_24h等字段,并为每个字段生成一个对应的输出引脚。 - 当新的JSON数据到达时,
Split JSON Array组件会自动将对应字段的值提取出来,从其相应的引脚输出。
数据可视化阶段:
Split JSON Array组件输出的数值(如current_price)被直接连接到Display模块下的Text Field(文本框)组件的[In]引脚。Text Field组件在收到新数据后,会自动更新其在屏幕上的显示内容。- 屏幕上的其他静态文本(如“High $”、“Ch % 24 Std”)则由
Draw Text组件负责绘制,它们在程序开始时绘制一次,之后不变。
这个架构的巧妙之处在于其事件驱动和数据流特性。每个组件只在收到输入信号或数据时才工作,并且数据沿着连线单向流动,使得整个程序逻辑非常清晰,易于在Visuino中搭建和调试。
4. 分步实操实现指南
4.1 获取并配置SSL证书
这是确保安全通信的第一步,也是最容易出错的一步。
访问证书获取工具:在浏览器中打开
https://projects.petrucci.ch/esp32/?page=ssl。这是一个专门为ESP32等嵌入式设备生成简化证书的在线工具。它的作用是从完整的服务器证书链中,提取出ESP32的mbedTLS库所需格式的根证书。获取目标域名证书:
- 在页面的输入框中,粘贴Coingecko API的地址:
https://api.coingecko.com。 - 点击“Get Certificate”按钮。工具会获取该域名的完整证书链。
- 在页面的输入框中,粘贴Coingecko API的地址:
选择正确的根证书:
- 页面会显示证书链。通常你会看到多个证书,从服务器证书到中间证书,最后是根证书。
- 关键步骤:找到并点击名为“DigiCert SHA2 Extended Validation Server CA”的证书图片或条目。这是签发Coingecko服务器证书的根证书机构(Root CA)。必须选择这个,而不是服务器本身的证书。选择错误会导致后续验证失败。
复制证书内容:
- 选择根证书后,下方会显示一个表格,其中有一行是“cert:”。
- 点击“cert:”后面的那个长字符串(以
-----BEGIN CERTIFICATE-----开头,以-----END CERTIFICATE-----结尾),将其完整地复制到剪贴板。确保没有遗漏任何字符,包括首尾的标记和中间的换行。
实操心得:证书字符串通常很长且格式严格。最稳妥的方法是点击该字段后,使用键盘快捷键
Ctrl+A(全选)然后Ctrl+C(复制)。直接拖动鼠标选择容易遗漏开头或结尾的横线。复制的证书内容将用于下一步Visuino的配置。
4.2 Visuino项目配置详解
启动Visuino,开始搭建我们的项目。
创建项目与选择开发板:
- 点击“File” -> “New”创建一个新项目。
- 在组件面板找到“Arduino”组件(通常在主工具栏),将其拖放到设计区。
- 选中这个Arduino组件,在右侧的“Properties”窗口中,找到“Board”属性。点击旁边的“...”按钮,在弹出的开发板选择窗口中,滚动找到并选择“TTGO T-Display ESP32”。这一步至关重要,它确保了Visuino为正确的硬件编译代码,包括屏幕驱动等。
配置WiFi连接:
- 在“Properties”窗口中,展开“Modules” -> “WiFi” -> “Connect To Access Points”。
- 点击“Connect To Access Points”旁边的“...”按钮,打开配置窗口。
- 从右侧工具箱拖拽一个“WiFi Access Point”到左侧区域。
- 选中这个新添加的接入点,在属性窗口中设置
SSID(你的WiFi网络名称)和Password(你的WiFi密码)。关闭配置窗口。
配置SSL客户端与证书:
- 在“Properties”窗口中,展开“Modules” -> “WiFi” -> “Sockets”。
- 点击“Sockets”旁边的“...”按钮。
- 拖拽一个“TCP/IP Secure Client (SSL)”到左侧。
- 选中这个SSL客户端,在属性窗口中设置
Host为:api.coingecko.com。 - 找到
CACert属性,点击旁边的“...”按钮,会打开一个文本编辑器窗口。将上一步复制的整个证书内容粘贴进去。然后关闭编辑器窗口和Sockets配置窗口。
设计屏幕显示布局:
- 展开“Modules” -> “Display” -> “Elements”,点击“...”按钮。
- 我们将创建三个数据标签和三个对应的数据显示区。
- 静态标签:拖拽三个“Draw Text”组件到左侧。分别设置它们的
Text属性为“High $”、“Ch % 24 Std”、“LAST $”。调整它们的Y坐标(如20, 48, 92),使其在屏幕上纵向排开。Size属性可以设为2,表示字体大小。 - 动态数据框:拖拽三个“Text Field”组件到左侧。将它们分别放置在对应静态标签的右侧或下方。通过设置
Y坐标(如40, 66, 110)来对齐。将它们的Color属性设置为“aclGold”(金色)以突出显示数据。Size可以设为3,让数据比标签稍大。 - (可选)添加图标:拖拽一个“Draw Bitmap”组件。设置其
X为160(屏幕右侧),Y为10。点击Bitmap属性的“...”,在打开的图片编辑器中,点击“Load”加载一个以太坊的Logo图片(可提前从网上下载小尺寸的PNG或BMP文件)。这能让显示效果更专业。
4.3 构建数据获取与处理流水线
这是逻辑构建的核心部分,我们将把各个功能组件连接起来。
添加并配置功能组件:
- 从组件工具箱中,依次找到并拖拽以下组件到设计区:
HTTP Client:用于发送网络请求。Char To Text:将二进制数据流转换为字符串。Clock Generator:系统定时器。Delay:用于控制连接后的延迟。Split JSON Array:JSON解析器。
- 配置
HTTP Client:选中它,在属性窗口设置Host为api.coingecko.com。点击Requests旁的“...”,拖入一个“GET”请求,并设置其URL为:/api/v3/coins/markets?vs_currency=usd&ids=ethereum。这里vs_currency=usd表示获取美元计价的价格,你也可以改为eur(欧元)或cny(人民币,如果API支持)。 - 配置
Char To Text:设置其Max Length为2000,确保能容纳完整的API响应。 - 配置
Clock Generator:设置Frequency为0.2。这个值代表赫兹(Hz),即每秒触发次数。0.2 Hz意味着每5秒触发一次,获取一次新数据。你可以根据API的调用频率限制和个人需求调整此值,调得太快可能被服务器限制。 - 配置
Delay:设置Interval (uS)为2000000(即2秒)。这个延迟给WiFi和SSL连接足够的稳定时间。
- 从组件工具箱中,依次找到并拖拽以下组件到设计区:
教
Split JSON Array解析数据:- 这是最关键的一步。右键点击
Split JSON Array组件,选择“Parse JSON Array...”。 - 你需要提供一个真实的JSON数据样本。最可靠的方法是直接在浏览器中访问这个URL:
https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=ethereum,你会看到返回的JSON数据。 - 将浏览器中返回的整个JSON内容(是一个被
[]包裹的对象数组)复制下来,粘贴到Visuino弹出的“JSON Array”窗口中。然后关闭窗口。 - Visuino会自动分析这个样本,并在
Split JSON Array组件上生成一系列以字段名命名的输出引脚,例如current_price,price_change_percentage_24h,high_24h等。这些引脚将输出对应字段的数值。
- 这是最关键的一步。右键点击
连接所有组件:
- 现在,开始用“导线”(鼠标拖拽连接点)按照数据流逻辑连接组件:
ClockGenerator1的Out引脚 ->HTTPClient1的Clock引脚。(定时触发HTTP请求)TTGO ESP32的[Connected]引脚 ->Delay1的Start引脚。(WiFi连上后启动延迟)Delay1的Out引脚 ->CharToText1的Clock引脚和TCP/IP Secure Client1的Disconnect引脚。(延迟结束后,准备接收数据并断开旧连接以触发重连?这里逻辑需注意,通常Disconnect不应由定时触发,可能原文有误。更合理的连接是:Delay1.Out->CharToText1.Clock;而SSL连接应由HTTP请求触发或自动管理。在实际操作中,可以先将Disconnect引脚悬空,仅做此连接测试。)HTTPClient1的Content引脚 ->CharToText1的In引脚。(传输原始数据)HTTPClient1的Out引脚 ->TCP/IP Secure Client1的In引脚。(指示HTTP客户端使用哪个Socket连接)CharToText1的Out引脚 ->SplitJSONArray1的In引脚。(传递JSON字符串)SplitJSONArray1的[High_24h]引脚 -> 第一个Text Field(显示最高价)的[In]引脚。SplitJSONArray1的[price_change_percentage_24h]引脚 -> 第二个Text Field(显示涨跌幅)的[In]引脚。SplitJSONArray1的[Current_price]引脚 -> 第三个Text Field(显示当前价)的[In]引脚。
- 现在,开始用“导线”(鼠标拖拽连接点)按照数据流逻辑连接组件:
4.4 代码生成、编译与上传
所有逻辑连接完成后,就可以生成代码并上传到硬件了。
生成与编译代码:
- 点击Visuino界面底部的“Build”标签页。
- 在“Port”下拉菜单中选择你的TTGO ESP32开发板所连接的COM端口(Windows)或串口设备(Linux/macOS)。如果端口未列出,请检查USB连接和驱动程序。
- 点击“Compile/Build and Upload”按钮。Visuino会执行以下操作:
- 将图形化设计转换为Arduino C++代码。
- 调用后台的Arduino CLI或IDE,编译代码,链接所有必要的库(WiFi, HTTPClient, ArduinoJson, TFT_eSPI等)。
- 将编译好的二进制文件通过USB上传到ESP32开发板。
监控串口输出:
- 上传完成后,你可以点击“Build”标签页中的“Serial Monitor”按钮(或使用独立的串口监视器工具,如Arduino IDE自带的)。
- 观察ESP32的启动日志。你应该能看到类似以下的信息:
- “Connecting to WiFi...”
- “WiFi connected. IP address: 192.168.x.x”
- “Connecting to api.coingecko.com...”
- “HTTPS request sent...”
- 如果出现“Certificate verification failed”等错误,请返回检查SSL证书的获取和粘贴步骤是否正确。
- 如果一切顺利,几秒钟后,TTGO T-Display屏幕上就会显示出从Coingecko API获取到的最新以太坊价格数据。
5. 深度优化、问题排查与扩展思路
5.1 性能优化与稳定性提升
一个基础功能跑通后,我们可以从以下几个方面让它变得更可靠、更实用:
网络连接稳定性处理:
- 现状:当前设计如果WiFi断开或服务器无响应,程序可能会挂起。
- 优化:在Visuino中,可以添加“Pulse Generator”和“Counter”组件来构建一个超时重试机制。例如,当
HTTP Client发起请求后,启动一个10秒的计时器。如果10秒内没有收到响应(CharToText没有输出),则通过逻辑门触发一个“复位”信号,先断开SSL连接,然后延迟片刻后重新触发WiFi连接流程。这需要利用Visuino的逻辑组件(如AND, OR, FlipFlop)进行更复杂的设计。
错误处理与状态显示:
- 现状:屏幕只显示成功获取的数据,网络错误时用户无从知晓。
- 优化:可以利用屏幕的剩余区域,添加一个状态显示区。将
TCP/IP Secure Client组件的[Error]引脚连接到一个新的Text Field。当发生错误时(如连接失败、证书错误),错误代码会显示在屏幕上。同时,可以添加一个LED指示灯组件(用屏幕上的一个彩色方块模拟),连接成功后显示绿色,请求中显示黄色,失败显示红色。
降低功耗:
- ESP32在持续连接WiFi和频繁请求时功耗不低。如果使用电池供电,可以考虑:
- 降低
Clock Generator的频率,比如改为每30秒或每分钟更新一次。 - 在两次更新之间,使用Visuino的“Deep Sleep”组件让ESP32进入深度睡眠模式,由定时器或外部按键唤醒。这需要连接ESP32的RTC引脚,并在Visuino中配置唤醒源。
- 降低
- ESP32在持续连接WiFi和频繁请求时功耗不低。如果使用电池供电,可以考虑:
数据格式化:
- API返回的价格可能是多位小数(如1482.036542),直接显示不美观。
- 优化:在
Split JSON Array的输出引脚和Text Field输入引脚之间,可以插入一个“Format Float”组件。将其Digits属性设置为2,这样1482.036542就会显示为“1482.04”。对于涨跌幅,可以设置为1位小数。
5.2 常见问题排查速查表
| 问题现象 | 可能原因 | 排查步骤与解决方案 |
|---|---|---|
| 编译错误 | 1. 未安装ESP32开发板支持包。 2. Visuino未正确指向Arduino IDE路径。 3. 库依赖冲突。 | 1. 打开Arduino IDE,通过“工具”->“开发板”->“开发板管理器”,搜索安装“ESP32”。 2. 在Visuino的“Tools”->“Options”中,检查“Arduino IDE Folder”路径是否正确。 3. 尝试在Visuino中点击“Project”->“Manage Libraries”,确保相关库(如TFT_eSPI)已安装或更新。有时需要手动在Arduino IDE中安装 ArduinoJson库。 |
| 上传失败 | 1. 串口端口选择错误或被占用。 2. 开发板型号选择错误。 3. ESP32未进入下载模式。 | 1. 拔插USB线,重新选择端口。关闭可能占用串口的其他软件(如串口监视器)。 2. 确认在Visuino中选择的板子是“TTGO T-Display ESP32”,而不是通用的“ESP32 Dev Module”。 3. 按住板上的“BOOT”按键不放,点击上传,待开始上传后再松开。 |
| 屏幕白屏或花屏 | 1. 开发板型号选择错误,导致屏幕驱动不匹配。 2. 屏幕初始化代码有误。 | 1. 这是最常见的原因。务必在Arduino组件属性中精确选择“TTGO T-Display ESP32”。 2. 检查Visuino中Display的 Orientation设置是否正确(goRight是常用横屏模式)。 |
| WiFi连接失败 | 1. SSID或密码错误。 2. WiFi信号太弱。 3. 路由器设置了MAC过滤等限制。 | 1. 仔细检查Visuino中WiFi Access Point组件的SSID和Password,区分大小写。 2. 将设备靠近路由器测试。 3. 打开串口监视器,查看具体的连接错误信息。ESP32的MAC地址可以在串口启动日志中找到。 |
| SSL证书验证失败 | 1. 复制的证书内容不完整或格式错误。 2. 证书过期(可能性较低)。 3. 服务器域名或证书链变更。 | 1.重点检查:确保证书字符串以-----BEGIN CERTIFICATE-----开头,以-----END CERTIFICATE-----结尾,中间没有多余的空格或换行错误。重新从证书工具复制粘贴。2. 重新访问证书获取工具页面,再次获取并更新证书。 3. 在Visuino的SSL客户端属性中,尝试暂时将 Allow Self Signed设置为True进行测试(仅用于调试,生产环境不安全)。 |
| HTTP请求失败(无数据) | 1. API端点URL错误。 2. 服务器响应超时或限制。 3. 网络防火墙或代理阻挡。 | 1. 用浏览器直接访问你配置的完整URL(https://api.coingecko.com/api/v3/coins/...),确认能返回JSON数据。2. 降低 Clock Generator的刷新频率,避免触发API的速率限制。3. 检查路由器或公司网络是否屏蔽了对Coingecko API的访问。尝试手机热点测试。 |
| JSON解析失败,数据不更新 | 1.Split JSON Array组件未正确学习样本。2. API返回的数据结构发生变化。 | 1. 右键点击Split JSON Array组件,选择“Parse JSON Array...”,确认里面的样本是当前API返回的最新、完整的JSON格式。重新粘贴一次样本。2. 从串口监视器中打印出 CharToText1输出的原始字符串,与你的样本对比,看字段名或结构是否已更新。 |
5.3 项目扩展与进阶玩法
掌握了基础框架后,这个项目可以衍生出许多有趣的变体:
多币种显示与轮播:
- 修改API请求的URL,将
ids参数设置为多个币种,如&ids=bitcoin,ethereum,cardano。 - API会返回一个包含多个币种信息的数组。你需要修改
Split JSON Array的样本为多币种格式。 - 在Visuino中,使用“Array Element”组件来提取数组中不同索引(0, 1, 2...)的对象,然后再连接多个
Split JSON Array(或一个可配置的)来解析每个对象。 - 添加一个“Clock Multiplier”和一个“Counter”组件,每10秒触发一次,切换当前显示在屏幕上的币种索引,实现轮播效果。
- 修改API请求的URL,将
添加本地按钮控制:
- TTGO T-Display通常有1-2个可用的物理按键(如BOOT键)。
- 在Visuino中,找到“Digital” -> “Button”组件,将其引脚映射到实际的GPIO(例如BOOT键是GPIO0)。
- 将按钮的
[Out]引脚连接到Clock Generator的Clock引脚。这样,每次按下按钮,才会手动触发一次数据更新,而不是自动刷新,更省电也更灵活。
数据持久化与简单分析:
- 使用ESP32的SPIFFS(闪存文件系统)或Preferences库。
- 在Visuino中,可以添加“File Write”和“File Read”组件(如果支持),或者通过“Code”组件插入自定义的C++代码片段。
- 每次获取新价格时,将时间戳和价格写入文件。然后可以计算并显示当日最高价、最低价,或者绘制一个简单的价格趋势线(在屏幕上画点)。
更换数据源与显示样式:
- 数据源:这个框架不限于加密货币。任何提供HTTPS JSON API的服务都可以接入,比如天气API(OpenWeatherMap)、股票API(Alpha Vantage)、新闻头条API等。只需要更换SSL证书(对应新的域名)、修改HTTP请求的URL和
Split JSON Array的样本即可。 - 显示样式:利用Visuino的显示组件,可以绘制进度条(用矩形填充模拟)来显示涨跌幅比例,用不同颜色(红色/绿色)表示涨跌,甚至添加简单的图表动画。
- 数据源:这个框架不限于加密货币。任何提供HTTPS JSON API的服务都可以接入,比如天气API(OpenWeatherMap)、股票API(Alpha Vantage)、新闻头条API等。只需要更换SSL证书(对应新的域名)、修改HTTP请求的URL和
这个项目的真正魅力在于,它用图形化的方式降低了物联网应用开发的门槛,让你能快速验证想法,并将焦点从繁琐的底层代码调试转移到产品逻辑和用户体验的设计上。当你看到自己搭建的数据流水线成功运转,实时信息在小小的屏幕上跳动时,那种成就感正是嵌入式开发的乐趣所在。