版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
无线传感器网络节点的能源模块和低功耗管理结题报告一、无线传感器网络节点的电源供应及解决思路二、该项目的思路及具体方案三、实施结果无线传感器网络节点的能源模块和低功耗管理无线传感器网络节点的电源供应及解决思路首先,无线传感器节点多是布置在人能难轻易到达的地方。其次,无线传感器节点放置点一般的环境都很恶劣。再次,无线传感器节点一般都是长期不定时的监测。综上,无线传感器节点要长期处于恶劣环境的监测环境下,所以就必须解决其能源的连续供应。节点所需电源需求根据指导老师提出的需求:
2000mAh容量锂电池
3.3V5V输出功率>400mA*3.7V
工作时间每天0.4—2.4小时在野外为环境监测节点供电
解决办法我们的方案:
用太阳能作为初始能源,在光强足够的情况下对可充电电池进行充电,当光照较弱或无阳光状态下利用电池提供能源需求。
太阳能电板5V稳压充电管理1充电管理2电池组1电池组3电池组23V继电器3V继电器3V继电器3.3V和5V输出单片机液晶和按键比较器锂离子电池标称电压容量--1300mAh标称电压
--3.7V最高电压
--4.2V3组每组2片采用并联共6片太阳能电板的选择单晶硅太阳能电池多晶硅太阳能电池非晶硅太阳能电池多元化合物电池太阳能电池板尺寸--34*28cm峰值电压--20V峰值功率--10W充电曲线充电管理
CN-3063是一款太阳能给锂电池充电的专用芯片,
芯片接法采取办法
结合CN3063最大充电电流可调的特点在光照较强时,调整其充电限制电流,测量输出电流和电压,当其乘积最大时,即默认为最大功率点
典型测试数据:(温度30摄氏度,天气晴朗无云,下午13:00—15:00)限制电流
电压输出电流输出充电功率
400mA4.36v400mA1.744w500mA4.45v500mA2.225w600mA4.45v530mA2.359w
800mA4.43v510mA2.259w放电管理放电管理主要由单片机配合外围电路完成完成主要功能:------》电压检测,通过单片机自带AD完成(阈值为3.5V)------》电池切换,通过3V继电器完成------》定时功能,通过单片机定时器控制放电时间------》人机交互,放电时间可设置,通过液晶按键及EEROM完成单片机软件##include<STC12C5A60S2.H>include<intrins.h>#defineuintunsignedint#defineucharunsignedchar#defineulongunsignedlongsbiten=P4^5;sbitrd=P4^4;sbitrw=P2^7;sbitkey1=P3^3;sbitkey2=P3^4;sbitkey3=P3^5;sbitkey4=P3^6;sbitrelay1=P2^0;sbitrelay2=P2^1;sbitrelay3=P2^2;bitsym,sign;ucharopen_time=0,shut_time=0,timer0_open,timer0_shut,timer0_num,timer0_sec;uinttime1,time2;floatbatter2,batter3;uchartotal=0;uintcount;/******延时程序****/voiddelay(ucharz){ ucharx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}/*********向1602中写命令********/voidwrite_com(ucharadd){rw=0;en=0;rd=0;P0=add;delay(5);en=1;delay(5);en=0;}/*********初始化1602*******/voidinit_1602(){write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);}/*********向1602中写单个数据********/voidwrite_dat(uchardat){rw=0;en=0;rd=1;P0=dat;delay(5);en=1;delay(5);en=0;}/*********向1602中写字符串数据********/voidwrite_string(uchar*p){while(*p!='\0'){ write_dat(*p); p++;}}/********打开IAP**********/voidopen_iap() {IAP_CONTR=0x82;}/********关闭IAP**********/voidclose_iap(){IAP_CONTR=0x00;IAP_ADDRH=0xff;IAP_ADDRL=0xff;}/********读EEPROM*********/ucharread_eeprom(uintadd){IAP_CMD=0x01;IAP_ADDRH=(add&0xff00)>>8;IAP_ADDRL=add&0x00ff;IAP_TRIG=0x5A;IAP_TRIG=0xA5;returnIAP_DATA;}/********写EEPROM*********/voidwrite_eeprom(uintadd,ucharwrite_data){IAP_CMD=0x02;IAP_ADDRH=(add&0xff00)>>8;IAP_ADDRL=add&0x00ff;IAP_DATA=write_data;IAP_TRIG=0x5A;IAP_TRIG=0xA5;}/********擦除EEPROM整个扇区*******/voidclean_all_eeprom(uintadd){IAP_CMD=0x03;IAP_ADDRH=(add&0xff00)>>8;IAP_ADDRL=add&0x00ff;IAP_TRIG=0x5A;IAP_TRIG=0xA5;}/********擦除EEPROMR任意单元*******/voidclean_chose_eeprom(uintadd){ucharxdataeeprom[512]={0};uinttemp,num,i;temp=(uint)((add/512)*512);num=add%512;for(i=0;i<512;i++){ eeprom[i]=read_eeprom(temp+i);}clean_all_eeprom(temp);eeprom[num]=0xff; for(i=0;i<512;i++){write_eeprom(temp+i,eeprom[i]);}}/******开启AD转换电源*******/ voidADC_Power_On(){ADC_CONTR|=0x80;delay(5);//必要的延时}/***取AD结果函数,它是十位AD转换,每十次平均,最后取低八位作为AD采样数据****/uintget_ad_result(){uintq=0,result,high,low,real_result;ucharmark,i,ad_high,ad_low;for(i=0;i<10;i++){mark=0;ADC_RES=0;//高八位数据清零,STC12C5A60S2AD数据寄存名与STC12C54××系列不同
ADC_RESL=0;//低两位清零
ADC_CONTR|=0x08;//启动AD转换
while(!mark)//判断AD转换是否完成
{mark=0x10;mark&=ADC_CONTR;}ADC_CONTR&=0xe7;ad_high=ADC_RES;ad_low=ADC_RESL;high=(uint)ad_high;low=(uint)ad_low;real_result=(high<<2)|low;q=q+real_result;}result=q/10;returnresult;
}/************************AD转换结束***********************///---------------------电压采样程序-------------------------floatAD_sampling(ucharadd1,ucharadd2)//测电压{uintvi;floattemp;P1ASF=add1;P1M0|=add1;//设P1_0为开漏模式如:P1_0=#00000000BP1M1|=0x00;ADC_CONTR=add2;//设置P1.0为输入AD转换口
delay(2);vi=get_ad_result();temp=(vi*3.3)/1024;returntemp;}voiddisplay_charging_time(ucharadd,ucharf,uchartime){ucharcharging,shi,ge,flag;flag=f;charging=time;shi=charging/10;ge=charging%10;if(flag==1){if(sym==1) { write_com(0x80); write_string("set"); } write_com(add);write_string("open");write_com(add+0x07);write_dat(0x30+shi);write_dat(0x30+ge);}if(flag==2){ write_com(add);write_string("shut");write_com(add+0x07);write_dat(0x30+shi);write_dat(0x30+ge); }}voidinit_timer(){TMOD=0x10;TH1=(65536-45872)/256;TL1=(65536-45872)%256;EA=1;ET1=1;TR1=0;}voidinit_int1(){EX1=1;IT1=0;}voidinit_int0(){EX0=1;IT0=1;}voidmain(){P4SW=0x30; ADC_Power_On();//开AD电源
init_1602(); init_timer(); init_int1(); while(1) { PCON=0x01; _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();}}voidinit1()interrupt2{sign=1;init_1602();while(sign){ open_iap(); open_time=read_eeprom(0x0002); shut_time=read_eeprom(0x0001); close_iap(); write_com(0x80); write_string("run"); display_charging_time(0x80+0x05,1,open_time); display_charging_time(0x80+0x45,2,shut_time); if(key4==0) { delay(10); if(key4==0) { total++; sym=1; TR1=0; timer0_sec=0; } if(total==1) { display_charging_time(0x80+0x05,total,open_time); } if(total==2) { display_charging_time(0x80+0x45,total,shut_time); } if(total==3) { total=0; sym=0; TR1=1; write_com(0x01); write_com(0x80); write_string("run"); display_charging_time(0x80+0x05,1,open_time); display_charging_time(0x80+0x45,2,shut_time); if(relay2==0) { write_com(0x80+0x40); write_string("bat2"); } if(relay3==0) { write_com(0x80+0x40); write_string("bat3"); } sign=0; } while(!key4); } if(key2==0) { delay(10); if(key2==0) { if(total==1) { open_time++; if(open_time>=99) open_time=0; display_charging_time(0x80+0x05,total,open_time); open_iap(); clean_chose_eeprom(0x0002); write_eeprom(0x0002,open_time); close_iap(); } if(total==2) { shut_time++; if(shut_time>=99) shut_time=0; display_charging_time(0x80+0x45,total,shut_time); open_iap(); clean_chose_eeprom(0x0001); write_eeprom(0x0001,shut_time); close_iap(); } } while(!key2) ; } if(key3==0) { delay(10); if(key3==0) { if(total==1) { open_time--; if(open_time==0) open_time=99; display_charging_time(0x80+0x05,total,open_time); open_iap(); clean_chose_eeprom(0x0002); write_eeprom(0x0002,open_time); close_iap(); } if(total==2) { shut_time--; if(shut_time==0) shut_time=99; display_charging_time(0x80+0x45,total,shut_time); open_iap(); clean_chose_eeprom(0x0001); write_eeprom(0x0001,shut_time); close_iap(); } while(!key3); } } }}voidINT0()interrupt0{_nop_();_nop_();_nop_();_nop_();}voidtimer0()interrupt3{TH0=(65536-45872)/256;TL0=(65536-45872)%256;timer0_num++;if(timer0_num==20){ timer0_num=0; timer0_sec++; open_iap(); timer0_shut=read_eeprom(0x0001); timer0_open=read_eeprom(0x0002); close_iap(); time1=timer0_open*60; time2=(timer0_open+timer0_shut)*60;batter2=AD_sampling(0x02,0xe1); _nop_(); _nop_();_nop_(); _nop_(); batter3=AD_sampling(0x20,0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖北襄高城市更新投资有限公司招聘考试总及笔试历年备考题库附带答案详解
- 项目施工人员岗位职责管理方案
- 起重机基础施工方案
- 公司销售业绩监控方案
- 2026年上半年四川事业单位统考四川省政府政务服务和公共资源交易服务中心及所属事业单位招聘4人考试参考题库及答案解析
- 公司高效沟通管理机制方案
- 2026四川成都市泡桐树中学教师招聘考试备考试题及答案解析
- 2025年安徽省农垦集团有限公司所属企业高层次人才招聘6名笔试历年备考题库附带答案详解
- 公司财务审查与审批制度方案
- 2026天津机电职业技术学院招聘事业单位人员(高层次人才)16人考试备考试题及答案解析
- 测绘新技术的推广应用研究
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 【MOOC】《知识创新与学术规范》(南京大学)期末考试慕课答案
- 初一学习方法分享
- 算法治理与人工智能在司法领域的应用与风险控制报告
- 北京小汽车租赁合同(标准版)
- T-CQAP 3015-2025 人间充质干细胞药品生产和质量控制规范
- 国开《学位论文指南》形考作业1-2答案
- 《(近)零碳工厂评价技术规范》
- 幼儿园中班语言《春节是个百音盒》课件
- CQI-17锡焊系统评估第二版(2021年发布-含记录)
评论
0/150
提交评论