制作树莓派电子墨水屏日历 – 提供黑白色天气日历图片服务的node程序

这是基于NodeJS的提供黑白色天气日历图片服务的程序,用于制作树莓派墨水屏日历,也可以在oled屏幕、lcd屏幕或者其他任何屏幕上使用,理论上兼容任何分辨率(看不看得清楚是另一回事)

demo

基本说明

做这个项目之时,我想做的是一个墨水屏展示当前天气、24小时温度曲线及日历的小玩具。市面上可以买到的、提供开发资料墨水屏不外乎大连的、微雪的(其实也是大连的),无论哪一种,作为一个电路苦手,我都不想深入了解其驱动和底层实现,我的思路是:

  1. 给树莓派接一个 DS18B20 或者别的基于 1-wired 的温度传感器,因为这类传感器只用接一根GPIO线、并且只需要读取文件就能获取数据,不需要额外写底层代码;
  2. 做一个基于 NodeJS 的程序,用于记录温度变化信息、获取天气预报数据,然后生成一张黑白的图片,开启一个 WEB 服务器提供这张图片;
  3. 稍微修改一下墨水屏提供的示例程序,让它定时从上一步写的服务中获取图片,然后直接在墨水屏上显示图片,这样一来,无论墨水屏提供的示例代码是基于什么语言的,都不难实现;

怎样部署

我设计了两种部署方案:

  1. 在树莓派上部署当前项目;
  2. 在树莓派上部署一个上报温度数据的服务,然后在另一台服务器上部署当前项目;

程序运行时,会检查当前机器(不论是不是树莓派)上有没有DS18B20传感器,如果有的话会每十秒钟读取一次温度,如果没有会继续运行剩下的服务,包括等待其他设备向它上报温度信息;

如果要使用天气预报的服务,你需要去和风天气中注册一个账号,获取一个key写入配置文件.env中

.env的配置项如下:

# 服务监听端口 SERIVCE_PORT=3000 # 天气预报的城市或者地区 WEATHER_LOCATION=guangzhou # 和风天气的key WEATHER_KEY=

如果你选择在一个树莓派中完成所有事情,那么你可以跳过下面的内容,直接去下一章节。

如果你选择把上报天气的程序部署在别的树莓派上,那么你可以在接入了 DS18B20 的树莓派上部署我的另一个项目:

rasp-w1-temp

然后在它的.env中配置:

REPORT_URL=http://当前服务地址:当前服务端口/set

如果你选择自己写一个上报温度的程序,或者用其他的、ESP32之类的设备去代替树莓派,那么你需要做的是写一个程序或者SHELL脚本定时向上述配置地址发起一个POST请求,在里边传递一个如下的JSON数据:

{"temp": 27000}

表示上报一个27.000度的数据,当然,temp这个键值是可配置的,只需要在.env中添加:

TEMP_KEY=foobar

甚至,你可以在获取图片的时候才传递这个参数,程序会同时记录多个不同值的变化信息,来实现同一个程序记录多个设备上报的信息,程序默认会记录最近的8640个数据,8640这个值的配置项为:

CHANGES_LIMIT=8640

DS18B20 的安装方法

DS18B20只有三根线,一根连接3.3v的VCC,一根连接GND,剩下的数据线连接一个GPIO口,默认是GPIO.7,也就是树莓派左边一排GPIO插针从上往下数的第4个;

执行以下的命令启用单总线协议:

sudo modprobe w1-gpio
sudo modprobe w1-therm

编辑/boot/config.txt,在最下面添加一行:

dtoverlay=w1-gpio

然后重启树莓派,你能在/sys/bus/w1/devices/中看到它;

本程序的安装方法

本程序用到了node-canvas,因此建议你先运行下面的命令去装一些库:

sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

然后 clone 本项目,执行 npm install 或者 yarn 去安装依赖的 node 包

然后 node index 运行此程序

然后你就能在浏览器上打开 http://树莓派的IP:部署端口/calendar 看到一个日历:

demo

这个接口接受以下参数:

参数 说明 示例 默认值
width 图片宽度 400 640
height 图片高度 300 384
bit 是否显示为单色BMP 1 0
hideWeather 是否隐藏天气信息 1 0
hideTemp 是否隐藏温度曲线 1 0
tempKey 温度曲线使用的键值 foobar temp

譬如把尺寸改为400×300:

http://树莓派的IP:部署端口/calendar?width=400&height=300

demo

使用单色的BMP输出(可直接加载到墨水屏):

http://树莓派的IP:部署端口/calendar?width=400&height=300&bit=1

demo

隐藏温度:

http://树莓派的IP:部署端口/calendar?width=400&height=300&hideTemp=1

demo

隐藏天气:

http://树莓派的IP:部署端口/calendar?width=400&height=300&hideWeather=1

demo

隐藏天气和温度:

http://树莓派的IP:部署端口/calendar?width=400&height=300&hideWeather=1&hideTemp=1

demo

关于数据

程序获取到的数据默认备份在data目录下,每次程序运行时将读取到内存中,可通过配置项DATA_DIR进行修改,默认每分钟备份一次,备份间隔可通过配置项BACKUP_INTERVAL修改

其他的一些接口和说明

除了/calendar外,这个程序附带了一些其他接口

更新若干个键值

接口:/set

方法:POST

数据格式:json

参数示例:

{ "foo": 123, "bar": "456" }

获取某个键的最新值

接口:/get/{key}

方法:GET

调用示例:/get/foo

返回值示例:

{ "value": 123, "updated": 12345678901 }

获取某个键最近8640个值

接口:/changes/{key}

方法:GET

返回值示例:

{ "changes": [
        { "value": 123, "updated": 12345678901 },
        { "value": 122, "updated": 12345678900 }
    ]
}

获取某个值今天的所有值:

接口:/today/{key}

方法:GET

返回值示例:

{ "changes": [
        { "value": 123, "updated": 12345678901 },
        { "value": 122, "updated": 12345678900 }
    ]

}

本文转自:https://www.ctolib.com/lxrmido-node-paper-calendar.html

电子纸行业网版权所有,转载请注明出处:https://www.e-paper.org.cn/?p=10783

(0)
上一篇 2020年3月2日 上午10:48
下一篇 2020年3月3日 上午10:44

相关推荐

  • 重庆市电子信息制造业高质量发展新闻发布会发布BOE京东方智慧办公解决方案

            2020年5月21日,重庆市电子信息制造业高质量发展新闻发布会于重庆市新闻发布中心举行,重庆市经信委主任刘忠出席本次新闻发布会现场。本次发布会为深入贯彻落实全市电子信息制造业高质量发展座谈会精神,大力宣传重庆市电子信息制造业高质量发展成效,宣传推广电子信息制造业品牌产品,进一步推动市场消费。 本次发布会BOE(京东方)作为重庆市代表性企业,发…

    2020年5月23日
  • 华为/小米/海信都在争抢,中国电子纸市场“烧”起来了

    2022年,国内的电子纸市场随着行业格局的打开而迎来了全新时刻,除了掌阅、汉王等传统阅读器品牌外,华为、小米、联想、海信等大厂也相继下场布局,从手机到平板,从娱乐到办公学习,电子纸正以“迅雷不及掩耳之势”之势崛起。 你的电子墨水屏Kindle还盖在泡面碗上吗? 但新一轮的电子纸浪潮已至,手机、平板、电子价签、甚至是概念车都用上了可变色的电子墨水屏。 相信很多…

    2023年1月11日
  • 邀请函 | 星阅科技与您相约第17届中国-东盟博览会

    No.1 中国-东盟博览会 中国—东盟博览会是中国商务部和东盟10国政府经贸主管部门及东盟秘书处共同主办、中国广西壮族自治区人民政府承办的国际经贸盛会,迄今已成功举办16届,成为国家层面直接主办、具有特殊国际影响力、每年一届的国家级重点展会。 No.2 星阅科技 1作为国内领先的电子纸技术和定向投声技术解决方案提供商,星阅科技(深圳)有限公司有幸受邀参加本次…

    2020年12月18日
  • 跃居第一:华为 MatePad Paper 成 Q3 季度中国市场最火电子书

    年3月,华为发布了首款墨水屏平板电脑——MatePad Paper,目前售价2699元起。华为MatePad Paper的墨水屏提供了类似纸质书籍的柔和观感,可以当做电子书使用。 据洛图科技(RUNTO)报告,上市之后,华为MatePad Paper迅速成为增长最快的墨水屏平板单品,从3月起到第三季度末,排名电子纸平板线上市场的累计销量之首位。 数据显示,华…

    2022年12月9日
  • 科大讯飞智能办公本美国CES展会全球首发 10.3寸电子墨水屏 语音识别

    2019年1月8日-11日,科技界每年最大的一次狂欢 “第52届国际消费类电子产品展”(以下简称CES)将在美国拉斯维加斯拉开帷幕。 一直被称为“全球科技的风向标”的CES ,是全世界最大、影响力最广的消费类科技产品展,从晶体管收音机、黑白电视到VR/AR,从平板电脑到自动驾驶,CES 总是能提前将未来展现在我们面前。 近50年来, CES成为了创新者和突破…

    2019年1月9日