1  前言


如今,科技的发展不断扩展无线通讯领域,在无线通讯技术中运用比较广泛的有UWB、Wifi、NFC、ZigBee等等,它们或多或少都具有不同的属性和特点,但是论组网能力和灵活性,ZigBee技术都能有绝佳的发展前景。本设计是以人工智能为核心,高精准地实时采集城市道路数据,并采取有效手段除尘降温,推动了城市信息化发展以及提高人民幸福指数,以现代科技提高群众健康生活。城市道路除尘降温系统主要目标是取代传统的道路清洁方式,突破传统布线的壁垒,实现现代化道路清洁。相较于传统有线通信连接检测节点与控制节点,通过无线组网可以更加方便实现,具有良好的兼容性。城市的发展从原来的健全基本设施到如今精细化管理不断迈向新台阶,本设计将为城市道路环境数据监测和处理提供高效的、智能化的服务平台。


2  系统实现功能


  • 各路段组网:采用星型拓扑结构间隔50米道路绿化带完成监测,实现多个ZigBee终端节点与ZigBee协调器节点组网。
  • 实时监测:实现监测城市道路各路段的PM2.5浓度和温度,监测路段蓄水池的水位状况。
  • 手动模式:通过ZigBee协调器节点上按键设置根据各季节变化调整各路段的PM2.5和温度阈值,可以根据用户开关各路段的除尘降温装置。
  • 自动模式:当道路环境的PM2.5浓度高于该季节的最佳阈值且该路段蓄水池有水,自动打开降温除尘装置;当道路温度高于设置值且该路段蓄水池有水,自动打开降温除尘装置。
  • 报警功能:各路段蓄水池水位过低发出声光报警,提醒加水。
  • 上位机设计:上位机实现与各路段的信息的远程交互与控制。

    3  系统下位机设计


    3.1  下位机硬件选型


    序号

    模块

    型号

    1

    单片机

    CC2530单片机

    2

    通信模块

    ZigBee

    3

    温度传感器

    DS18B20

    4

    水位传感器

    ——

    5

    蜂鸣器

    ——

    6

    PM2.5传感器

    GP2Y1010AU0F

    7

    水泵驱动模块

    ——

    8

    显示模块

    OLED屏幕


    3.2  下位机实物展示



    4  上位机设计



    5  下位机部分源码


    void APP_Config(void)
    {usart_config();//串口初始化配置timer_config();//定时器初始化配置 gpio_config(); //IO口初始化配置
    #if defined(ZDO_COORDINATOR) //协调器 key_config();  //按键初始化配置flash_config();flash_read(122,0,flash_temp,8);if(flash_temp[0]!=0xff){  min_wendu=flash_temp[0];max_wendu=flash_temp[1]; min_shidu=flash_temp[2];max_shidu=flash_temp[3]; mode_relay=flash_temp[4]; max_pm25=flash_temp[5]; max_pm25=max_pm25<<8;max_pm25=max_pm25+flash_temp[6];  }display_info_config();
    #else HalAdcSetReference(HAL_ADC_REF_AVDD);P0DIR &= ~0x60;                 //P0.5 P0.6定义为输入口
    #endif  usart_sentstring("APP初始化完成\r\n"); printf("printf is ok\r\n");
    }
    void APP(unsigned char task)//用户轮询进程
    {#if defined(ZDO_COORDINATOR) //协调器   if(flag_beep==1){if(cnt_beep>2000){BEEP_ON;cnt_beep=0;}else{if(cnt_beep>100){BEEP_OFF;   }}}else{BEEP_OFF;}key_server();//按键扫描进程App_Report();#endifswitch(task)              //任务进程{case 0://串口进程if(rx_update)     //串口命令进程,收到\r\n更新命令{rx_update=0;             //清除更新标志位printf("receive usart command:%s\r\n",rx_temp);//打印接收的数据rtc_usart_time_set();    //串口设置RTC时间函数usart_set_mode(); usart_set_relay();usart_set_range();usart_check_mode();usart_check_relay();usart_check_range();flash_erase(122);//清除FLASHdelayms(100);flash_temp[0]=min_wendu;flash_temp[1]=max_wendu;flash_temp[2]=min_shidu;flash_temp[3]=max_shidu;flash_temp[4]=mode_relay;             flash_temp[5]=max_pm25>>8;flash_temp[6]=max_pm25; flash_write(122,0,flash_temp,8);display_info_config();wipe_buffer(rx_temp,50);//清除串口缓存数据rx_index=0;             //串口缓存指针回0rx_flag=1;              //串口允许接收timer1cnt=0;}                      break;case 1://显示刷新进程 if(keymode==0) { #if defined(ZDO_COORDINATOR) //协调器{ display_info();      //温湿度显示           }#else                        //终端或路由  {                    }#endif }break;case 2://切换显示进程 if(keymode==0) {            #if defined(ZDO_COORDINATOR) //协调器          if(timer1cnt>1000) //定时器进程{rf_temp[0]='1';rf_temp[1]='1';rf_temp[2]='1';rf_temp[3]='\r';rf_temp[4]='\n';rf_temp[5]=mode_relay+0x30;rf_temp[6]=status_relay+0x30;rf_temp[9]=0;RF_ACK(rf_temp);timer1cnt=0;}#else          if(timer1cnt>800) //定时器进程,每3秒翻转一次显示内容{   timer1cnt=0;}    task=0;                                     #endif             }                         break;case 3://继电器控制进程#if defined(ZDO_COORDINATOR) //协调器    #endif     task=0;  break;case 4:break;case 5:break;default:task=0;break;}
    }
    void display_info(void)
    {unsigned char i;LCD_P8x16(40,0,&number[pm25/100]);LCD_P8x16(48,0,&number[pm25%100/10]);LCD_P8x16(56,0,&number[pm25%10]);    LCD_P8x16(40,2,&number[temperature/10]);LCD_P8x16(48,2,&number[temperature%10]);LCD_P8x16(40,4,&number[soil/10]);LCD_P8x16(48,4,&number[soil%10]);if(mode_relay==0){for(i=0;i<2;i++)LCD_P16x16Ch(16*i,6,22+i);//自动}else{for(i=0;i<2;i++)LCD_P16x16Ch(16*i,6,24+i);//手动}if(status_relay==1){LCD_P16x16Ch(112,6,28);//开}else{LCD_P16x16Ch(112,6,29);//关} flag_beep=0;   if(mode_relay==0)  status_relay=0;//自动模式下,先关闭if(temperature>max_wendu){if(mode_relay==0){ status_relay=1;}flag_beep=1;  }if(pm25>max_pm25 ){if(mode_relay==0){ status_relay=1;}flag_beep=1;  }if(soil<min_shidu){//完全没水,报警flag_water=0;flag_beep=1;    }else{if(soil<max_shidu){//快没水了,报警但还能用flag_beep=1;flag_water=1;}else{if(soil>max_shidu){//水量充足flag_water=2;}    }} if(flag_water==0)//缺水,不管模式,都关掉{status_relay=0;}
    }

基于ZigBee的城市道路除尘降温系统设计相关推荐

  1. 基于ZigBee的智能家居安全监控系统设计

    前 言 智能家居又称智能住宅,正朝着具备无线远程控制.多媒体控制.高速数据传输等功能的方向发展,其关键技术为兼容性强的家庭控制器和满足信息传输需要的家庭网络.目前,传输网络多采用综合布线技术,限制了系 ...

  2. 基于ZigBee 的多点温度采集系统设计与实现

    摘要:针对广阔空间环境温度采集系统对功耗及成本的要求,设计了基于无线传感网络技术的多点温度采集系统.以CC2430 为主控芯片,选用DS18B20 作为温度采集节点的传感器,基于ZigBee 协议栈构 ...

  3. 基于ZigBee的室内无线定位系统设计

    1 前言 国内的当前主流的定位技术有WiFi定位,RFID定位,蓝牙定位,ZigBee定位等几种方法,WiFi无线技术当前主要用于无线局域网的建立与路由功能,具有高速,载波侦听,支持多个用户的特点,由 ...

  4. 基于ZigBee的工业废气监测系统

    **付费资源链接**:基于ZigBee的工业废气监测系统付费资源 我的论文.程序.开题报告.各模块资料.硬件设计等都已经发布到这个资源里了,大家有需要自行下载. 文章目录 摘 要 ABSTRACT 第 ...

  5. 基于ZigBee技术的无线抄电表系统设计(1)

    基于ZigBee技术的无线抄电表系统设计(1)---基于ZigBee技术的无线抄电表系统设计(1) 本文引用地址: http://embed.21ic.com/hardware/development ...

  6. 基于51单片机的DS18B20温度控制加热降温系统设计

    基于51单片机的DS18B20温度控制加热降温系统设计 1 开发环境 2 功能说明介绍 3 仿真图 4 程序 5 原理图 6 视频讲解 7 设计报告 7.1 设计目的 7.2 概述 7.3 国内外研究 ...

  7. 毕业设计 基于zigbee的智能家居系统设计与实现

    文章目录 1 简介 2前言 2.1 系统目标 3 系统架构 3.1 网关板设计: 3.2 ZigBee网络感知层 3.3 显示控制平台及数据保存 3.4 NB-IOT模块实现 实现效果 4 最后 1 ...

  8. ZigBee网络数据传递流程_基于ZigBee—WSN的温湿度监测系统

    摘要:针对环境监测系统布线复杂.数据的实时性和准确性低等问题,提出了一种基于ZigBee技术的分布式传感器网络平台.选用SHT75传感器实现对监测点温湿度信息的精准采集,并通过由CC2530芯片和CC ...

  9. 基于ZigBee的家居控制系统的设计与应用

    基于ZigBee的家居控制系统的设计与应用 PPT简介:http://pan.baidu.com/s/1i38PC6D 摘  要 智能家居是未来家居的发展方向,其利用先进的网络技术.计算机技术和无线通 ...

最新文章

  1. 批次管理的质量跟踪案例分享_食品加工行业
  2. php实现上传文件功能,简单实现php上传文件功能
  3. STL之vetor 排序
  4. C++ chrono 库中的 steady_clock 、 system_clock、high_resolution_clock区别
  5. 电话光端机应用范围解析!电话光端机主要应用在哪些领域?
  6. 377. 组合总和 Ⅳ golang 动态规划
  7. ubuntu镜像源列表
  8. springboot开始
  9. 计算机主机系统总线,全国2009年10月高等教育自学考试计算机应用基础试题及答案...
  10. feign整合sential_Sentinel 和 Feign 集成时,方法名称写错
  11. iOS研发助手DoraemonKit技术实现之Crash查看
  12. 如何获得CSDN积分
  13. 尚硅谷html+css小米官网
  14. VB脚本:快速入门教程
  15. 各类曲线的参数方程_曲线的参数方程
  16. 2021-06-19:交错字符串。 有三个字符串s1,s2,s3。判断s3是否由s1和s2交错组成的。比如s1=“abc“,s2=“123“,s3=“12ab3c“,应该返回true,因为s3去掉12
  17. COUNT统计未支付、待确认订单
  18. 英语听力采用计算机化考试,高考英语听力机考12问——访北京教育考试院有关负责人...
  19. 考研计算机软件与理论院校排名,计算机软件与理论专业考研院校排名
  20. h5自动播放视频且有声音的办法

热门文章

  1. 求绝对值指针c语言,C语言实现abs和fabs绝对值
  2. c语言diy杀毒程序源代码,c - 源码下载|其它|杀毒|源代码 - 源码中国
  3. [程序员学英语]英语发音规则
  4. 关于RapidSSL证书
  5. 高校奖学金评定系统的设计与实现(论文+源码)_kaic
  6. 服务器ssl证书升级
  7. pcb只开窗不镀锡_关于pads中 PCB铺铜开窗镀锡 的操作
  8. @Scope注解设置创建bean的方式和生命周期
  9. RabbitMQ管理界面操作详情
  10. border属性之border-radius