×

如何在远程屏幕上显示图片

消耗积分:0 | 格式:zip | 大小:0.08 MB | 2023-02-08

哈哈哈

分享资料个

描述

如何在远程屏幕上显示图片?该项目结合了两种设备并依赖于开源工具。

  • 带有电子墨水显示器远程设备连接到支持 IoT 的板以接收和显示图片。
  • 运行 MQTT 代理以发送图片控制设备。

与之前的远程电子纸消息面板项目相比,远程电子纸图片面板不依赖专有协议和基础设施。

相反,它使用轻量级 MQTT 协议,代理可以托管在任何本地 PC 甚至单板计算机 (SBC) 中。MQTT 依赖于 TCP/IP 堆栈。图像在 PC 上准备和格式化,以最大限度地减少远程设备上的处理。

Pervasive Displays 提供范围广泛的电子纸屏幕,从 1.54" 到 12.2",有黑白或黑白红版本,以及通用驱动板Pervasive Displays Extension Kit Gen 3 。

电子纸屏幕就像一张纸:它们只在打印文本或图像时需要电源。一旦文本或图像被打印出来,屏幕就不再需要电源。它们甚至可以分离:文字或图像保持不变!更详细的介绍解释了电子纸的工作原理

除了低功耗和持久显示外,电子纸屏幕即使在阳光直射下也能提供高可读性,在该项目中使用的 2.71" 面板上分辨率高达 130 dpi、117 dpi。

Espressif 凭借经济实惠且功能强大的 ESP8266 和 ESP32 SoC 彻底改变了物联网。

远程设备

远程设备由 ESP32-DevKitC 或 ESP32-Pico 开发板、Pervasive Displays Extension Kit Gen 3开发板和Pervasive Displays 电子墨水显示器组成。

pYYBAGPjIrCADe3jAAFm3P4kyCY71.jpeg
ESP32 Pico 开发板
 

硬件

对于硬件部分,进行如下操作:

  • 将屏幕扁平电缆连接到 Pervasive Displays Extension Kit Gen 3 板上的 24 路连接器。
  • 将跳线设置到Pervasive Displays Extension Kit Gen 3 板上≤4.37"的位置。
  • 将 Pervasive Displays Extension Kit Gen 3 板的信号 1 到 10 连接到带有 ESP32 板的试验板,如下所示。我建议使用提供的电缆或具有标准电子颜色的 10 路扁平电缆。

电子纸屏幕需要一个存储在 SRAM 中的外部帧缓冲器。因此,屏幕的大小受到 ESP32 板上可用 SRAM 的限制,总共 520 kB 中大约有 128 kB。这里的项目使用了一块2.71"的单色屏。

poYBAGPjIrOAEZdUAAFgaRcQIBA962.png
 

软件

该应用程序依赖于两个主要库:

  • Nick O'Leary出色的PubSubClient 库提供了 MQTT 客户端的所有功能。

缓冲区大小默认为 256 字节,因此需要通过setBufferSize()调整以处理标题和图像。这里,对于使用的 2.71" 面板,它被设置为 6 kB。

// MQTT
myMQTT.setBufferSize(6144);
myMQTT.setServer(myBrokerIP, 1883);
myMQTT.setCallback(callbackMQTT);
#include "PDLS_EXT3_Basic_Fast.h"
Screen_EPD_EXT3_Fast myScreen(eScreen_EPD_EXT3_271_Fast, boardESP32DevKitC);

所有凭据都存储在单独的头文件中。

const char* mySSID = "";
const char* myPassword = "";
const char* myBrokerIP = "

主要设备

主设备可以是任何 PC 或单板计算机 (SBC)。它托管图像转换器和 MQTT 代理。两者都通过终端在命令行模式下使用。

转换图片

图像原生格式未针对 IoT 进行优化。典型的 264x176 BMP 图像重量为 136 kB。由于电子纸屏幕是单色的,因此图像将被转换为便携式位图 ( PBM)格式。

转换后图像的标题以P4作为幻数和屏幕尺寸为特征,此处为 176 水平像素 x 264 垂直像素。

P4
176 264

为此,该项目使用了GraphicsMagick,这是一种命令行实用程序,几乎可以将任何格式转换为可移植位图。PBM 格式的转换后的 264x176 图像重量小于 6 kB。

MQTT 经纪人

该项目使用Mosquitto作为 MQTT 代理。它带有有用的实用程序来发布和订阅主题。

Mosquitto 的最新版本需要特定的配置以允许外部和匿名连接。只需编辑文件/etc/mosquitto/mosquitto.conf并添加以下三行。

listener 1883
protocol mqtt
allow_anonymous true

运行项目

将图片发送到远程电子纸显示器有两个步骤。

image3_61A0xE8yML.png?auto=compress%2Cformat&w=740&h=555&fit=max
初始图像
 

转换图片

首先,gm使用以下选项将图片转换为可移植位图格式;

$
gm convert IMAGE1.BMP -resize 264x176 -rotate 90 PBM:IMAGE1.PBM
  • -调整大小确保正确的尺寸,
  • -旋转确保正确的方向,
  • PBM:设置格式。

发送图片

然后,mosquitto_pub使用以下选项发送图像:

$
mosquitto_pub -h 127.0.0.1 -t image/show -f IMAGE1.PBM
  • -h 127.0.0.1定义代理的 IP 地址,对于本地主机可以省略,
  • -t image/show设置主题,
  • -f IMAGE1.PBM发送可移植位图图像文件。

最后,ESP32 接收并显示图像。

esp32-5_4ZqywPHwKB.jpeg?auto=compress%2Cformat&w=740&h=555&fit=max
显示的图像
 

其他选项

image/clear主题清屏

走得更远

为了获得更清晰的界面,Node-RED提供了一个很好的仪表板来封装命令行过程。图像按钮打开一个对话框以选择图像然后启用“发送”按钮并通过 MQTT 发送图像。

 
 
 
capture-1_KcWB8lT36J.png?auto=compress%2Cformat&w=740&h=555&fit=max
 
1 / 3
 

Pervasive Displays 提供从 1.54" 到 12.2" 的各种屏幕,包括单色和黑白红。较大的屏幕可能需要外部存储器,例如 Pervasive Displays e-Paper EPD 扩展套件第 3 代上的 SPI SRAM 或某些高级 ESP32 板上可用的 PSRAM。该项目尚未使用 black-white-red 选项进行测试。

MQTT 解决方案被广泛使用并提供服务质量 (QoS) 等高级功能。

dscn0577_Y5p0zTzbsm.JPG?auto=compress%2Cformat&w=740&h=555&fit=max
终极演示
 

WiFi 收音机非常耗电,抹杀了电子纸屏幕的低功耗能力。因此,更换为蓝牙或低于 1 GHz 之类的无线电将能够使用标准电池实现长达一年的自治,尽管使用不同的协议(如 MQTT-SN)。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !