Arduino网络编程实战从SD卡加载图像数据并显示
Arduino网络编程实战-从SD卡加载图像数据并显示
从SD卡加载图像数据并显示
JSON(JavaScript Object Notation)是一种开放的标准文件格式和数据交换格式,它使用人类可读的文本来存储和传输由属性-值对和数组(或其他可序列化值)组成的数据对象。 它是一种常见的数据格式,在电子数据交换中具有多种用途,包括带有服务器的 Web 应用程序。
JSON 是一种独立于语言的数据格式。 它源自 JavaScript,但许多现代编程语言都包含生成和解析 JSON 格式数据的代码。 JSON 文件名使用扩展名 .json。当数据从服务器发送到网页时,通常使用 JSON。JSON是“自我描述的”并且易于理解。
ArduinoJson库为嵌入式系统提供了高性能的JSON数据序列化和反序列化支持。
前面的文章对Arduino中JSON数据解析做出详细的介绍,请参考:
SD卡模块对于需要数据记录的项目特别有用。前面的文章对Arduino如何使用SD卡做了详细的介绍,请参考:
本次实例将演示如何从SD卡加载图像数据并使用SSD1306 OLED显示。
1、硬件准备
- Arduino Mega2560 开发板一块
- SD卡模块一个及SD卡一个
- SSD1306 OLED屏幕一块
- 数据线一条
- 杜邦线若干
硬件接线,请关于前面相关文章,在这里不再做描述。
2、软件准备
- Arduino IDE
- SSD1306 OLED驱动库:Adafruit_SSD1306
- 图形支持库:Adafruit-GFX-Library
- JSON支持库:ArduinoJson
- SD卡驱动库:SdFat
3、JSON储存图像数据说明
本次实例储存图像数据的JSON格式如下(在这里文件名为:1@1x.json,并保存在SD卡根目录下):
1 | { |
通过前面的OLED显示图片实例制作图像数据方式可以得到如下:
1 | const unsigned char epd_bitmap_105_sun_shower [] PROGMEM = { |
由于ArduinoJson库不能将十六进制数字字符串转换为数字,因此需要转换。在这里通过Python脚本对图像进行转换,代码如下:
1 | datas = [0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x08, 0x18, 0x18, |
运行脚本后,得到如下结果:
1 | [0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 24, 0, 0, 8, 24, 24, 0, 12, 0, 56, 0, 6, 0, 112, 0, 2, 126, 32, 0, 0, 231, 0, 0, 1, 193, 128, 0, 0, 0, 192, 0, 28, 0, 192, 0, 255, 128, 79, 1, 193, 192, 79, 3, 128, 96, 192, 7, 0, 49, 192, 30, 0, 49, 128, 60, 0, 24, 0, 96, 0, 28, 96, 192, 0, 6, 48, 192, 0, 3, 24, 192, 0, 3, 0, 194, 2, 3, 0, 198, 6, 3, 0, 102, 102, 102, 0, 100, 68, 78, 0, 12, 204, 204, 0, 12, 204, 192, 0, 8, 136, 128, 0, 25, 153, 128, 0, 17, 145, 128, 0, 3, 3, 0, 0, 3, 3, 0, 0] |
将上述数据添加到JSON文件中的datas字段即可。
4、代码实现
1 | #include <Wire.h> |
文章来源: https://iotsmart.blog.csdn.net/article/details/122999872
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 秋意寒!
评论
