基于物联网的LED路灯控制器设计
目前,所使用的大功率LED路灯大部分都是简单的直接照明,缺少必要的智能控制,或者有些虽然具备有智能控制的功能,但是却不能自动检测路灯的照明状况,也不能方便地对路灯进行远程及本地调控。 并且现有的照明管理系统大都采用有线电缆控制照明灯具,对LED 路灯进行调控,通信协议比较复杂,建设成本和运营成本都比较高。 本文将物联网嵌入式技术引入路灯控制器,实现LED 路灯的智能控制。
物联网,是指将各种信息传感设备,如射频识别(RFID) 装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网结合起来而形成的一个巨大网络,将沟通从任何时间任何地点任何人之间的沟通连接扩展到人与物( Human to Thing) 和物与物( Thing to Thing) 之间的沟通连接。 发展物联网的关键在于射频标签、传感器、嵌入式系统及传输数据计算等领域。 其中,嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。 嵌入式系统是物联网的“大脑“和“中枢神经”,物联网内的所有个体都需要嵌入式系统来传输和处理处理信息,嵌入式系统的好坏将直接影响物联网的运做。
本文以路灯控制器为应用背景,设计了支持CDMA 及ISM 无线通信的智能路灯控制器,将物联网嵌入式技术应用其中,利用控制器提供的专用接口和CDMA 网络平台,实现与各类传感器的连接,实现“人—物”、“物—物”、“物—人”之间的信息交流。
1 路灯控制系统
本文设计的路灯控制系统由3 个控制层、2个通信层组成。 系统的结构如图1 所示。 操作人员通过监控软件或手机将需求数据发送到CDMA网络进而传送给路灯主控器; 路灯主控器对接收数据分析、处理,并通过自组ISM 无线网络将数据送给节点控制器; 节点控制器做出响应并发出返回数据,数据按原路径返回给操作人员。 本文设计了系统核心部分: 智能路灯控制器,包含了主控器及节点控制器的设计。
图1 路灯控制系统结构图
2 主控器设计
主控器包括: ATmega128 主控模块、CDMA 通信模块、ISM 通信模块、显示输入模块,结构图2所示。
图2 主控器结构图
2. 1 主控模块
在主控模块采用核心板设计,结构如图3 所示。
图3 主控模块结构图
主控芯片采用AVR ATmega128 芯片。 ATmega128是高性能、低功耗的AVR8 位微处理器,它的运行速度快,大多数指令可以在一个时钟周期内完成; 寿命: 10, 000 次写/擦除周期; 具有独立锁定位、可选择的启动代码区; 通过片内的启动程序实现系统内编程; 真正的读- 修改- 写操作硬件乘法器只需两个时钟周期; 具有128K 字节的系统内可编程Flash; 4K 字节的内部SRAM; 可以对锁定位进行编程以实现软件加密; 具有JTAG 接口,方便程序在线调试、下载; 两个可编程的串行USART; 可工作于主机/从机模式的SPI 串行接口。
2. 2 CDMA 模块
CDMA 模块内部封装了完善的TCP /IP 等协议栈,可为远程无线传输提供透明的TCP /IP 通道,主要完成主控器与远程控制中心通信,完成指令数据的双向传输。 CDMA 模块与主控器通过UART1 双向传送数据。 本系统选用电信公司提供的CDMA 模块,通过MAX232 电平转换芯片和ATmega128 的UART1 口相连,实现全双工的数据通信。 模块采用5V 供电,ATmega128 的PD6 口经MAX232 电平转换芯片转换后接到模块的DTR.
DTR 信号用来通知CDMA 模块准备发送数据还是发送已经结束。
2. 3 ISM 通信模块
ISM 通信模块主要完成主控器与节点控制器通信,模块芯片及接口如图4 所示。
图4 ISM 模块芯片及接口设计
本文选用nRF24l01 作为ISM 通信模块无线收发芯片。 nRF24l01 芯片是工作在2. 4 ~ 2. 5GHz 世界通用ISM 频段的单片无线收发器芯片,无线收发器包括: 频率发生器、增强型SchockBurstTM 模式控制器、功率放大器、晶体振荡器、调制器解调器、输出功率、频道选择和协议的设置可以通过SPI 接口进行设置。 它具有内置链路层,自动应答及自动重发功能、地址及CRC 检验功能、数据传输率1 或2Mbps、SPI 接口数据速率0 ~ 8Mbps、125 个可选工作频道。 芯片具有极低的电流消耗,当工作在发射模式下发射功率为- 6dBm 时电流消耗为9. 0mA,接收模式时为12. 3mA.
2. 4 显示输入模块
本文选择TFT034 触摸液晶模块用作显示及控制指令输入。 TFT034 采用四线电阻触摸屏作为输入,320x240 像素的8 位数据的256 彩色LCD屏作为显示输出。
320x240 像素的8 位数据的256 彩色LCD 屏,显示一屏所需的显示缓存为320 × 240 × 8bit,即76800 字节,在显示中每个字节,对应着屏上的一个像素点,因此,8 位256 彩色显示的显示缓存与LCD 屏上的像素点是字节对应的。 每个字节中又有RGB 格式的区分,既有332 位的RGB,又有233 的格式。 在彩色图象显示时,首先要给显示缓存区一个首地址,这个地址要在4 字节对齐的边界上,而且,需要在SDRAM 的4MB 字节控制之内。 它是通过配置相应的寄存器来实现的。 之后,接下来的76800 字节,就为显示缓存区,这里的数据会直接显示到LCD 屏上去。 屏上图像的变换是由于该显示缓存区数据的变换而产生的。 触摸液晶屏通过26脚排线与主控器相连,主控器IO 口数据可直接驱动触摸液晶屏模块。 四线触摸屏坐标获取通过AD7843 采集实现,程序代码如下:
void int0_isr( void) {
Coor_Y1 = Measure_Coordinate( 0xd6) ;
Coor_Y1 = ( Coor_Y1 > > 4) &0x0fff;
Coor_X1 = Measure_Coordinate( 0x96) ;
Coor_X1 = ( Coor_X1 > > 4) &0x0fff;
Coor_Y = ( unsigned int) ( ( unsigned long int)( Coor_Y1 - Y_T) * 320 /( Y_B - Y_T) ) ;
Coor_X = ( unsigned int) ( ( unsigned long int)( Coor_X1 - X_T) * 240 /( X_B - X_T) ) ;
PutPixel( Coor_X,Coor_Y,_RED_COLOR) ;
EIFR| = ( 1 < < INTF0) ; / /clr extend ints flag bit}
unsigned int Measure _ Coordinate ( unsigned char ControlByte)
{
unsigned char i;
unsigned int Coordinate;
CLR_AD7843_CS( ) ;
for( i = 0; i < 8; i + + ) {
CLR_AD7843_CLK( ) ;
if( ControlByte&0x80) SET_AD7843_DI( ) ;
else CLR_AD7843_DI( ) ;
ControlByte = ControlByte < < 1;
SET_AD7843_CLK( ) ;
CLR_AD7843_CLK( ) ; }
while( AD7843_BUSY_FLAG = = 0) ;
CLR_AD7843_DI( ) ;
for( i = 16; i > 0; i - - ) {
CLR_AD7843_CLK( ) ;
SET_AD7843_CLK( ) ;
Coordinate < < = 1;
if( AD7843_DO_STATE)
{ Coordinate | = 0x0001; } }
SET_AD7843_CS( ) ;
return( Coordinate) ; }
3 节点控制器设计
节点控制器包括: MCU 控制模块、调光模块、无线通信模块,结构如图5 所示:
图5 节点控制器结构图
3. 1 MCU 控制模块
MCU 控制模块采用STC89C52 芯片。
STC89C52 是一种低功耗、高性能CMOS8 位微控制器,具有8K 在系统可编程Flash 存储器。 使用高密度非易失性存储器技术制造
linux操作系统文章专题:linux操作系统详解(linux不再难懂)物联网相关文章:物联网是什么
评论