Arduino是一个开源电子原型设计平台,专门针对接收来自传感器的输入进行了优化。这使其成为开发无线网关的绝佳平台。通过以太网连接,网关可用于将传感器和执行器连接到互联网,用于智能手机和平板电脑上的应用。可以为这些平台开发应用程序,然后利用来自网络的数据并从世界任何地方远程控制执行器。
广泛的可用开源软件为构建项目提供了宝贵的资源。它基于灵活、易于使用的硬件和软件,面向设计师、爱好者和任何对创建交互式环境感兴趣的人。
有多种 Arduino 板可供使用,均使用 Arduino 编程语言。这是基于Wiring的,它具有与 C++ 相同的语法和库,但进行了简化和修改。为了使语言易于使用,有 Arduino 开发环境,它基于基于 Java 的 Processing 开源 IDE。开发可以在作为 Windows、Mac OSX 或 Linux 下的主机的 PC 或 Mac 上完成,也可以在开发板上完成。网关软件可以使用 Arduino 编程语言和工具在 Linux 上开发。
Arduino纳米board 是一个小型、完整且适用于面包板的电路板,基于用于 Arduino Nano 3.0 的 ATmega328 处理器或用于 Arduino Nano 2.x 系列的 ATmega168。它只缺少一个直流电源插孔,并且可以使用 Mini-B USB 电缆而不是标准电缆。Nano 由 Gravitech 设计并生产。16 MHz 处理器在建议的 7-12 V 输入电压下运行,并具有 14 个数字 I/O 引脚,每个引脚的直流电流为 40 mA,可用于为无线模块供电。
ATmega168 版本中有 16 KB 的闪存或 ATmega328 中有 32 KB 的闪存,其中 2 KB 由引导加载程序使用。同样,ATmega168 有 1 KB 的 SRAM 和 512 字节的 EEPROM,或者 ATmega328 有 2 KB 的 SRAM 和 1 KB 的 EEPROM。
Arduino 板的价值在于业余爱好者开发的一系列开源软件,以及硬件的灵活性。制造商提供电路布局,并且很容易为无线功能构建附加卡或屏蔽。可以制造或购买无线屏蔽以在设计中添加无线链接。
Linux 上的 Arduino IDE Arduino
最常见的开发平台是 Linux,它同样是开源的。需要一些额外的程序,这取决于正在使用的 Linux 发行版。
关键工具是 Arduino IDE 1.0.1,因为它使用内部预构建 GCC(GNU Compiler Collection)编译器。这不包括所有工具链问题,并包括 Java 运行时包 6 或 7 -nopenjdk-7-jre 或 oracle JRE 7。Arduino
软件下载包括两个附加依赖项的自定义版本:
RXTX,一个 Java 和本地库,用于与 Arduino 板等串行设备进行通信
avrdude,一个将程序上传到 AVR 微控制器的应用程序(就像 Arduino 板上的那些)
Arduino 附带的 avrdude 进行了修改,以确保在上传之前 Arduino 板的自动重置功能正常(否则上传将失败)。Arduino 版本的源代码也可以在开源存储库 GitHub 上找到。
Arduino 附带的 RXTX 已修改为支持 /dev/ttyACM 形式的设备,这些设备由 Arduino Uno 和 Mega 2560 板使用。这些使用 ATmega8U2 而不是 FTDI 芯片进行 USB 串行通信。
无线屏蔽
XBee®屏蔽允许 Arduino 板使用 ZigBee® 进行无线通信。它可以在室内 100 英尺或室外 300 英尺(通过视距)进行通信。扩展板的简单性意味着它可以用作串行或 USB 替代品来创建简单的无线点对点连接,或者使用命令模式它可以配置为各种广播和网状网络选项作为无线网关。屏蔽层将 XBee 的每个引脚连接到通孔焊盘,还提供母排针以供数字引脚 2 至 7 和模拟输入使用,这些引脚被屏蔽层覆盖。数字引脚 8 至 13 不受屏蔽层的阻碍,因此它们可以使用板上本身的接头。
XBee 扩展板有两个跳线,用于确定微控制器(ATmega8 或 ATmega168)和 Arduino 板上的 FTDI USB 转串行芯片之间的串行通信。跳线位于 XBee 位置时,XBee 模块的 DOUT 引脚连接到微控制器的 RX 引脚,DIN 连接到 TX。
需要正确配置多个参数才能使两个模块相互通信(尽管使用默认设置,所有模块都应该能够相互通信)。它们需要在同一网络上,由 ID 参数设置。模块需要在同一通道上,由 CH 参数设置。最后,模块的目标地址(DH 和 DL 参数)确定其网络和通道上的哪些模块将接收其传输的数据。这可以通过几种方式发生:
如果模块DH 为0 且DL 小于0xFFFF(即16 位),则该模块发送的数据将被任何16 位地址MY 参数等于DL 的模块接收。
如果 DH 为 0 且 DL 等于 0xFFFF,则模块的传输将被所有模块以广播模式接收。
如果DH 不为零,或者DL 大于0xFFFF,则传输只会被序列号等于发送模块目的地址的模块接收,即点对点连接。
但是,这种地址匹配只会发生在同一网络和通道上的模块之间。如果两个模块位于不同的网络或通道上,则无论其地址如何,它们都无法通信。开发板和扩展板可以立即协同工作,但有时可能需要通过 Arduino 开发板上运行的代码配置 XBee 模块。这需要开关处于 Micro 位置并使模块进入配置模式,它需要三个加号:+++ 并且需要至少一秒钟之前和之后没有其他字符发送到模块。 请注意,这包括换行符或回车符。设置配置模式后,模块将返回两个字符“OK”,然后是回车。
Send Command Expected Response
+++ OK《CR》
一旦进入配置模式,就可以使用 AT 命令来控制模块。命令字符串的格式为 ATxx(其中 xx 是设置的名称)。要读取设置的当前值,请发送命令字符串,后跟回车符。要将新值写入设置,请发送命令字符串,紧随其后的是新设置(中间没有空格或换行符),然后是回车符。例如,要读取模块的网络 ID(确定它将与哪些其他 XBee 模块通信),请使用“ATID”命令: 更改模块的网络 ID: 检查设置是否生效:
Send Command Expected Response
ATID 3332《CR》
Send Command Expected Response
ATID3331 OK《CR》
Send Command Expected Response
ATID 3331《CR》
除非将更改写入非易失性存储器,否则它们只会在模块断电之前生效。要永久保存更改,请以相同方式使用 ATWR 命令: 要将模块重置为出厂设置,请使用 ATRE 命令: 请注意,与其他命令一样,除非您使用 ATWR 命令,否则重置不会是永久的。 Laird Embedded Wireless Solutions的 Arduino ModFLEX 扩展板使用 SiFLEX02,将高性能 802.15.4 无线电和微控制器结合在具有成本效益的预认证封装中,其中 I/O 连接器与 Arduino 开源平台兼容。
Send Command Expected Response
ATWR OK《CR》
Send Command Expected Response
ATRE OK《CR》
该模块具有一个 900 MHz DSSS 收发器、带有射频放大器电路的 Atmel 无线电和一个 Atmel ATRXMEGA 微控制器,为其提供与主板相同的环境。它预装了一个运行在 Atmel 802.15.4 MAC 之上的主机串行接口。该扩展板具有完整的调试和编程功能,可以开发自定义应用程序,ZigBee 堆栈或 MAC 可以轻松加载到模块上以创建自定义网络。
该模块具有 250 mW 的输出功率,可提供 2 英里的视线范围以及 1 Mbps 的射频数据速率。
其他无线拓扑通过使用 面包板原型系统
,可以使用独立的无线模块为 Arduino 板构建屏蔽。 这允许使用其他设备来创建屏蔽来处理其他拓扑,例如 Wi-Fi。
Microchip 的RN-171 模块是一个独立的完整 TCP/IP 无线网络模块,可与原型板一起使用以提供 Wi-Fi 连接。由于外形小巧且功耗极低,RN-171 非常适合移动无线应用,例如 Arduino 扩展板。
图 :Microchip Wi-Fi 模块。
它集成了 2.4 GHz 无线电、TCP/IP 堆栈、实时时钟、加密加速器、电源管理和模拟传感器接口。该模块预装了固件,以简化集成并最大限度地减少应用程序的开发。在最简单的配置中,硬件只需要四个连接(PWR、TX、RX 和 GND)来创建无线数据连接。RN-171 还包括一个内置的 HTML 客户端,可自动将串行 UART 数据或传感器数据发布到 Web 服务器。
其他拓扑包括用于连接机器对机器 (M2M) 网络的蓝牙®。Laird Technologies 无线M2M
AC4490 900 MHz 无线电模块使用经过现场验证的 FHSS 技术取代工业环境中数英里的电缆,无需额外的站点许可。该模块包括抗干扰功能,可与其他网络协同工作,同时保持数据完整性。它可以通过原型面包板使用 12 针接头连接到 Arduino 板。
AC4490 的特性包括插入式安装、许多即时控制命令,以及用作直接电缆替代品的能力,无需特殊的主机软件进行通信。所有的跳频、同步和射频系统数据传输/接收均由模块执行。
该无线电模块可以实现超过 20 英里的开放场范围,在 900 MHz 频段具有高传播,并包括 1 W 功率传输选项和接收链中的灵敏低噪声放大器。它支持单播(一对一寻址)和广播(一对多寻址)模式,以及带有硬件和/或软件 ACK 指示的确认模式 (ACK) API,以确保已接收到数据。还有一个单信标模式和一个动态无线电数据表,可保留多达 12 个无线电模块的数据。
互联网连接
构建无线网关的另一面是将其连接到互联网,使用以太网屏蔽很简单,特别是如果它可以使用以太网供电 (PoE) 技术。Arduino ETH 盾牌包括一个 PoE 模块,并允许 Arduino 板使用以太网库连接到 LAN。它包括一个带有有源电压转换器和板载复位控制器的微型 SD 卡连接器,并且可以通过以太网供电。
结论
将 Nano 等低成本处理器板与 XBee 等无线屏蔽相结合,创建了易于开发的无线控制器。添加具有自身电源的以太网屏蔽使组合成为无线网关,将模块、传感器和执行器连接到互联网,以便智能手机和平板电脑等设备可以控制它们。Arduino IDE 提供了强大的开发环境,并且项目的开源性质允许轻松获取库和代码并用于构建网关。
评论
查看更多