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提供了一个强大的开发环境,项目的开源特性允许轻松获取库和代码并用于构建网关。
AMD EPYC稳产供应,发布新版开放计算平台,支持Vega多卡并行
东软面向医疗领域推出多款AI+医疗行业应用
义乌市推进5G网络向农村延伸,基本实现镇街和行政村全覆盖
模拟信号隔离方法的总结
输出电压为什么要偏移?差分电路原理解析
如何构建Arduino无线网关开发平台
电动汽车“隐形的翅膀”:智能微网技术与无线电传输技术的结合
对于三防产品而言,它的外观设计需要考虑哪些方面
今日传感财经:光学仪器概念报跌;光学传感器概念报跌;可穿戴传感器板块报跌
上汽集团和宁德时代在动力电池领域的合作上升至一个新台阶
猜一猜:这个未来植入医疗部件适合用在人体哪个部位?
华为详解Mate40的四网协同技术
Linux如何获取写文件的进程号
关于清漆划痕试验仪产品的简单介绍
watchOS 7代码揭示了新的“国际”表盘
Trinamic:专注电机运动控制
路由器是干什么的 无线网是干什么的
单片机入门教程第九课-单片机指令(二)
采用双管正激拓扑构建高性能模块电源设计
无刷直流电机驱动器原理图