ESP32 Arduino教程:Base64编码-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3071|回复: 0

ESP32 Arduino教程:Base64编码

[复制链接]
发表于 2019-6-6 10:16 | 显示全部楼层 |阅读模式
本帖最后由 dfrobot 于 2019-5-30 21:50 编辑

简介
esp32教程旨在解释如何使用在ESP32上运行的Arduino核心对字符串执行base64编码。
重要须知:编程时base64编码库中存在一个会在某些字符串上重置ESP32的错误。您可以通过这里的GitHub对错误进行追踪。
对ESP32的测试是使用集成在ESP32开发板中的DFRobot的ESP-WROOM-32设备进行的。


代码
为了方便我们使用Arduino核心的可用base64功能,我们首先需要加入base64.h库。
[mw_shl_code=applescript,true]#include <base64.h>[/mw_shl_code]
转到设置功能,我们将首先打开一个串行接口,输出应用base64编码的结果。
[mw_shl_code=applescript,true]Serial.begin(115200);[/mw_shl_code]
接下来,我们将对编码使用的任意字符串进行声明。
[mw_shl_code=applescript,true]String toEncode = "Test encoding";[/mw_shl_code]
为了将base64编码应用于先前声明的字符串,我们只需要调用base64类的encode方法。此方法接收我们希望编码的字符串作为输入,并返回同样采用字符串形式的base64编码结果。
[mw_shl_code=applescript,true]
String encoded = base64::encode(toEncode);[/mw_shl_code]
但是请注意,编码方法属于一种静态方法。因此,我们无需创建base64类的对象来使用它。因此,我们能够简单地使用类名和C++范围解析运算符 (:来访问此静态方法。
[mw_shl_code=applescript,true]
#include <base64.h>
void setup() {
  Serial.begin(115200);
  String toEncode = "Test encoding";
  String encoded = base64::encode(toEncode);
  Serial.println(encoded);
}
void loop() {}[/mw_shl_code]
最后,我们将结果打印输出至串口,以便我们在运行代码时对其进行分析。您可以查看以下最终代码,其中已包含此打印功能。

测试代码
如需测试代码,只需编译它并使用Arduino IDE将其上传到ESP32即可。该过程完成后,打开IDE串行监视器。您应该获得类似于图1中所示的输出,后者包含base64编码结果。


图1  -  base64编码输出。

我们可以通过在此在线工具上解码我们程序的输出以确认结果正确。您应该得到原始字符串,如图2所示。

图2  - 使用在线工具解码的ESP32 base64编码输出。


注:本文作者是Nuno Santos,他是一位和蔼可亲的电子和计算机工程师,住在葡萄牙里斯本 (Lisbon)。


查看更多ESP32/ESP8266教程和项目:
中文版教程 :ESP32教程 合集
英文版教程 :ESP32 tutorial 合集


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 14:42 , Processed in 0.146632 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表