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