本产品是一款基于树莓派而设计的电子墨水屏无线网络驱动板,支持使用上位机(云平台客户端)通过 NB-IoT/GPRS 网络更新电子墨水屏显示信息。
本驱动板配套上位机软件使用,可将电子墨水屏需要显示的数据推送至阿里云物联网平台;集成 NB-IoT 模组 SIM7000,可连接至阿里云物联网平台获取数据;由于数据通过公网传 输,支持在任意地点更新电子墨水屏显示信息。
功能引脚 | Raspberry (BCM2835) | 描述 |
5V | 5V | 5V 电源 |
3V3 | 3.3V | 3.3V电源 |
GND | GND | Ground |
DIN | MOSI | SPI接口MOSI数据线 |
CLK | 11 | SPI接口SCK 时钟线 |
CS | CE0 | SPI接口片选 |
DC | 25 | 数据/命令选择引脚 |
RESET | 17 | 复位引脚,低电平有效 |
BUSY | 24 | 墨水屏忙判断引脚 |
TXD | 14 | NB-IoT模组串口发送引脚 |
RXD | 15 | NB-IoT模组串口接收引脚 |
DTR | 19 | NB-IoT模组休眠/唤醒引脚; 在设置AT+CSCLK=1之后,拉高DTR使模组休眠,拉低DTR唤醒模组 |
PWR | 4 | NB-IoT模组开机/关机引脚,高电平有效 |
RST | 18 | NB-IoT模组复位引脚,高电平有效 |
本产品借助阿里云物联网平台通过 NB-IoT 网络刷新电子墨水屏的显示内容,产品总体分为云端和设备端两部分:
云端:通过客户端软件,将电子墨水屏显示数据发送至阿里云物联网平台。
设备端:通过 NB-IoT 模组,从阿里云物联网平台获取电子墨水屏显示数据,并根据数据刷新电子墨水屏内容。
产品工作架构如图:
本手册将分别从云端和设备端两部分来描述使用细节。
建议用户在使用过程中,按照本手册阅读顺序,从云端到设备端分步学习使用。
云端基本工作流程为:客户端软件将墨水屏显示数据(图片、图案,文字等)推送至阿里云物联网平台,等待设备端获取该云端数据。
本节主要涉及阿里云物联网云平台及客户端软件的使用,使用过程中,可结合阿里云物联网平台官网文档使用。
如果你是首次使用阿里云物联网平台及其客户端,需要依次执行以下步骤:
本软件及设备均对接至阿里云物联网平台,需要开通阿里云相关服务:
进入API密钥管理页面,登录阿里云账号,点击继续使用AccessKey:
点击创建AccessKEY,获取短信验证码后填入:
填写验证码之后点击确定即可成功创建AccessKEY:
AccessKey ID和AccessKey Secret是访问阿里云的API密钥,通过该密钥,可直接访问阿里云账号下的物联网云平台,云数据库,云存储对象(OSS)等,后续所有上位机操作都需要使用该信息,请妥善保存该信息。
ePaperTool将采用该密钥访问您阿里云账号下的物联网平台。
在上位机用户鉴权部分选择数据中心(请选择设备网络延时最小的数据中心),填写AccessKey ID和AccessKey Secret,如下图所示:
说明:关于阿里云物联网平台的收费标准分为消息通信计费,连接时长计费,设备采用MQTT协议接入阿里云物联网平台,当每月发布及订阅消息的数量小于100万条,且每月设备连接总时长小于100万分钟时,阿里云物联网平台不收费。正常使用ePaperTool更新墨水屏所产生的消息量与连接时长低于收费标准,可免费使用阿里云物联网平台。
产品,是阿里云物联网平台对一类设备的总称。
在ePaperTool上位机中,在产品注册部分,填写产品名称ProductName(产品名称可自定义),点击注册,即可注册产品,如下图所示:
注册成功后,在日志输出框将有创建产品成功的提示,且弹出productKey,后续步骤将使用该信息,请妥善保存该信息。
物模型,是阿里云物联网平台对产品的功能定义的描述。此次导入物模型,将导入墨水屏绘图,刷图相关的功能定义,具体操作如下:
打开资料中的model.json文件,将productKey部分改为本次创建的产品的productKey(ePaperTool日志输出栏有提示,如不慎关闭,可登录管理控制台查看),如下图所示:
登录管理控制台,找到刚刚注册的产品:
点击产品对应的查看按钮,然后点击功能定义:
点击导入物模型,选择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的日志输出窗查看,也可以登录管理控制台查看),填写后,可选择刷图,清屏等两种模式。
选择对应的墨水屏,填写ProductKey,DeviceName,选择刷图或清屏模式后,在右侧填写数据,点击设置,即可将数据推送至云端,如下图所示:
登录阿里云物联网平台的管理控制台可查看ePaperTool推送的数据,若可查看到客户端推送的数据,则推送成功,如下图所示:
注意,ePaperTool推送的是设备的期望数据,将鼠标悬停至相应的属性右侧的灰色感叹号处即可查看设备的期望数据。 此时,云端所有步骤已操作完毕,若设备端连接云端即可获得墨水屏显示内容的数据。 #设备端使用指南将介绍设备端的所有操作。
主要对ePaper Tool中的刷图模式中,图片的数据来源进行说明:
最简单的方法,通过截图的方式,以QQ软件自带截图功能举例: STEP1:Ctrl+ALT+A打开截图功能 STEP2:调节好尺寸到屏幕大小:
STEP3:转换成单色位图文件:
打开Windows画图工具,按下Ctrl+V,粘贴该图片,并且设置好尺寸:
点击另存为,并选中Monochrome Bitmap,即可保存为单色位图文件。
这里建议采用阿里云提供的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 系统支持
目前仅在树莓派平台的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库。
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设置相关焊点,拨码开关,跳线帽
1 | 0 |
---|---|
3线SPI | 4线SPI |
3V3 | 5V |
---|---|
连接3.3V电平系统如树莓派,STM32 | 连接5V电平系统 |
B | A |
---|---|
3线SPI | 4线SPI |
1.54inch e-Paper (B) | 1.54inch e-Paper |
2.13inch e-Paper (B) | 2.13inch e-Paper |
2.7inch e-Paper | 2.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) |
5V | BAT |
---|---|
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
如果驱动3色屏,由于需要获取2张图片,该步骤将执行2次
在所有数据获取成功后,将刷新墨水屏,刷新墨水屏后,将显示刷新墨水屏相关的日志数据: 如果驱动3色屏,由于需要获取2张图片,该步骤将执行2次
成功刷新墨水屏后,程序将自动隔一段时间(为方便观察,默认5秒)后重新更新数据并刷新墨水屏,若不终止程序,程序将不断重复刷新墨水屏(可结合微雪Power Management HAT产品使用,实现树莓派低功耗刷新墨水屏),如下图所示。
如果需要更改重复刷新墨水屏的时间间隔,main.c中已以下变量(默认5000ms),重新编译,执行程序:
一般地,由于NB-IoT网络下行速率等因素,刷新一次墨水屏的时间在2至5分钟左右,具体刷新一次墨水屏的时间主要受以下因素的影响:
日志系统包含了刷新墨水屏的时间,次数,失败次数等调试参考信息,存放在源程序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包次数 | |
duplicatePackageTime | MQTT包重包次数 | |
duplicatePackageWaitTime | MQTT重包等待 | 非等待次数,仅供参考 |
云端设置
设备端现象
连接2.9inch e-Paper(B)墨水屏产品使用的时候,硬件连接示例如下图所示:
程序文件夹说明:
源代码有以下文件夹,如下图所示:
文件夹 | 说明 |
---|---|
BIN | 存放obj文件,编译生成的中间文件 |
CONFIG | 存放device.ini,内含设备鉴权信息 |
drive | 对串口,SPI驱动的封装 |
ePapers | 各型号电子墨水屏驱动源码 |
fonts | 字符编码支持,包括汉字编码支持 |
gui | 简单GUI封装,可绘制点, 线,圆等图案 |
ini | ini格式系统配置文件解析库 |
json | json数据格式文件解析库 |
log | 日志系统,内含log.txt,可查看日志 |
main | 主程序 |
PIC | 获取的云平台图片文件,存放于wireless-pic.bmp文件中 |
sim7000 | SIM700E驱动文件,包含http,mqtt支持 |
epd | 主程序可执行文件 |
Makefile | 编译规则脚本 |
主程序流图说明:
下面将介绍程序的主要执行流程: