惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
N
Netflix TechBlog - Medium
大猫的无限游戏
大猫的无限游戏
爱范儿
爱范儿
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Register - Security
The Register - Security
IT之家
IT之家
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
I
InfoQ
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
Apple Machine Learning Research
Apple Machine Learning Research
M
MIT News - Artificial intelligence
博客园 - Franky
C
Check Point Blog
T
The Blog of Author Tim Ferriss
V
Visual Studio Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog
Recent Announcements
Recent Announcements
云风的 BLOG
云风的 BLOG
美团技术团队
The Cloudflare Blog
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
The GitHub Blog
The GitHub Blog
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
V
V2EX
aimingoo的专栏
aimingoo的专栏
GbyAI
GbyAI
G
Google Developers Blog
S
SegmentFault 最新的问题
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
罗磊的独立博客
量子位
MongoDB | Blog
MongoDB | Blog
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
小众软件
小众软件
D
Docker
人人都是产品经理
人人都是产品经理

夜行人

回家路上 第一期的直播演示项目 震动检测器 正能量 在线参观CodeLab Neverland 发布 CodeLab Adapter 3.3.1 DynamicTable 之 纸糊方向盘 CodeLab DynamicTable: 一个可实施的技术方案 CodeLab Insight 发布 Alpha 版 情人节 Home Assistant 周报 && IoT 周报 (02) Joplin: 关注隐私的 Evernote 开源替代软件 浏览器的未来与 Web 传感器 Home Assistant 周报 && IoT 周报 (01) 百宝箱(01) 论自由 介绍 WebThings Home Assistant 周报 && iot 周报 (00) 百宝箱(00) 毛姆读书心得 传世之作 周末徒步 CodeLab Adapter ❤️ Jupyter/Python 航班 躲雨 夏令营途中 [译]思想--作为一种技术 The future of coding 美国之行 三门问题的程序模拟 从Python转向Pharo https://blog.just4fun.site/post/iot/iot-open-source-projects/ Python异步编程笔记 https://blog.just4fun.site/post/iot/iot-open-source-hardware-community/ 万物积木化开发者社区 CodeLab ❤️ Blender Scratch3技术分析之云变量 API(第7篇) [译]对管道(Pipes)的偏爱 [译]提出正确的问题比得到正确答案更重要 蓝牙设备与Scratch3.0 创建你的第一个Scratch3.0 Extension Scratch3技术分析之项目内部数据(第6篇) Scratch3技术分析之社区 API(第5篇) Scratch3技术分析之User API(第4篇) Scratch3技术分析之项目主页API(第3篇) Scratch3技术分析之静态资源API(第2篇) Scratch3.0、micro:bit与Windows7 https://blog.just4fun.site/post/iot/zerynth-vs-micropython/ 核聚变、方所与半宅空间 可视化编程为何是个糟糕的主意 codelab.club周末聚会 关于codelab.club '下一件大事'是一个房间 Hungry Robot - Eat everything 编程作为一种思考方式 今日简史 史蒂夫·乔布斯传 罗素自选文集 https://blog.just4fun.site/post/edx/tianjin-scratch-ai/ https://blog.just4fun.site/post/edx/richie-cms-openedx/ 徒步武功山 WebUSB与micro:bit 积木化编程与3D场景 夜宿武功山顶 scratch3-adapter接入优必选Alpha系列机器人 https://blog.just4fun.site/post/edx/video-migration-note/ scratch3-adapter重构笔记 https://blog.just4fun.site/post/edx/edx-community-members/ 两种硬件编程风格的比较 使用micro:bit自制PPT翻页笔 柏拉图对话集 scratch3.0 + micro:bit 七月电影放映计划 非营利组织的管理 以最佳实践开始你的Django项目 micro:bit与事件驱动 为Scratch3.0设计的插件系统(上篇) OCR应用一例 近两年读过的一些好书 blockly开发之使用python驱动浏览器中的turtle(2) 牛顿新传 文学理论入门 逻辑的引擎 人生的意义 blockly开发之生成并运行js代码(1) blockly开发之hello world(0) micro:bit使用笔记 神器之Termux https://blog.just4fun.site/post/iot/micropython-notes/ Cozmo what is this Scratch的前世今生 下段旅程 我行在远方 爆裂 途中杂记 https://blog.just4fun.site/post/edx/open-edx-startup/ cozmo系列之入门 - 有性格且可编程的机器人 PaperWeekly开发笔记 创业二三事 blockly与结对编程
Screenly--用树莓派让任何屏幕变为可编程的数字标牌
2018-06-30 · via 夜行人

对计算机的访问应该是完全不受限制的。任何人都有动手尝试的权利. 黑客们相信,通过将东西拆开,了解它们的工作原理,并根据这种理解创造新奇的甚至更有趣的东西,可以学习到关于系统的重要知识。他们痛恨一切试图阻止他们这么做的人、物理障碍或者法律。 –《黑客: 计算机革命的英雄》

screenly是个很酷的项目,它让制作数字标牌(Digital signage)变得简单,并且它推出了开源版本!在我们开始介绍screenly之前,我们先来了解一下数字标牌(Digital signage)是什么。

如果你对数字标牌行业兴趣不大,只对动手用树莓派构建它感兴趣,那你只需要知道数字标牌就是可以播放内容的屏幕就行了,然后直接跳到screenly部分.

数字标牌(Digital signage

当你在肯德基里点了一对辣翅、一份土豆泥、一杯玉米饮,拿到2099编号的小票,等待柜台前的屏幕告知你领餐;
当你在招商银行取号排队办理挂失,看着柜台前的红色数字从20慢慢变到30;
当你在盛夏的午后,站在奶茶店门口,看着屏幕上琳琅满目的新品,犯了选择困难症;
当你拉着漂亮小姐姐,在电影开始前最后1分钟,奔往5号厅,在影院长廊里,身边飞过一个个播着不通预告片的屏幕;

上边出现的这些屏幕,都是数字标牌

数字标牌有些像一个小电脑,店家将它们希望呈现给用户的内容投射到屏幕上。

我们来看看维基百科上更为专业的介绍(这个词条写得十分精彩,我对数字标牌行业的理解,主要也是基于这个词条,目前这个词条还没有中文版本,在阅读的时候,顺便也翻译一下,做了些微调,引述如下):

数字标牌是电子标牌的一个子概念。数字显示器使用诸如LCD,LED,投影和电子纸等技术来显示数字图像、视频、网页、天气数据、或文本。它们可以在交通系统、博物馆、体育场馆、零售店、酒店、餐馆等地方找到,以提供路标、展览、营销和户外广告。

数字标牌被定义为:

通常与销售、广告和营销紧密相关的数字显示器

角色和功能

数字标牌有许多功能与目标,最常见的包括:

  • 公共信息 - 新闻、天气、交通和本地(特定位置)信息,如地图、火警出口和旅客信息等。
  • 内部信息 - 公司信息,如健康和安全项目、新闻等。
  • 产品信息 - 定价、产品照片、原材料或配料等 - 特别适用于食品营销,其中标牌可能包括营养成分或建议的用途、配方。
  • 提高客户服务体验的信息 - 博物馆、画廊、动物园、公园和花园,展览,旅游和文化景点的解说标牌。
  • 广告和促销 - 宣传产品或服务
  • 品牌建设 - 店内数字标牌,以促进品牌和建立品牌标识。
  • 影响顾客的行为 - 导航,指导顾客到不同的地方,增加店面的“停留时间”,以及为这种影响服务的其他用途。
  • 影响产品或品牌决策 - 在销售点设计影响选择的标牌,例如标牌,以帮助购物者选择时装店内的服装或帮助顾客找到产品、查看价格、访问产品信息
  • 增强客户体验 - 应用包括餐厅、银行等候区提示客户等待时间
  • 导航 - 交互式屏幕的屏幕
  • 预约 - 墙壁或桌面上的小型互动屏幕,与资源调度平台相集成。

行业概览

全球有200多家不同的公司销售数字标牌解决方案,数字标牌市场预计到2020年将增长到219.2亿美元。美国占据市场份额的大部分。亚太和欧洲地区已经显示出前景,欧洲的德国和英国,亚太地区的日本和韩国。预计这四个国家到2020年的增长率最高

数字标牌的主要目标客户是餐馆、零售商、办公楼、地方规划机构、公共交通服务等。这些行业对数字标牌的具体应用,就不一一引述了,参考:Digital signage

数字内容

数字内容通过显示控制软件进行管理。控制软件可以是独立的专用程序,也可以与硬件集成。程序可以从音频、视频、图像、文本清单中创建新消息,这些消息以不同的组合和排列组合以实时产生新消息。

数字标牌上显示的数字内容往往属于以下形式之一:

  • 文本 - 滚动文本。滚动固定的文本或动态更新的文本。
  • 图像 - 滚动图像,通常是广告海报
  • 视频 - 可自定义视频
  • 交互式界面 - 将标牌与触摸屏、传感器、RFID技术集成,以便与用户进行双向通信。交互式数字标牌有助于吸引用户,也可以帮助广告商了解客户行为。
  • 上下文感知接口 - 将标牌与摄像头、传感器集成,以监控周围环境,根据观众信息、天气状况或其他外部因素更新标牌内容。

显示内容控制软件

对于小面积区域内使用的设备,可以采用U盘和SD来更新内容。对于分布在不同区域的大型网络,往往使用DAN(数字广告网络)播放器,它们直接连到监视器和互联网,允许最终用户从任何位置管理多个DAN播放器

技术

  • 互动层面,交互式数字标牌允许用户通过触摸屏,体感设备或手机扫码与数字内容交互
  • 上下文感知数字标牌利用传感器、摄像头、RFID技术、物联网(IoT)等硬件设施来观察周围环境,处理信息并根据环境决定展示的内容。许多数字标牌产品携带摄像头,通过估算路人的年龄、性别和经济状况来收集购物者的统计数据,并使用这些信息更新标牌内容或进行数据分析

标准

JPEG图像和MPEG4视频仍然是数字标牌行业的主流数字内容格式。对于交互式内容,HTML5和Unity3D由于其在Web开发人员和多媒体设计人员中的流行而广泛使用。

screenly提供的解决方案

Digital signage made easy.

前边的部分里,维基百科对数字标牌进行了多视角的介绍和分析,我们对这个行业也有了整体的了解。这是一个非常有趣的行业,计算机技术是数字标牌的基础(从名字我们就可以看出),借助技术和想象力,有很多有趣的事情可以做。

但如何介入这个领域呢?毕竟我们不可能从硬件开始制作一个数字标牌。即便我们购买了一个数字标牌的解决方案,在应用它的时候,某天灵机一动,想对其它做些改进,也基本是不可能的。除非它们开放源代码。我们才可能改进它,把创意融入其中。

我喜欢《黑客: 计算机革命的英雄》中的这段话:

对计算机的访问应该是不受限制的、完全的。任何人都有动手尝试的权利. 黑客们相信,通过将东西拆开,了解它们的工作原理,并根据这种理解创造新奇的甚至更有趣的东西,可以学习到关于系统的重要知识。他们痛恨一切试图阻止他们这么做的人、物理障碍或者法律。

screenly给了我们这种机会,screenly是数字标牌的解决方案,他们除了推出商业版本之外,也推出了社区版,将源代码开放了出来。

screenly提供的商业版本在此不多介绍,感兴趣的小伙伴可以到他们主页去看,下边重点说说开源的社区版

screenly社区版介绍

Screenly OSE/Open Source Edition是由社区支持并由Screenly维护的免费数字标牌软件。

介绍视频在这里:这里,你也可以直观地体验线上demo

线上demo

Screenly OSE使用树莓派作为它们的载体,由于树莓派有HDMI接口,所以你可以将任何支持HDMI接口的屏幕变为可编程的数字标牌!成本低到令人震惊!以至于我觉得Screenly是来搅局的哈哈

技术上,Screenly OSE在树莓派中只是作为一个普通的软件存在,你依然可以在操作系统中做任何你想做的事。诸如你可以让Screenly OSE与opencv结合,做出一些令人惊叹的交互式数字标牌,诸如我在scratch3-adapter文档中写的:

当穿着裙子的姑娘走近屏幕,屏幕立马给她安利新款纪梵希,而穿着格子衬衫的大叔靠近时,屏幕则以机械键盘蛊惑他

事实上scratch3-adapter文档中屏幕与门的互动例子,就是用Screenly OSE + home assistant+ scratch3.0实现的

Screenly OSE中有很多有趣的技术工作。诸如它集成了resin-wifi-connect, 如此一来Screenly OSE的无线连接将变得极其简易。对于面向非技术的用户的产品,简单的初始化无线连接至关重要

安装

Screenly OSE的安装十分简单,与安装普通树莓派镜像几乎无差别。我们在此假设你对树莓派并不熟悉,你需要以下清单里的东西:

  • 一个树莓派,推荐3B
  • 一个大于4GB的SD卡
  • 一根HDMI高清线
  • 一个无线网络(不是必须的,你也可以离线使用它)
  • 一个支持HDMI的屏幕(可以直接用电视)

结下来我们有两种方式使用Screenly OSE,一种方法是直接烧录官方提供的镜像,这种方式最为简单,如何烧录镜像我就不赘述了,可以google一下。

另一种方式需要你有技术背景,由于Screenly OSE只是一个软件,所以你可以在raspbian中手动安装它,安装已经一键化了,切换到root用户(sudo -i),然后在tmux里运行:

bash <(curl -sL https://www.screenly.io/install-ose.sh)

如果中途失败(国内网络你懂的),重新执行就行

安装完成之后,配置好wifi,将树莓派用高清线连接屏幕,重启,连上Screenly OSE发射的热点(名字里包含Screenly),屏幕会显示web控制平台的入口地址(默认是:http://raspberrypi.local/)

使用

登陆web控制平台,你就进入了前头线上demo展示的页面,你可以上传需要展示的内容啦!

线上demo

在web控制平台里,你可以设置内容的展示时间和可见性等属性,使用简单,页面基本是自说明的。

enjoy it!

API

Screenly OSE提供了RESTful风格的API,文档参考:api/docs

有了API,你可以轻松做出交互式的数字标牌,大多数时候不需要入侵 Screenly OSE的源码。如果你想对Screenly OSE做二次开发,建议使用docker,具体参考项目主页

由于源码是开放的,所以

Do What The Fuck You Want To

互动实例

我们前段时间布置了一个展厅,展厅内使用了很多智能设备,整个空间可以使用scratch3.0来编程,关于这个想法参考我之前的文章:积木化编程与智能家居

在这个展厅里,我们准备实践空间编程的概念,通过拖拽积木,我们可以赋予一个空间以智能

其中有一个场景是: 使用scratch3.0 + Screenly OSE制作一个互动的数字标牌,当门被打开,有人进入房间的时候,标牌上由休眠背景图片切到宣传片播放;当人们离开,门被关上的时候,屏幕切换到休眠状态.演示如下

技术上的实现十分简单,我们使用门窗感应器来感知门的开闭,根据门的开闭状态来决定屏幕播放的内容。

具体而言用到如下三个api接口:

1
2
3
4
curl -s "http://localhost:8080/api/v1/assets"  # 列出所有资源
curl -s "http://localhost:8080/api/v1/assets/control/asset&fddd611fc45844788d9cbad32d761f82"  # 切换到背景图片
curl -s "http://localhost:8080/api/v1/assets/control/asset&e19c9e1525cd4e968c5433199dcf24ac"  # 切换到视频
# 注意: 目前接口只能在树莓派内部访问(安全性),如果你要把它暴露出来,需要修改源码

《三体》有句名言

给岁月以文明,而不是给文明以岁月

我们模仿这句作为文章的结尾

给空间以智能 ,而不是给智能以空间

参考