嘿!您似乎在 United States,您想使用我们的 English 网站吗?
Switch to English site
Skip to main content

Electric Imp 凭借其 Imp 005 模块积极应对日益增长的物联网 (IoT) 问题。您最近一次听说重大黑客攻击或重要数据泄露是什么时候?如果您在关注任何科技媒体,该时间可能就是今天早上。数据泄露的代价是昂贵的,不仅仅是在财务方面 — 公司必须全力以赴来迅速缓解问题,然后发现自己将会面临主管当局的巨额罚款 — 公司名誉还会遭受(难以衡量的)长期损害。

所有这些令人沮丧的消息纷纷传播到物联网项目中,许多潜在客户如今将物联网设备简单地视为未来的安全漏洞。他们质疑:为什么有人想安装这样一个设备,充其量被劫持成为僵尸网络的一部分,甚至更糟糕,提供一个通向其网络的软接入点?

Electric Imp

这就是 Electric Imp 认为他们可以有所作为的地方。该公司由 Hugo Fiennes 领导,在开始设计 Nest 恒温器之前,他带领 Apple 硬件团队从事前四代 iPhone 的设计。Electric Imp 已为其产品赋予了一些令人印象深刻的设计灵感,包括 Eaton、GE 和 Pitney Bowes 等。

Electric Imp 认为其高明之处在于网络安全。对于可能攻击物联网应用的所有可能攻击向量,他们显然经过深思熟虑。基于此,他们已经开发了一种全新的方法来对付每个攻击向量,甚至能够侦测到在加密密钥和代码在工厂安全地加载到硅片之后被禁用的外部硬件接口。他们希望开发商能够采用 Electric Imp 已完全集成和测试的边缘到云端架构,而不是花费几个月时间开发自己的解决方案或将多供应商解决方案集成到连接。

 

architecture1_d7a6f96ccdb8146cb21f73e4b4ec5d5295d1cc83.jpg

Imp005 模块

imp005-EZ 模块包含:

  • Murata 型 1GC SoC Cortex-R4、320 MHz CPU,带高达 1 MB 的 RAM,用于应用代码,相当于大约 15k 行的用户代码。
  • 8MB 板载启动 SPI,4.5 MB 可自由用于应用程序

输入/输出机制:

  • 双频段 Wi-Fi,带板载天线(FCC/IC 认证,CE 测试)
  • 3x UART,1x SPI,1x I2C,USB 主机
  • 19x GPIO(混合 I2C、SPI)
  • RMII 以太网

一个 Blinkup 电路和 RTC 晶体,用于调试。

评估板

可以购买已经安装在评估板上的 imp005-EZ,可为所有输入/输出提供物理连接器:

  • 双频段 (2.4GHz + 5GHz) 802.11abgn Wi-Fi,集成天线
  • 通过 RJ45 连接器连接 WAN 以太网
  • USB 2.0/1.1 低速/全速主机
  • Arduino 扩展板兼容管座 (3.3V)

另可访问一些传感器:

…当然,还有应用程序控制的可靠 LED:

  • APA102 RGB LED

研讨会

为给您一次用 imp005 模块进行开发的体验,并测试它是否适合您的应用,我将带您参加一个我在几周前与 Electric Imp 人员一起参加的研讨会。

在去之前,您需要了解一些事项。

设备清单

  1. 具有 Wi-Fi 连接的笔记本电脑 — 这样您可以控制投影
  2. iPhone 或 Android 手机 – 为模块提供本地 Wi-Fi 登录信息
  3. Arrow imp005-EZ-Eval 套件 + mini-USB 电缆,用于为模块供电
  4. Wi-Fi 接入点,提供互联网连接 – 请注意,您无法使用带登录页面设置的开放式网络来连接 imp 模块。

您还需要了解:

  1. 在 iPhone 或 Android 手机上安装 BlinkUp 应用程序 – 您可以通过搜索 iTunes 或 Google Play 查找“Electric Imp”
  2. https://electricimp.com/docs/gettingstarted/developer/account/ 上创建 Electric Imp 开发者帐户
  3. 创建一个 IBM Bluemix 帐户 – 我将在后面的内容中告诉您如何做。

下图表示我们要尝试的操作:

workshop_01a_781fbc8e9d9c531f32afd621af8ba59ef5c9ab69.jpg

如您所见,我们正在模拟“智能”制冷系统。imp005 模块设置用于监控我们冰箱的温度、湿度和光照条件,如果这些值偏离设置参数,则会产生警报。为节省电力,该设备将一次性发送多批次数据读数,并在不传输时断开与服务器的连接,以省电模式运行 Wi-Fi。

该数据的端点是 IBM Bluemix Watson。在本例中,我们只是用它来显示数据,但您拥有一个可以自由支配的 Bluemix 云服务世界,您可以向通过手机上进行呼叫服务的工程师发出警报、汇集数百个制冷单元的运行时数据,以及您可以想到的任何操作。

 imp005 和 IBM Watson 之间的一切均由 Electric Imp 体系处理。包括:

  • 面向 ImpCloud 的安全设备身份验证和设备注册
  • 安全的连接建立和管理
  • 设备和云代理虚拟机应用程序容器
  • 设备和云软件配置/空中 (OTA) 升级
  • 设备和操作管理、可扩展性、日志记录

每个功能都是 Electric Imp 对物联网应用可能遭遇的攻击向量提供的对策,因此,如果您购买他们的平台,所有安全工作都不必再亲历亲为。那就让我们来看看 Electric Imp 是如何为您效劳的。

IBM Watson 物联网配置

  1. https://console.bluemix.net/  创建免费账户
    p01a_bf6de82b063a22e0e6758a5116211235272a536e.jpg
  2. 当您首次登录 Bluemix 时,您需要创建一个“组织(Organization)”和“空间(Space)”
  3. 在侧边栏菜单中,选择“服务”->“物联网”
    p02a_7a4f44f2bf0555e33da07555d76ef7018d8fd722.jpg
  4. 在侧边栏菜单中,选择“服务”->“物联网”
  5. 在下一个窗口中,单击“创建”按钮
  6. 在下一个窗口中,单击“启动”按钮
    p04a_cf4c432165cdfdc6f9c9f9535ba400688beca9e2.jpg
  7. 当您进入“仪表板”窗口时,使用侧边栏菜单选择“应用程序(Apps)”
    p06a_9a47ad4b9f2d5f8d3bdff58498142faf8c95b8df.jpg
  8. 在“应用程序”窗口中,记下您的 ID(位于右上角,帐户下方)
  9. 选择“+ 生成 API 密钥”按钮,记下(或复制粘贴到记事本)API 密钥和认证令牌
    p07a_1a1228664ee9755dcbcf3b72255a5ef656cb5882.jpg
  10. 单击“生成”按钮
    p08a_3c16ba932c7e580fd6af39a50109ba1c59bf2081.jpg
  11. 将与 API_Key、Auth_Token 和 Org_ID 设置对应的密钥、令牌和 ID 复制到 Electric Imp RefrigerationMonitor.agent 代码中(大概在文件的末尾)。在“Electric Imp 设备和代理”中我将详细告诉您怎么做。

配置您的 Imp 模块

也就是将您的 Electric Imp 连接到互联网。在对模块进行任何操作之前,您需要提供登录您的 Wi-Fi 连接所需的信息。这通过您已经(打算)装到您的智能手机上的 Electric Imp BlinkUp 应用程序即可完成。

  1. 启动您设备上的 BlinkUp 应用程序
  2. 在该应用程序中,登录您的 Electric Imp 开发者帐户
  3. 输入您的 WIFI 认证
  4. 按照应用程序中的说明 BlinkUp 您的设备

此视频还向您展示了如何完成 BlinkUp:

 

当 BlinkUp 成功时,Imp 模块上的 LED 将闪烁绿光,应用程序将显示设备的唯一 ID,就像下图这样::
blinkup_1ba6cffe41da4f7349a6d4824d30d7d5534678f0.jpg

快速闪烁红色 LED 表示表该设备无法读取 BlinkUp 传输,您需要重试,可能是因为手机距该模块太近。

Electric Imp 设备和代理

您可以在以下位置找到此示例的完整源代码:

https://github.com/electricimp/examples/tree/master/Arrow_Imp005_EZ_Eval_Examples/RefrigeratorMonitor

有两个文件:一个用于该模块,一个用于 ImpCloud 代理。这些需要复制粘贴到相应的 IDE 窗口中:

  • RefrigeratorMonitor.agent.nut -> IDE 代理窗口(左侧)
  • RefrigeratorMonitor.device.nut -> IDE 设备窗口(右侧)

p09a_fcd70813b03f8ebafa83a92db62dfb38f0fd3efc.jpg

该代码是用 Squirrel 编写的,Squirrel 是 C/C++ 的另一类派生,类似于 JavaScript。它是一种面向对象的命令型高级语言,具有垃圾收集功能。此处也提供了 Electric Imp Squirrel 资源。此应用程序代码可在该模块和 ImpCloud 中的虚拟机上运行。这是减少黑客攻击面的另一种手段。

但是,要运行此示例,我们不需要学习任何 Squirrel。我们现在需要的是记得将 Watson 物联网身份验证信息复制到代理代码的底部 — 上图中突出显示的地方。

添加此信息后,单击“构建和运行”按钮。在日志中,您将会看到以下内容:

[设备] 正在发送读数

[代理] Watson 发送成功

如果您看到以下内容:“Watson 发送错误:错误:API 密钥或验证方法无效

请仔细检查您的密钥、令牌和组织 ID 值。如果问题仍然存在,请等待几分钟,然后重试,因为 Watson 有时需要时间先进行认证才能进行内部传播。

创建 Watson 数据可视化

我们现在要在 Watson 环境中创建漂亮的图形(和表格,您应该需要)。

在仪表板窗口侧边栏菜单中,选择“板”。然后单击“+ 创建新板(+ Create New Board)”按钮。
b012_15b093a9f749bd625d0d8fdad8166f8f9b0a5f05.png

提供板“名称”(例如,冰箱监控器)和“说明”(可选)。然后单击“下一步”并“提交”。现在,在“仪表板”窗口中,在“您的板”部分中单击刚创建的板。
b021_390b5440cdde71f6ecb8768928741c6bbd80d8e3.png

要创建温度线形图,请单击卡类型“线形图”。然后:

  1. 选择设备 Arrow_Imp005-EZ,然后单击“下一步”
  2. 单击“+ 连接新数据集”
  3. 事件,选择 RefrigerationMonitor
  4. 属性,选择 data.0.temperature
  5. 对于“类型”,请选择“数字”。单击“下一步”
  6. 选择“L”设置。单击“下一步”
  7. 添加标题并选择“配色方案”。单击“提交”

重复此过程以创建湿度线形图。同样,您可以通过选择 data.0.doorOpen 作为数据源,为“开门警报”创建一个数值卡。对于温度警报数值卡,则选择 data.0.tempAlert 作为数据源。

完成后,RefrigerationMonitor 数据将自动开始显示在仪表盘中。
end1_7e7f32dc3433db0d90c1326b77477e31dfe3c2ea.jpg

 

 

结束语

我喜欢使用 Imp 005 模块,也很欣赏 Electric Imp 为保护其物联网体系所做努力。如果物联网真如技术先知所预测的那样普遍存在,那么这将是朝正确方向的重要一步。当然,Electric Imp 的解决方案并不适合所有应用,但它适合很多情形;对那些专门从事安全研究并清楚了解当前工作的人而言,他们对取消安全措施以及 OTA 更新之类的事很有发言权。

Mark completed his Electronic Engineering degree in 1991 and worked in real-time digital signal processing applications engineering for a number of years, before moving into technical marketing.