4.2inch e-Paper Cloud Module

来自Waveshare Wiki
跳转至: 导航搜索
4.2inch NFC-Powered e-paper
{{{name2}}}
{{{name3}}}
功能简介
特性 无线刷新
分辨率 400x300
显示颜色 黑、白
' 无特性,不解释
' 无特性,不解释
接口 WIFI Bluetooth

说明

本设备可以通过wifi连接指定主机的6868端口,根据其指令进行图片刷新。
本设备可以通过wifi和蓝牙进行设备配置,但初次配置必须蓝牙进行配置。
本设备必须通过按键进行唤醒。

特点

  • 适合作为设备标签,货架标签,信息储存等
  • 无需背光,断电可长时间保持最后一屏的显示内容
  • 可以通过设定不同ID进行区分,方便集中管理和对标签进行追踪
  • 显示的内容可由用户通过服务器随时自主定制、控制,方便灵活
  • 电压检测电路,可以检测电池电路避免过度放电。
  • 板载SW6106芯片,支持双向快充,支持PD/QC/FCP/PE/SFCP 等多种快充协议
  • 提供配套安卓APP,帮助用户配置和管理设备
  • 提供完善的配套资料手册

参数

  • 供电方式:电池供电
  • 分 辨 率:400 x 300
  • 点 距:0.212 × 0.212
  • 显示颜色:黑、白
  • 刷新时间:4s
  • 可视角度:>170°
  • 外形尺寸:96.5mm × 85mm
  • 显示尺寸:84.8mm × 63.6mm
  • 最大刷新次数(电池容量为1000mah): 1500+

e-Paper Cloud Module用户手册

APP可以通过浏览器扫描下方二维码进行下载
Cloud APP.png

前置信息

本设备每次开机时会局部刷新屏幕,并显示对应状态的标志。 以下图表分别是等待标志、设置标志、低电压标志、wifi连接标志和主机连接标志

Cloud ESP32 e-Paper Board wait.png Cloud ESP32 e-Paper Board set.png Cloud ESP32 e-Paper Board batter.png Cloud ESP32 e-Paper Board wifi.png Cloud ESP32 e-Paper Board wifi connect.png
  • 等待标志表示此时正在等待指令中。
  • 设置标志表示是否设置完成。
  • 低电压标志表示电池电压低于警告电压。
  • wifi连接标志表示wifi已连接。
  • 主机连接标志表示已经连接到指定IP地址的服务器。
  • 一般情况下,开机后等待标志均会出现,但电池电压低于警戒电压(默认值为3600mv)150mv,为保护整个系统的稳定性,设备将自动关机。


设备配置

首次配置

如果设备尚未配置,按下设备唤醒键①后,设备将进行刷屏后②,此时可以使用我们提供的app进行设置③,见1.3。
注:
①4.2inch为唤醒键,2.13inch为复位键. ②尚未配置的正常情况下,仅在右上角显示等待标志。如果显示低电压标志,且无等待标志则检测到电池电压低于3450mv将自动关机。
③如果没有蓝牙连接到设备将在开机刷屏过后90s后自动关机。

  • 未设置设备运行流程图(此流程图仅做参考

Cloud FlowChat2.jpg

再配置

如果设备已经配置,按下设备唤醒键后,设备将进行刷屏①并在右上角将显示已设置标志,此时蓝牙默认关闭,需要长按唤醒键②超过5S,用以开启蓝牙③。此时wifi刷屏动作将会照常进行④,配置操作与未配置设备一致⑤。
注:
①配置后设备的刷屏时间与wifi连接速度有直接联系,通常在开机后30s内进行刷新。
②2.13inch与4.2inch不同,按键被分离到蓝牙唤醒键.
③建议长按至手机搜索到设备蓝牙。没有蓝牙连接到设备将在开机刷屏过后90s后自动关机,若有蓝牙连接到设备则设备不会自动关机。
④如果开启蓝牙情况下,接收到wifi设备的关机指令则等待30s蓝牙设备连接,若有蓝牙连接到设备则设备不会在蓝牙断开前关机;若无蓝牙连接到设备则关机。
⑤通常配置完成后,需要进行重启,以使新配置生效。如果重启时,wifi正在传输数据,可能导致数据丢失。

  • 已设置设备运行流程图(此流程图仅做参考)

Cloud FlowChat1.jpg

  • 主机端示例程序流程图

Cloud FlowChat3.jpg

APP界面介绍

Cloud Epd app 1.png
连接蓝牙按钮与蓝牙信息
Cloud Epd app 2.png
设备ID,用于识别区分设备
Cloud Epd app 3.png
设备连接的无线网络名称(SSID)
Cloud Epd app 4.png
获取手机连接的无线网络名称
Cloud Epd app 5.png
无线网络密码
Cloud Epd app 6.png
主机IP,通常主机为树莓派
Cloud Epd app 8.png
静态IP设置,若开启DHCP则失效。
Cloud Epd app 7.png
设备密码,上锁后需输入密码才能进行操作

注:树莓派例程使用密码为123456,如果上锁并密码不为123456则可能导致无法正常运行。

Cloud Epd app 9.png

警告电压,低于电池设定电压则开机时显示低电量标志,若低于设定电压150mv则自动关机。

Cloud Epd app 10.png
导出保存过配置到当前配置界面
Cloud Epd app 11.png
保存当前配置,最多保存四套配置
Cloud Epd app 12.png
将当前配置上传至设备
Cloud Epd app 13.png
清空当前设备配置信息

使用APP进行配置

Ⅰ.打开APP(APP会自动保存上次上传成功的配置信息)
Cloud ESP32 e-Paper Board manual 1.png
Ⅱ.点击连接蓝牙按键,默认名为WaveShare_EPD,如果已经配置则为ID名。
未配对
未配对
已配对
已配对
Ⅲ.点击想要连接的设备,我们这里点击WaveShare_EPD,如果第一次连接会要求配对,直接点击确定即可。(如果已配对,则没有这一步)
Cloud ESP32 e-Paper Board manual 4.png
Ⅳ. 修改对应的配置,点击上传配置按钮(如果设备已配置且有密码,则需要输入对应密码)
Cloud ESP32 e-Paper Board manual 5.png
Ⅴ.稍定片刻,下方提示信息显示上传成功,此时APP将断开蓝牙连接并重启设备
Cloud ESP32 e-Paper Board manual 6.png
注:尽可能给设备固定IP地址,以提高设备稳定性


通讯协议

通讯主要分为两个模式,数据模式和指令模式,指令模式用于传输各种指令,数据模式则是用来传输屏幕刷新数据,两个发送数据格式也各有不同,具体如下:

指令格式

‘;’+指令(+数据)+'/'+校验

数据格式

0x57+4Byte addr+ 4Byte len +1Byte num + len Byte data +校验

返回格式

'$'+数据+'#' 无论数据格式还是指令模式,返回格式均一致。

注:校验为红色数据部分的异或。

指令模式下

  • 指令格式
‘;’+指令(+数据)+'/'+校验
  • 未解锁可用指令:
指令 格式 返回值(每个数据分多帧返回)
查看是否上锁 ‘C’ 校验+上锁标志位‘0’或者‘1’(‘0’表示未上锁,‘1’表示上锁)
解锁 ‘N’+设备密码 校验+解锁标志位‘0’或者‘1’(0表示解锁失败,1表示解锁成功)
获取ID名 ‘G’ 校验+ID名
  • 解锁可用指令:
指令 格式 返回值(每个数据分多帧返回)
修改ID名 ‘0’+name 校验
修改HOST地址 ‘1’+IP地址 校验
修改WIFI名 ‘2’+SSID 校验
修改WIFI密码 ‘3’+password 校验
修改设备密码 ‘P’+userpassword 校验
设备锁 ‘L’+'0'或者'1'(0表示不上锁,1表示上锁) 校验
设置标志位 ‘s’+'0'或者'1'(0表示未设置,1表示设置完成) 校验
进入数据模式 ‘F’ 校验
开启蓝牙 ‘B’ 校验
当前电池电压 ‘b’ 校验+电池电压(单位:mv)
关机 ‘S’ 校验
重启 ‘R’ 校验

数据模式下

  • 数据格式

0x57+4Byte addr+ 4Byte len +1Byte num + len Byte data +校验

数据名 数据长度 数据内容
addr 4byte 数据存储地址
len 4byte 传输数据长度
num 1byte 当前扇区第几帧
data len byte 传输数据
  • 注意:
  1. 建议使用等长帧传输
  2. 每次传输数据长度不应超过1100Byte,否则将会导致数据丢失.
  3. num因版本升级而失去作用,可为恒定值。
  4. 数据帧无结束位,应当等待返回对应校验位后才能发送下一帧,否则可能导致系统崩溃或重启。
  5. 当addr和len均为0时,退出刷新模式。并自动刷新屏幕。

具体流程也可以参考我司提供的python3例程


RPI使用教程

本程序均在Raspberry Pi 4B上进行验证。

安装库

#python3
sudo apt-get update
sudo apt-get install python3-pip
sudo apt-get install python3-pil
sudo apt-get install python3-tqdm
sudo apt-get install python3-numpy
sudo apt-get install python3-progressbar

下载测试程序

打开树莓派终端,执行:

sudo apt-get install p7zip-full
sudo wget https://www.waveshare.net/w/upload/2/2e/Cloud_RPI.7z
7z x Cloud_RPI.7z
cd Cloud_RPI 


python

  • 本例程仅可使用python3
  • 请务必在Cloud_RPI文件夹,运行以下命令
#该程序会根据程序生成对应尺寸的图形和读取一张图片并发送给从机显示
python3 ./examples/4.2inch_display_EPD


Windows使用教程

本教程均在windows 10专业版下进行验证

  • 注意:
  1. 因为windows环境比较复杂,而且一个系统下可能存在多个版本,请自行用可以正常使用的python3替代下文的python。
  2. 因为正常情况下windows安装python时会自动安装pip,这里不对pip安装进行讲解。
  3. 因为windows防火墙的缘故,需要关闭或者允许python通过windows防火墙

安装库

#python3
python -m pip install tqdm
python -m pip install pillow
python -m pip install numpy
python -m pip install pypiwin32
python -m pip install progressbar

下载测试程序

下载Windows示例程序,解压并进入到Cloud_WIN文件夹下

python

  • 本例程仅可使用python3
  • 请务必在Cloud_WIN 文件夹,打开CMD或者PowerShell终端运行以下命令
#该程序会根据程序生成对应尺寸的图形和读取一张图片并发送给从机显示
python ./examples/4.2inch_display_EPD


API详解

在lib目录下有三个文件夹分别为http_get、tcp_server和waveshare_epd,分别对应抓取http图片、TCP服务器、墨水屏相关的函数 Cloud ESP32 e-Paper Board manual 10.png

tcp_sver.py

目录:Cloud_RPI/lib/tcp_server
在tcp_sver.py中创建了一个tcp_sver类,使用过程中需要对其进行继承,并重构它的handle函数

def handle(self)

每次有新客户端连接到服务器都会调用handle函数进行处理

接收信息函数

  • 其会自动解析返回格式,并返回原信息,具体可以参考用户手册第二章的返回格式部分
def Get_msg(self)
接收信息 返回信息
'$'+数据+'#' 数据

指令发送函数

  • 其会自动生成帧头、帧尾和校验发送并校验返回值,具体可以参考用户手册第二章的指令格式部分
def Send_cmd(self,cmd)

参数cmd为需要发送的字符串

需要发送内容 实际发送内容
cmd ‘;’+cmd+'/'+校验

数据发送函数

  • 其会自动生成帧头、帧尾和校验发送并校验返回值,具体可以参考用户手册第二章的数据格式部分
def Send_data(self,data)

参数data为需要发送的队列信息(包含地址长度等信息),具体可以参考用户手册第二章的数据格式部分,建议使用下方的flush_buffer函数

需要发送内容 实际发送内容
data 0x57+data+校验

可以将Send_cmd和Send_data这两函数理解为两种封包模式

设置画面大小函数

def set_size(self,w,h)

参数w为图像宽度,参数h为图像高度,用于确定需要发送的数据长度
因为我们以黑白墨水屏为例,一个像素点的数据长度为1bit,不难推出一下公式

数据总长=(图像宽度(w)/8)*图像高度(h)

刷新画面函数(仅指令模式下使用)

  • 其会将图像队列拆分成指定长度,并发送给从机显示
#ID含有中文时,可能导致进度条出现错位现象
def flush_buffer(self,DATA)

参数DATA为需要为图像队列,图像队列可以由image对象经过下文中的getbuffer函数转化而来

发送数据 发送次数 单帧数据长度(len) 发送内容
DATA(图像队列) 数据总长/单帧数据长度(len) 1024 Byte(用户可定义) 0x57+4 Byte addr+ 4 Byte len +1 Byte num + len Byte data+校验

每次传输数据长度不应超过1100Byte,否则将会导致数据丢失.
具体请参考用户手册第二章通讯协议

电池电压检测函数

  • 返回当前电压值
def check_batter(self)

关机函数

  • 关机或低功耗状态
def Shutdown(self)

重启函数

  • 重启设备
def Reboot(self)

http_get.py

目录:Cloud_RPI/lib/http_get

  • 下载图片函数
def Get_PNG(Url,Name)

该函数会从Url参数对应的网址下载图片,将其以Name参数为文件名,存储到当前目录下。

waveshare_epd.py

目录:Cloud_RPI/lib/waveshare_epd

  • 将图片信息转为队列
def getbuffer(self, image):


资料

相关文档

Androdi app

Cloud APP.png

示例程序


FAQ

  • 【工作条件】温度范围:0~50°C ;湿度范围:35%~65%RH
  • 【存储条件】:温度范围:30°C以下; 湿度范围:55%RH以下;存储最长时间:6个月


  • 不带电池厚度:4.42mm
  • 带电池厚度:14.31mm


技术支持

联系人:张工
邮箱:3004637648@qq.com
QQ:3004637648
微信:扫下方二维码添加
QRCode SiminZhang.png

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证