事实证明嵌入式设备可以在本地恰到好处地调试代码…

前一段时间我参加了工程设计竞赛,其中一支参赛队伍的任务是设计一种灌溉植物的装置,使其在主人离开的时候能够在两个星期内自行浇灌植物。

他们构想出来的装置电子庞然大物,特征包括泵,电子计时器装置,软管,多层次供水架构,湿度传感器,脚手架装置。在演示中,机器发生爆炸,溅得到处都是水。

 

这是工程师团队设计的“自动化植物灌溉装置”
https://www.instructables.com/id/Arduino-Automatic-Watering-System-For-Plants/

 

然后我们对商业解决方案进行了处理——一块平纹细布,一端浸在一罐水里,另一端浸在花盆里,通过毛细管作用给植物灌水。

理想的解决方案是一块布和一罐水。

在某个团队设计能让患者在病床上吸烟的系统前(90年代),其解决方案是学校里的孩子都可以想得到的 ———— 使用机器人手臂,辅之以机动托盘来抓住香烟及处理烟灰。

有一组时间继电器,传感器和步进电机在设备将香烟移入和移出患者口腔时消失。

在演示时,机器滑稽地殴打了一位评委,并将燃烧的香烟喷射向观众并且嚣张地向演示团队晃动烟灰。

也许机器人手臂是基于 Asimov 的机器人定律编程的,并认为人类吸烟违反了机器人的第一定律(不允许伤害人类)(滑稽脸)

 

 有读者可能会问机器人可以帮助用户吸烟——机器人会尽量服从,只要不危及人类的生命。如果机器人被命令伤害人类,它可能会陷入道德困境,特别是在 1955 到 1990 年之间。

由退休的消防员设计的商业解决方案侧面带孔的烟灰缸用来固定香烟,并由一根管子进入患者口腔。

某些熟悉以太坊并且对物联网感兴趣的读者可能回想起一个团队试图试图构建一个完整的解决方案,即基于以太坊为物联网设备供电,但一时间产生了诸多不同的声音。

该团队的解决方案涉及自定义 Respberry Pi 内核,WiFi 握手,夹杂着的蛮横的欧洲口音,手写协议,大量的公共关系,对工业界的承诺以及资金方面的需求 —— 这部分看起来非常精致。

如果这个解决方案确实可行的话,它需要由工程师和软件开发者组建的小团队来安装它。

在这方面,我们开发了一个物联网/DApp(*)系统,试图提供早起开发者所寻求的现实世界解决方案

1)零基础设施——没有代理服务器,没有应用。

2)安全性完全基于 ECDSA (椭圆曲线数字签名算法)—— ECDSA 加密技术为比特币和以太坊提供信 任机制,没有自定义协议或代理。

3)狭窄的攻击面——设备上只有一种输入方式,通过简单而强大的约束和输入检查,轻松防止缓冲区溢出攻击等。

4)扼杀中间人攻击,代理服务器可以转换用户的输入并重新键入,如果用户将通证放在钱包中,则无法进行代理攻击

AlphaWallet 的两个开发产品使得实现这一解决方案成为可能,分别是 ERC875 非同质化代币Web3E

为了展示这些如何无缝地协同工作,我们在 AlphaWallet 办公室解决了一个问题,即在只有 2 张出入证的情况下使得 4 到 8 人都能进入办公室。

并且考虑到我们三个人也住在办公室(我们是初创公司,常规操作!),这就产生了一些问题!

办公室门有一个拜占庭式对讲系统,用户可以通过按下对讲机上的一系列按键进入门内,但必须在出现蜂鸣声的10秒钟之内进行操作。

该系统基于 AlphaWallet 和一个由 ESP32 微控制器提供的 Dapp 。

该设备连接到中继系统,该系统在潜在输入器破解加密后关闭某些交换机上的连接。

它也适用于任何支持 Dapp 的钱包浏览器,比如装有 Metamask 插件的 Chrome 浏览器。

 

那么,它的工作原理究竟是什么呢?
1)在微控制器上运行的 DApp,它将 DApp 网页提交给钱包浏览器。

2)当用户连接到服务器上时,微控制器生成嵌入在网页/DApp中的随机字符串。

3)用户点击“开门”按钮,钱包/Metamask 拦截DApp Javascript 中的Web3函数调用,提示用户使用私钥对生成的字符串进行签名。
4)DApp Javascript 将生成的签名和钱包地址嵌入到头部中,该头部作为重定向 URL 发送回微控制器(就像电子邮件中的广告一样,用于分析谁点击了他们的电子邮件)

5)DApp 基于签名以及发送的字符串来执行 EC-recover 验证。

6)首先将从 EC-recover 计算的地址与发送的地址进行比较,以检查它们是否匹配。若匹配成功,可知用户拥有该地址的私钥,可以选择跳过该步。

7)检查地址以查看它是否包含 ERC875 AlphaWallet 进入证明通证,若包含,则微控制器打开门。

8)开门是连续按下 3 个按键来模拟打开对讲机(通常是检查要求访问的人身份)。打开对讲机意味着发送开门指令,然后关闭对讲机。设备控制机电继电器来执行这一系列动作。
这里的关键点是,不是口头确认进入访问人员——这是非常低效的;改为向进入访问人员发放准入许可证明,每天可能会发放20次。如果需要撤回进入访问人员的许可通证,

就像使用 ERC875 合同管理密钥(用于创建合同)将通证传回管理池一样简单。

 

 

你可以在这里找到 door app 的源代码:

运行它需要安装 Platformio 。 现在 Web3E 库是 offcial 库的一部分,因此它会开始自动下载。全部的下载指令已经在上方 github 页面给出。

ESP32 硬件可以从这里获取——他们自行设计和制造一系列有趣的电路板,包括电子纸,看起来它在加密中得到了很好的应用。

Dapp

不久前有人提出了这样一个想法,让网站通过钱包与以太坊进行交互。

他们将任何用以太坊作为后端的网站称为 Decentrilized-Application 或 DApp。

它是去中心化的,因为它依赖于去中心化网络而不是访问数据库 API


copyright@digital-science.com
 

Leave a Reply

Your email address will not be published.