E-Paper NB-IoT/GPRS HAT资料

产品简介

本产品是一款基于树莓派而设计的电子墨水屏无线网络驱动板,支持使用上位机(云平台客户端)通过 NB-IoT/GPRS 网络更新电子墨水屏显示信息。

本驱动板配套上位机软件使用,可将电子墨水屏需要显示的数据推送至阿里云物联网平台;集成 NB-IoT 模组 SIM7000,可连接至阿里云物联网平台获取数据;由于数据通过公网传 输,支持在任意地点更新电子墨水屏显示信息。

特点

  • 板载 NB-IoT 模组 SIM7000E,支持 NB-IoT/GPRS 网络。
  • 提供 Windows 上位机及其源码,可实时将墨水屏显示内容的数据推送至云端。
  • 提供树莓派驱动源码,带异常处理机制,可稳定连接云端获取数据以刷新墨水屏。
  • 数据通过公网传输,支持任意地点更新电子墨水屏显示信息。
  • 内置字库,支持任意汉字显示,支持同时显示图片,图案,文字。
  • 板载树莓派接口,可直接接入 Raspberry Pi Zero/Zero W/Zero WH/2B/3B/3B+
  • 预留 NB-IoT 模组及电子墨水屏通信接口,除了支持树莓派,还适用于其它 MCU。
  • 板载电子墨水屏 FPC 接口及型号选择开关,支持多种型号的墨水屏。
  • 板载电平转换电路和电平选择开关,可兼容 3.3V/5V 的逻辑电平。
  • 板载电池充放电电路,连接 USB 接口可给 3.7V 锂电池充电,外接 3.3V 供电系统的MCU 时,可采用 3.7V 锂电池单独供电。

产品参数

  • 通信接口:3-wire SPI、4-wire SPI(默认)、UART
  • 刷新时间:2~5 分钟
  • 供电电压:5V
  • 电池供电电压:3.0~4.2V,不支持树莓派
  • 逻辑电平:5V / 3.3V
  • 产品尺寸:56.55mm x 65.05mm
  • 工作温度:-40°C ~ 85°C
  • 存储温度:-45°C ~ 90°C

支持的型号

  • 1.54inch e-Paper, 1.54inch e-Paper (B), 1.54inch e-Paper (C)
  • 2.13inch e-Paper, 2.13inc e-Paper (B), 2.13inch e-Paper (C), 2.13inch e-Paper (D)
  • 2.7inch e-Paper, 2.7inc e-Paper (B)
  • 2.9inch e-Paper, 2.9inc e-Paper (B), 2.9inch e-Paper (C)
  • 4.2inch e-Paper, 4.2inc e-Paper (B), 4.2inch e-Paper (C)
  • 5.83inch e-Paper, 5.83inch e-Paper (B), 5.83inch e-Paper (C)
  • 7.5inch e-Paper, 7.5inc e-Paper (B), 7.5inch e-Paper (C)

接口定义

功能引脚Raspberry (BCM2835)描述
5V5V5V 电源
3V33.3V3.3V电源
GNDGNDGround
DINMOSISPI接口MOSI数据线
CLK11SPI接口SCK 时钟线
CSCE0SPI接口片选
DC25数据/命令选择引脚
RESET17复位引脚,低电平有效
BUSY24墨水屏忙判断引脚
TXD14NB-IoT模组串口发送引脚
RXD15NB-IoT模组串口接收引脚
DTR19NB-IoT模组休眠/唤醒引脚;
在设置AT+CSCLK=1之后,拉高DTR使模组休眠,拉低DTR唤醒模组
PWR4NB-IoT模组开机/关机引脚,高电平有效
RST18NB-IoT模组复位引脚,高电平有效

原理说明

本产品借助阿里云物联网平台通过 NB-IoT 网络刷新电子墨水屏的显示内容,产品总体分为云端和设备端两部分:

云端:通过客户端软件,将电子墨水屏显示数据发送至阿里云物联网平台。

设备端:通过 NB-IoT 模组,从阿里云物联网平台获取电子墨水屏显示数据,并根据数据刷新电子墨水屏内容。

产品工作架构如图:


本手册将分别从云端和设备端两部分来描述使用细节。

建议用户在使用过程中,按照本手册阅读顺序,从云端到设备端分步学习使用。

云端使用指南

云端基本工作流程为:客户端软件将墨水屏显示数据(图片、图案,文字等)推送至阿里云物联网平台,等待设备端获取该云端数据。

本节主要涉及阿里云物联网云平台及客户端软件的使用,使用过程中,可结合阿里云物联网平台官网文档使用。

如果你是首次使用阿里云物联网平台及其客户端,需要依次执行以下步骤:

  1. #客户端软件安装:安装客户端软件,仅第一次使用需要执行。
  2. #用户鉴权:注册阿里云账号,开通阿里云物联网云平台,获取并保存阿里云API密钥,仅第一次使用需要执行。
  3. #产品注册:云平台对一类设备的抽象定义,仅第一次使用需要执行。
  4. #导入物模型:云平台对一类设备的属性的抽象定义,仅第一次使用需要执行。
  5. #设备注册:云平台对一类设备的具体某个设备的抽象定义,仅第一次使用需要执行。
  6. #保存设备鉴权信息:将设备连接阿里云物联网云平台的必要信息存储到树莓派例程的配置文件中,仅第一次使用需要执行。
  7. #推送数据:将屏幕显示数据推送至阿里云物联网云平台,树莓派将定时采用NB-IoT无线网络获取该数据,并将数据显示至屏幕,在需要更新数据时执行。

客户端软件安装

  • 点击上面导航页->资料->软件->阿里云物联网平台客户端(上位机)下载上位机软件。
  • 解压并运行安装上位机软件。

用户鉴权

本软件及设备均对接至阿里云物联网平台,需要开通阿里云相关服务:

1 注册阿里云账号

先在阿里云首页注册阿里云账号,并开通阿里云物联网平台

2 创建阿里云API密钥

进入API密钥管理页面,登录阿里云账号,点击继续使用AccessKey:


点击创建AccessKEY,获取短信验证码后填入:


填写验证码之后点击确定即可成功创建AccessKEY:


3 保存阿里云API密钥

AccessKey ID和AccessKey Secret是访问阿里云的API密钥,通过该密钥,可直接访问阿里云账号下的物联网云平台,云数据库,云存储对象(OSS)等,后续所有上位机操作都需要使用该信息,请妥善保存该信息。

ePaperTool将采用该密钥访问您阿里云账号下的物联网平台。

4 将鉴权信息填入EPAPERTOOL上位机中

在上位机用户鉴权部分选择数据中心(请选择设备网络延时最小的数据中心),填写AccessKey ID和AccessKey Secret,如下图所示:


说明:关于阿里云物联网平台的收费标准分为消息通信计费连接时长计费,设备采用MQTT协议接入阿里云物联网平台,当每月发布及订阅消息的数量小于100万条,且每月设备连接总时长小于100万分钟时,阿里云物联网平台不收费。正常使用ePaperTool更新墨水屏所产生的消息量与连接时长低于收费标准,可免费使用阿里云物联网平台。

产品注册

产品,是阿里云物联网平台对一类设备的总称。

在ePaperTool上位机中,在产品注册部分,填写产品名称ProductName(产品名称可自定义),点击注册,即可注册产品,如下图所示:


注册成功后,在日志输出框将有创建产品成功的提示,且弹出productKey,后续步骤将使用该信息,请妥善保存该信息。

导入物模型

物模型,是阿里云物联网平台对产品的功能定义的描述。此次导入物模型,将导入墨水屏绘图,刷图相关的功能定义,具体操作如下:

1 修改MODEL.JSON文件

打开资料中的model.json文件,将productKey部分改为本次创建的产品的productKey(ePaperTool日志输出栏有提示,如不慎关闭,可登录管理控制台查看),如下图所示:


2 登录管理控制台找到产品

登录管理控制台,找到刚刚注册的产品:


点击产品对应的查看按钮,然后点击功能定义:


3 导入物模型

点击导入物模型,选择4.1中修改了productKey的model.json文件,请注意,实际开发中,model.json文件不能超过40KB:


点击确定后,即可导入物模型,导入物模型后,在功能定义选项卡中自定义功能部分即可查看墨水屏绘图,刷图相关的功能定义:


设备注册

设备,是阿里云物联网平台对具体某一设备的定义,一类产品对应着多个设备,比如,2.7inch e-Paper是一类产品,具体到某一个2.7inch e-Paper即为一个设备。

注册设备的步骤如下:

打开ePaperTool,在设备注册部分,填入ProductKey(ePaperTool日志输出栏有提示,(如不慎关闭,可登录管理控制台查看),DeviceName(可自定义),再点击注册,即可注册设备:


注册的设备将继承产品的所有功能定义。

此步骤中自定义的DeviceName是设备名称,后续步骤将需要使用该信息,请妥善保存该信息。

保存设备鉴权信息

设备鉴权信息指的是:设备连接阿里云物联网平台的验证信息。

当采用ePaperTool注册设备后,将在日志输出栏输出设备鉴权信息(注意:仅在日志输出栏双横线内的信息为设备鉴权信息),如下图所示:


获取得设备的鉴权信息后,在#更改设备鉴权信息中将需要将该信息导入到设备中,请妥善保存好该信息。

如果不慎关闭ePaperTool丢失设备鉴权信息,可在ePaperTool工具栏的设备查询栏进行查询,查询设备鉴权信息的步骤如下:

打开ePaperTool,在设备查询部分,填入ProductKey(ePaperTool日志输出栏有提示,如不慎关闭,可登录管理控制台查看),DeviceName(ePaperTool日志输出栏有提示,如不慎关闭,可登录管理控制台查看),DeviceSecret(只能登录管理控制台查看),相关信息在管理控制台如下图所示:


填入相关信息后,点击查询,即可查询设备鉴权信息,如下图所示:


注意,设备鉴权信息跟时间有关,不同时间获取的设备鉴权信息是不一致的;仅在日志输出栏双横线内的信息为设备鉴权信息。

获取得设备的鉴权信息后,在#更改设备鉴权信息中将需要将该信息导入到设备中,请妥善保存好该信息。

推送数据

打开ePaperTool,在设备选择部分,先选择墨水屏型号,填写要同步数据的设备的ProductKey和DeviceName(可通过ePaperTool的日志输出窗查看,也可以登录管理控制台查看),填写后,可选择刷图,清屏等两种模式。

1 刷图模式
  • 该模式设置坐标时,坐标不能超越屏幕尺寸大小;
  • 点,线,圆形,矩形,英文字符串,中文字符串仅能设置并显示1个;
  • 当同时开启中文显示与英文显示时,中文字符可显示100个左右,英文字符可显示200个左右;
  • 当仅开启中文显示而不开启英文显示时,中文字符可显示200个左右;
  • 当仅开启英文显示而不开启中文显示时,英文字符可显示400个左右;
  • 图片必须来自网络并可通过http协议进行下载,图片必须为单色位图文件,图片尺寸须小于或等于屏幕尺寸;
  • 在图片输入栏需填入完整的http链接。
  • 当驱动的是3色墨水屏,显示点、线、矩形、圆、英文字符,中文字符等时,仅在黑白图上进行显示。
  • 当驱动的是3色墨水屏,显示图片时,将分为黑白图,红(黄)白图两张图片进行显示。
2 清屏模式
  • 清屏模式将清空屏幕,并将屏幕刷白。
3 操作说明:

选择对应的墨水屏,填写ProductKey,DeviceName,选择刷图或清屏模式后,在右侧填写数据,点击设置,即可将数据推送至云端,如下图所示:


登录阿里云物联网平台的管理控制台可查看ePaperTool推送的数据,若可查看到客户端推送的数据,则推送成功,如下图所示:


注意,ePaperTool推送的是设备的期望数据,将鼠标悬停至相应的属性右侧的灰色感叹号处即可查看设备的期望数据。 此时,云端所有步骤已操作完毕,若设备端连接云端即可获得墨水屏显示内容的数据。 #设备端使用指南将介绍设备端的所有操作。

相关说明

主要对ePaper Tool中的刷图模式中,图片的数据来源进行说明:

1 如何获取符合尺寸大小的单色位图文件?

最简单的方法,通过截图的方式,以QQ软件自带截图功能举例: STEP1:Ctrl+ALT+A打开截图功能 STEP2:调节好尺寸到屏幕大小:


STEP3:转换成单色位图文件:

打开Windows画图工具,按下Ctrl+V,粘贴该图片,并且设置好尺寸:


点击另存为,并选中Monochrome Bitmap,即可保存为单色位图文件。


2 怎样将单色位图文件传到网络,并可采用http进行获取?

这里建议采用阿里云提供的OSS存储对象,当然也可采用其它诸如七牛云图床的方式存储。注意,目前只支持http从云端下载图片,暂不支持https协议。

采用阿里云提供的OSS存储对象结合其客户端(该客户端将在资料包中提供),可实现图片存储到云端,并可获取其http链接,更多关于阿里云OSS存储对象的使用请访问阿里云OSS存储对象官网获取。

通过阿里云OSS获取图片http链接的方式如下:

Step1:通过客户端将图片上传至阿里云OSS存储对象。

Step2:选择对应的图片,右键,获取其地址。


关于采用OSS获取图片http链接的方式请具体参考文档《ePaper-NB-IoT-GPRS-HAT-OSS-Mannual-CN》。文档连接如下:
http://www.waveshare.net/w/upload/6/63/EPaper-NB-IoT-GPRS-HAT-OSS-Mannual-CN.pdf

设备端使用指南

设备端基本工作流程为:树莓派驱动NB-IoT模组,从阿里云物联网云平台获取云端数据,将获取的云端数据刷新至墨水屏。

本节主要涉及树莓派端开发环境的搭建及设备端程序的基本使用。

若首次使用设备端软件,需要依次执行以下操作:

  1. #树莓派开发环境搭建:已搭建好环境的用户可直接跳过,仅第一次使用需要执行。
  1. #e-Paper NB-IoT GPRS HAT硬件准备(用于树莓派):仅第一次使用需要准备。
  1. #树莓派获取云端数据进而刷新墨水屏:准备好例程,导入设备鉴权信息后,后续步骤仅在需要时执行即可。


树莓派开发环境搭建

1.1 系统支持

目前仅在树莓派平台的Raspbian系统进行测试,其它系统暂未测试兼容性,请烧录树莓派官方镜像。

1.2 使能树莓派串口,禁用树莓派串口SHELL服务。

树莓派通过串口驱动NB-IoT模组,需要使能树莓派串口并禁用串口shell服务,操作流程如下:

在命令行输入:

sudo raspi-config,

打开树莓派配置界面,进入Interfacing Options->Serial,禁用树莓派串口shell服务,使能树莓派硬件串口服务,设置结果如下图所示:


1.3 使能树莓派SPI功能

树莓派通过SPI接口驱动电子墨水屏,需要使用树莓派SPI功能,操作流程如下:

在终端输入命令:

sudo raspi-config

打开树莓派配置界面,进入Interfacing Options->SPI,使能树莓派SPI服务,设置结果如下图所示:


1.4 安装BCM2835库

设备端采用BCM2835库驱动串口及SPI接口,若运行该例程,则需要用到树莓派的BCM2835库,操作流程如下:

BCM2835官网下载最新版本的库,然后解压安装。

在终端输入命令:

tar -zxvf bcm2835-1.xx.tar.gz

cd bcm2835-1.xx

./configure

make

sudo make check

sudo make install

即可完成安装BCM2835库。

e-Paper NB-IoT GPRS HAT硬件准备(用于树莓派)

2.1 准备NB-IOT卡

例程针对NB-IoT网络,需要使用到运营商提供的NB-IoT业务,推荐使用中国移动物联网卡,在深圳地区,其测试效果最好(连接云平台失败率低,获取云端数据失败率低,延迟低),并将准备好的NB-IoT卡接插入e-Paper NB-IoT GPRS HAT的SIM卡槽。

2.2 连接天线

请将配套天线连接到e-Paper NB-IoT GPRS HAT的标有丝印的LTE接口(IPEX1代),配套天线功率增益达8dBi,实测信号质量比小辣椒天线要好。

2.3 连接电子墨水屏

请用FPC线连接本产品与电子墨水屏,若电子墨水屏的尺寸足够小,不易损坏排线或屏幕,亦可直接将电子墨水屏排线接入本产品的FPC接口。

2.4设置相关焊点,拨码开关,跳线帽

  • BS焊点选项
10
3线SPI4线SPI
  • VCCIO开关选项
3V35V
连接3.3V电平系统如树莓派,STM32连接5V电平系统
  • Display Config开关选项
BA
3线SPI4线SPI
1.54inch e-Paper (B)1.54inch e-Paper
2.13inch e-Paper (B)2.13inch e-Paper
2.7inch e-Paper2.9inch e-Paper
2.7inch e-Paper (B)
2.9inch e-Paper (B)
4.2inch e-Paper
4.2inch e-Paper (B)
7.5inch e-Paper
7.5inch e-Paper (B)
  • POWER开关选项
5VBAT
5V供电,如采用树莓派或USB接口供电电池供电,单节锂电池(包),电压3.0V至4.2V
  • 连接树莓派使用时的设置

连接树莓派使用时,请确认该默认设置:

焊点/开关/跳线说明
BS焊点焊接到0侧(默认已焊接)
VCCIO开关拨到3V3侧
Display Config开关根据实际使用的墨水屏选择
POWER跳线拨到5V侧


树莓派获取云端数据进而刷新墨水屏

接下来将介绍:树莓派通过NB-IoT网络从云端获取数据,在获取数据后,将根据数据刷新墨水屏内容。

3.1 获取例程

打开斑梨电子官网,搜索产品,找到产品详情页,下载例程:


或直接通过Github下载,在命令行输入:

git clone https://github.com/waveshare/ePaper-NB-IoT-GPRS-HAT.git


更改设备鉴权信息

当程序下载成功后,将#保存设备鉴权信息保存的设备鉴权信息粘贴(覆盖)至配置文件中,配置文件在ePaper-NB-IoT-GPRS-HAT文件夹下的CONFIG文件夹下,如下图所示:


设备鉴权信息是设备连接阿里云物联网云平台的重要信息,如果为填写有误,将导致设备无法接入阿里云物联网云平台。

编译

输入以下命令即可编译:

make


执行

输入以下命令即可执行程序: sudo ./epd


现象观察及说明

切换至NB-IoT网络:


连接至阿里云物联网平台成功


通过MQTT协议从阿里云物联网平台获取数据成功


通过HTTP协议从网络端获取图片数据成功

如果驱动3色屏,由于需要获取2张图片,该步骤将执行2次


刷新墨水屏成功

在所有数据获取成功后,将刷新墨水屏,刷新墨水屏后,将显示刷新墨水屏相关的日志数据: 如果驱动3色屏,由于需要获取2张图片,该步骤将执行2次


重复刷新墨水屏操作

成功刷新墨水屏后,程序将自动隔一段时间(为方便观察,默认5秒)后重新更新数据并刷新墨水屏,若不终止程序,程序将不断重复刷新墨水屏(可结合微雪Power Management HAT产品使用,实现树莓派低功耗刷新墨水屏),如下图所示。


如果需要更改重复刷新墨水屏的时间间隔,main.c中已以下变量(默认5000ms),重新编译,执行程序:


刷新一次墨水屏时长的影响因素:

一般地,由于NB-IoT网络下行速率等因素,刷新一次墨水屏的时间在2至5分钟左右,具体刷新一次墨水屏的时间主要受以下因素的影响:

  • 1、NB-IoT网络的信号质量:当网络信号质量(AT+CSQ返回值)低于10时,有很大概率连接不上阿里云物联网平台,以至于不能获得图片数据。
  • 2、网络拥堵程度:取决于当地基站能够接入的终端数量的上限,当基站终端接入数量接近上限时,新的终端将很大概率接入NB-IoT网络失败;终端接入数量越多,网络约拥堵,接收MQTT包,获取HTTP协议图片数据等失败率越高。
  • 3、墨水屏的尺寸:如果墨水屏的尺寸越大,其图片将越大,对应地,其HTTP数据包将越大,获取HTTP数据包的时间将越长。
日志文件

日志系统包含了刷新墨水屏的时间,次数,失败次数等调试参考信息,存放在源程序log文件夹下的log.txt文件中,打开log.txt文件即可查看刷新墨水屏过程中网络连接状态信息,如下图所示:


对日志进行分析可得,2019年7月9日16点17分28秒,成功通过http获取了一张黑白图片,2019年7月9日16点17分50秒,成功通过http获取了一张其它颜色(红黄)图,2019年7月9日16点18分19秒,成功刷新墨水屏,接着打印网络连接相关信息,网络连接相关信息说明如下:


变量名说明备注
tryTime尝试了多少次从网络获取图像数据
successTime成功了多少次从网络获取图像数据等于刷屏次数
mqttConnectFailTime失败了多少次连接阿里云物联网平台
httpDownloadFailTime失败了多少次从云端下载数据
noneMqttPackageTime未收到MQTT包次数
duplicatePackageTimeMQTT包重包次数
duplicatePackageWaitTimeMQTT重包等待非等待次数,仅供参考

刷新墨水屏示例

云端设置


设备端现象

连接2.9inch e-Paper(B)墨水屏产品使用的时候,硬件连接示例如下图所示:


程序说明

程序文件夹说明:

源代码有以下文件夹,如下图所示:


文件夹说明
BIN存放obj文件,编译生成的中间文件
CONFIG存放device.ini,内含设备鉴权信息
drive对串口,SPI驱动的封装
ePapers各型号电子墨水屏驱动源码
fonts字符编码支持,包括汉字编码支持
gui简单GUI封装,可绘制点, 线,圆等图案
iniini格式系统配置文件解析库
jsonjson数据格式文件解析库
log日志系统,内含log.txt,可查看日志
main主程序
PIC获取的云平台图片文件,存放于wireless-pic.bmp文件中
sim7000SIM700E驱动文件,包含http,mqtt支持
epd主程序可执行文件
Makefile编译规则脚本

主程序流图说明:

下面将介绍程序的主要执行流程: