CC2530+ESP8266 环境监测系统

这篇具有很好参考价值的文章主要介绍了CC2530+ESP8266 环境监测系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、CC2530核心板电路设计。

(1)器件选型,填写好选型表,粘贴在此。

器件名称及封装

所需数量

单价

MINI-USB

1

8.9

晶振

1

3.03

电容

6

0.08

LED

7

0.06

电阻

14

0.1

三极管

1

2.52

继电器

1

7.96

滑动电阻

1

9.8

开关

4

0.24

AMS117-3.3

1

2.65

CH340

1

12.8

(2)原理图设计--清楚截图并简要说明。

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

 

IO口配置我们需要配置的寄存器,外部中断需要配置三个寄存器,IRCON:中断标志4,;0为无中断请求。1为有中断请求。TIMIF:定时器1的溢出中断屏蔽与定时器3、4的中断标志。D6为定时器1的溢出中断屏蔽,0为屏蔽,1为使能,默认为1.D5~D0为定时器3和4中各个通道的中断标志,T3 定时器主要是配置三个寄存器,定时器3或定时器4的方式控制寄存器。

3PCB设计--清楚截图并简要说明

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

定义一块宽为1800mil,长为2000mil的单层电路板。设置度量单位为英制,分别设置可视栅格、捕获栅格、元件栅格和电气栅格的数值为20mil,25mil,25mil,10mil,在Topoverlayer层上放置字符串,旋转角度为30度。设置底层丝印层的颜色为100号色。设置多边形敷铜栅格尺寸为20mil,路径宽度为5mil,最小长度为3mil,焊盘环绕形状为八边形。

二、CC2530底板电路设计。

(1)器件选型,填写好选型表,粘贴在此。

器件名称及封装

所需数量

单价

CC2530

1

20

电容

18

0.08

电阻

4

0.1

晶振

1

3.03

SMA

1

4.81

(2)原理图设计--清楚截图并简要说明。

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

CC2530 具有一个IEEE 802.15.4 兼容无线收发器。RF 内核控制模拟无线模块。另外,它提供了MCU 和无线设备之间的一个接口, 它有三种不同的内存访问总线(SFR,DATA 和CODE/XDATA),单周期访问SFR,DATA 和主SRAM。它还包括一个调试接口和一个18 输入扩展中断单元。 中断控制器总共提供了18 个中断源,分为六个中断组,每个与四个中断优先级之一相关

3PCB设计--清楚截图并简要说明

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

在Topoverlayer层上放置字符串,旋转角度为30度。设置底层丝印层的颜色为100号色。设置多边形敷铜栅格尺寸为20mil,路径宽度为5mil,最小长度为3mil,焊盘环绕形状为八边形。定义一块宽为1800mil,长为2000mil的单层电路板。设置度量单位为英制,分别设置可视栅格、捕获栅格、元件栅格和电气栅格的数值为20mil,25mil,25mil,10mil.

三、网关模块电路设计。

(1)器件选型,填写好选型表,粘贴在此。

器件名称及封装

所需数量

单价

MicroUSB

1

8.8

CH340

1

12.8

晶振

1

3.03

电容

5

0.08

LED

6

0.06

电阻

13

0.1

三极管

2

2.52

开关

2

0.24

ESP8266

1

28.00

继电器

1

7.96

DHT11

1

6.90

蜂鸣器

1

2.90

光敏电阻

1

3.3

(2)原理图设计--清楚截图并简要说明。

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

1、电源转换电路:对从USB接口输入的电流进行稳压稳流处理

2、USB转TTL电路:带电阻负载的BJT反相器,其动态性能不理想。在保持逻辑功能不变的前提下,可以另外增加若干元器以改善其动态性能,如减少由于BJT基区电荷存储效应和负载电容所引起的时延。

3、USB接口电路:传输电流以及信息

4、序号1~18组成9组的跳线帽:各个接口直接的连接与断开

5、ESP8266模块接口:主要模块,匹配串口实现数据传输

6、蜂鸣器:GPIO14引脚,低电平触发

7、光敏电路:光敏电路,实现感光效果

8、温湿度(DHT11)电路:测量温湿度

9、彩灯电路:R、G、B三色彩灯模块

10、按键和电路指示灯:系统重启按键,LED灯指示

11、继电器电路:电路控制模块,控制高低电压的流通

(3)PCB设计--清楚截图并简要说明。

cc2530核心板,嵌入式系统,环境监测,嵌入式硬件

定义一块宽为1800mil,长为2000mil的单层电路板。设置度量单位为英制,分别设置可视栅格、捕获栅格、元件栅格和电气栅格的数值为20mil,25mil,25mil,10mil,在Topoverlayer层上放置字符串,旋转角度为30度。设置底层丝印层的颜色为100号色。设置多边形敷铜栅格尺寸为20mil,路径宽度为5mil,最小长度为3mil,焊盘环绕形状为八边形。

包括:电源转换电路:ESP8266IO口、外部传感器电源接口、外部彩灯接口,ESP8266模块接口,USB转TTL电路及USB接口电路,蜂鸣器及光敏电路,温湿度(DHT11)电路,彩灯电路,按键和电路指示灯,继电器电路。

四、程序设计。

(1)CC2530数据采集关键代码并详细注释。

static void appSwitch()

{

 //   halLcdWriteLine(HAL_LCD_LINE_1, "Switch");

  //  halLcdWriteLine(HAL_LCD_LINE_2, "Joystick Push");

  //  halLcdWriteLine(HAL_LCD_LINE_3, "Send Command");

#ifdef ASSY_EXP4618_CC2420 //液晶模块的定义,我们不用管他

    halLcdClearLine(1);

    halLcdWriteSymbol(HAL_LCD_SYMBOL_TX, 1);

#endif



   // pTxData[0] = LIGHT_TOGGLE_CMD;

   char data[APP_PAYLOAD_LENGTH]="DHT11:1&";

   // for(int i=0;0==data[i]-'0';i++)

   // {

   //   pTxData[i+1]=data[i];

   // }

   //  pTxData="DHT11:123&";

    //sprintf(pTxData,"%s",data);

   

    // Initialize BasicRF

    basicRfConfig.myAddr = SWITCH_ADDR;

    if(basicRfInit(&basicRfConfig)==FAILED) { //Basic RF 启动中的初始化,就是Basic RF 启动的第 3 步      HAL_ASSERT(FALSE);

    }

pTxData[0] = LIGHT_TOGGLE_CMD;//Basic RF 发射第 1 步,把要发射的数据或者命令放入一个数据 buffer,此处把灯状态改变的命令 LIGHT_TOGGLE_CMD 放到 pTxData 中。

        basicRfReceiveOff();//由于模块只需要发射,所以把接收屏蔽掉以降低功耗。



    // Main loop

    while (TRUE) {

      //  if( halJoystickPushed() ) {  / qiujie tech

      if(halButtonPushed()==HAL_BUTTON_1){ //按键 S1 被按下,if(halButtonPushed()==HAL_BUTTON_1)判断是否 S1 按下,函数halButtonPushed()是 halButton.c 里面的,它的功能是:按键 S1有 被 按 动 时 , 就 回 返 回 true ,则进入basicRfSendPacket(LIGHT_ADDR, pTxData, APP_PAYLOAD_LENGTH);



            basicRfSendPacket(LIGHT_ADDR, data, APP_PAYLOAD_LENGTH);

//Basic RF 发射第 2 步,也是发送数据最关键的一步,

            // Put MCU to sleep. It will wake up on joystick interrupt

            halIntOff();

            halMcuSetLowPowerMode(HAL_MCU_LPM_3); // Will turn on global

            // interrupt enable

            halIntOn();//使能中断发送的 appSwitch()讲解完毕,接下来就到我们的接收 appLight()函数了

        }

    }

}

(2)CC2530引脚控制关键代码并详细注释。

//函数声明

void Delay(uint);

void initUARTSEND(void);

void UartTX_Send_String(char *Data,int len);



char Txdata[50]={0};

void initUARTSEND(void)

{



    CLKCONCMD &= ~0x40;                       //设置系统时钟源为32MHZ晶振

    while(CLKCONSTA & 0x40);                     //等待晶振稳定

    CLKCONCMD &= ~0x47;                        //设置系统主时钟频率为32MHZ

  

 

    PERCFG = 0x00;             //位置1 P0口

    P0SEL = 0x3c;              //P0_2,P0_3,P0_4,P0_5用作串口

    P2DIR &= ~0XC0;                             //P0优先作为UART0



    U0CSR |= 0x80;             //UART方式

    U0GCR |= 11;                  

    U0BAUD |= 216;             //波特率设为115200

    UTX0IF = 0;                                 //UART0 TX中断标志初始置位0

}

(3)CC2530实现Zigbee数据传输关键代码并详细注释。

void zb_ReceiveDataIndication( uint16 source, uint16 command, uint16 len, uint8 *pData  )

{

    char buf[32];

    //接收到数据之后LED灯闪烁

    HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF );

    HalLedSet( HAL_LED_1, HAL_LED_MODE_BLINK );

    if (len==6 && pData[0]==0xff) { 

      sprintf(buf, "DEVID:%02X SAddr:%02X%02X PAddr:%02X%02X",

                pData[5], pData[1], pData[2], pData[3], pData[4]);

      debug_str(buf);//将数据通过串口传递给上位机

    }

}



void zb_HandleOsalEvent( uint16 event )//用户处理函数

{



   if (event & ZB_ENTRY_EVENT) {//当有事件发送时

        uint8 startOptions;

        uint8 logicalType;

 

        zb_ReadConfiguration( ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType );//ZigBee读设置

        if ( logicalType != ZG_DEVICETYPE_ENDDEVICE )

          {

          logicalType = ZG_DEVICETYPE_ENDDEVICE;

   

          zb_WriteConfiguration(ZCD_NV_LOGICAL_TYPE, sizeof(uint8), &logicalType);// ZigBee写设置

        }



    

        zb_ReadConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );

        if (startOptions != ZCD_STARTOPT_AUTO_START) {

          startOptions = ZCD_STARTOPT_AUTO_START;//ZigBee自动绑定

          zb_WriteConfiguration( ZCD_NV_STARTUP_OPTION, sizeof(uint8), &startOptions );

        }

      

        HalLedSet( HAL_LED_2, HAL_LED_MODE_OFF );//设置灯灭        HalLedSet( HAL_LED_2, HAL_LED_MODE_FLASH ); //设置灯闪烁

    

  }

 

  if ( event & MY_START_EVT )//当有消息请求时

  { 

    zb_StartRequest();

  }



  if (event & MY_REPORT_EVT) {//

   

    myReportData();//采集数据

    osal_start_timerEx( sapi_TaskID, MY_REPORT_EVT, REPORT_DELAY );// 返回成功或设定时间无效, 该函数是一个定时函数,网络组建成功后,每隔一段时间就会去执行

  }

}

(4)CC2530串口数据通信关键代码并详细注释。

void UartTX_Send_String(char *Data,int len)//串口发送字符串函数

{

  int j;

  for(j=0;j<len;j++)

  {

    U0DBUF = *Data++;

    while(UTX0IF == 0);

    UTX0IF = 0;

  }

}



static void appLight()

 {

 /*************************************************

 halLcdWriteLine(HAL_LCD_LINE_1, "Light");

 halLcdWriteLine(HAL_LCD_LINE_2, "Ready");

 ***************************************************/

 #ifdef ASSY_EXP4618_CC2420LCD// 内容暂时不用理它

 halLcdClearLine(1);

 halLcdWriteSymbol(HAL_LCD_SYMBOL_RX, 1);

 #endif

 // Initialize BasicRF

 basicRfConfig.myAddr = LIGHT_ADDR;

 if(basicRfInit(&basicRfConfig)==FAILED) {//Basic RF 启动中的初始化,上面 Basic RF 启动的第 3 步

 HAL_ASSERT(FALSE);

 }

 basicRfReceiveOn();//函数 basicRfReceiveOn(),开启无线接收功能,调用这个函数后模块一直会接收,除非再调用 basicRfReceiveOff()使它关闭接收。

 // Main loop

    while (TRUE) { //程序开始进行不断扫描的循环

        while(!basicRfPacketIsReady());//Basic RF 接收的第 1 步,while(!basicRfPacketIsReady()) 检查是否接收上层数据,        char shuju[20]={0};

        //Basic RF 接收的第 2步,if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH,NULL)>0)判断否接收到有数据

    // UartTX_Send_String(shuju,APP_PAYLOAD_LENGTH);

        if(basicRfReceive(pRxData, APP_PAYLOAD_LENGTH, NULL)>0) {

//if(pRxData[0] == LIGHT_TOGGLE_CMD)判断接收到的数据是否就是发送函数里面的 LIGHT_TOGGLE_CMD

            //if(pRxData[0] == LIGHT_TOGGLE_CMD) {

               //    UartTX_Send_String(pRxData[0],APP_PAYLOAD_LENGTH);   

                        //shuju[0]=pRxData[1];

           UartTX_Send_String(pRxData,strlen(pRxData));

             // strcpy(Txdata,"1");       //将UART0 TX test赋给Txdata;

              //UartTX_Send_String(pRxData,strlen(pRxData)); //串口发送数据

                halLedToggle(1); //halLedToggle(1),改变 Led1 的状态。

           // }

        }

}

}

(5)网关模块模式控制及数据发送关键代码并详细注释。

//串口0数据接收函数

void UartData_cb(uint8 c){

    //插入数据到缓冲RxData

    RxData[RxLen]=c;

    //os_sprintf(RxData,"%s","DHT11:123&");

    //os_printf("RxData1:%24s\n",RxData);



    //RxData[RxLen];



    RxLen++;//每接收一个数据长度加一

    if(c=='&'){

    //os_printf("RxData:%s\n",RxData);

    if(RxLen>=MAX_LEN) RxLen=0;//数据接收长度超出了范围,清零

    char *PA;

    char *PB;



       PA=strstr(RxData,"DHT11:");

       PA+=6;

       PB=strstr(PA,"&");

           os_memcpy(data.pc,PA,PB-PA);//清空,准备下次继续接收数据

//DHT11:2^45#& 23^45

//DHT11:28^71#&

           char *PA1;

           char *PB1;

           char *PA2;

           PA1=PA;

           PB1=strstr(PA1,"^");

           //pc:28^72#    wendu:28^72#&     shidu:^72

           os_memcpy(data.wendu,PA1,PB1-PA1);//读取温度数据

           PA2=PB1+1;

           char *PC;

           PC = strstr(PA2,"#");

           os_memcpy(data.shidu,PA2,PC-PA2);//读取湿度数据

              os_printf("pc:%s\t",data.pc);

              os_printf("wendu:%s\n\t",data.wendu);

              os_printf("shidu:%s\n\t",data.shidu);

    //收到#号结束就去控制灯

              ets_memset(RxData, 0, MAX_LEN);

              RxLen=0;

    }



}

void ICACHE_FLASH_ATTR

Wifi_conned(void *arg)

{

    static uint8 count=0;

    uint8 status;



    os_timer_disarm(&connect_timer);

    count++;



    //检测STA连接状态

    status=wifi_station_get_connect_status();

    if(status==STATION_GOT_IP)

    {

       os_printf("Wifi connect success!");



       //如果连接成功

       //启动一个服务器

       struct ip_info info;

       const char remote_ip[4]={192,168,1,102};

       wifi_get_ip_info(STATION_IF,&info);



       os_printf("\r\n------STA ip:%d.%d.%d.%d.---------\r\n",

                  ip4_addr1(&info.ip.addr),

                  ip4_addr2(&info.ip.addr),

                  ip4_addr3(&info.ip.addr),

                  ip4_addr4(&info.ip.addr));





       //启动TCP服务器,端口哦80,webservice默认port是80

       server_init(&info.ip,80);

       return;

    }

    else

    {

       if(count>=7)//等待超时

       {

           os_printf("Wifi connect fail!");

           return;

        }

    }



    os_timer_arm(&connect_timer,2000,false);

}

(6)网页设计核心代码段并添加必要注释

<html><head>//使用AJAX,异步刷新

<meta http-equiv=Content-Type content="text/html; charset=utf-8">

<title>室内环境监控</title>

<meta name='viewport' content='width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0'/>

<style type="text/css">



</style>

<body style="background-color: #f9e79f ">

<center>

<div>

<br><br><br>

<h1>基于WiFi的室内环境监控系统</h1>

 

</div>

 <br>

<div><h2>

  温度: <span id="temp_val">0</span>

  <span id="Tdanwei"> ℃</span><br><br>



   湿度: <span id="humi_val">0</span>

  <span id="Hdanwei"> %RH</span><br><br>





</h2>

</div>

<script>

let status=false;

let status1=false;

setInterval(function()

{

  getTempData();

  getHumiData();

}, 700);

function getTempData() {

if(status)x.abort();

  var xhttp = new XMLHttpRequest();

status=true;

  xhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {

status=false;

      document.getElementById("temp_val").innerHTML =

      this.responseText;//把接收的数据转换为文本

    }

  };

  xhttp.open("GET", "tempread", true);//配置参数

  xhttp.send();//发送数据

}

function getHumiData() {

if(status1)x.abort();

  var xhttp = new XMLHttpRequest();

status1=true;

  xhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {

status1=false;

      document.getElementById("humi_val").innerHTML =

      this.responseText;

    }

  };

  xhttp.open("GET", "humiread", true);

  xhttp.send();

}

</script>

</center>

</body>

</html>

五、项目总结。要求:从电路原理、驱动程序设计、问题攻克、意义等方面展开总结,不少于500字。

CC2530核心板中IO口配置我们需要配置的寄存器,外部中断需要配置三个寄存器,IRCON:中断标志4,;0为无中断请求。1为有中断请求。TIMIF:定时器1的溢出中断屏蔽与定时器3、4的中断标志。D6为定时器1的溢出中断屏蔽,0为屏蔽,1为使能,默认为1.D5~D0为定时器3和4中各个通道的中断标志,T3 定时器主要是配置三个寄存器,定时器3或定时器4的方式控制寄存器。CC2530 具有一个IEEE 802.15.4 兼容无线收发器。RF 内核控制模拟无线模块。另外,它提供了MCU 和无线设备之间的一个接口, 它有三种不同的内存访问总线(SFR,DATA 和CODE/XDATA),单周期访问SFR,DATA 和主SRAM。它还包括一个调试接口和一个18 输入扩展中断单元。 中断控制器总共提供了18 个中断源,分为六个中断组,每个与四个中断优先级之一相关。

ESP8266 可以控制蜂鸣器,继电器,一个LED灯的颜色,蜂鸣器,光敏电路,DHT11,按键控制等,支持IIC总线,支持UART,可支持一个数字输入/输出口,不能直接接入模拟输入/输出设置,通过WIFI连接其他设备进行通信,可以采用AP模式,STA+AP模式工作。包括:电源转换电路:ESP8266IO口、外部传感器电源接口、外部彩灯接口,ESP8266模块接口,USB转TTL电路及USB接口电路,蜂鸣器及光敏电路,温湿度(DHT11)电路,彩灯电路,按键和电路指示灯,继电器电路。

在画PCB板时定义一块宽为1800mil,长为2000mil的单层电路板。设置度量单位为英制,分别设置可视栅格、捕获栅格、元件栅格和电气栅格的数值为20mil,25mil,25mil,10mil,在Topoverlayer层上放置字符串,旋转角度为30度。设置底层丝印层的颜色为100号色。设置多边形敷铜栅格尺寸为20mil,路径宽度为5mil,最小长度为3mil,焊盘环绕形状为八边形。在画电路图时有部分电子元件在库里面没有,需要我们在网上下载包含了对应元器件的元件库导入进去,或者也可以自己画出来,在铺设PCB板时,如果为了图快,直接选择自动布线会出现后续用的时候线之间会有干扰,导致结果出不来。但是毕竟只有2天时间,为了省时间还是选择了自动布线,在设置孔尺寸时一样的电子元件要设置一样的孔径。

在物联网短距离通信课上学到可以用CC2530与其他CC2530板子通信,用一个协调器,一个路由,一个终端,前提是它必须在一个Zigbee无线局域网里,如果它还没有入网,那么它仅仅是一个下载了响应功能代码的模块而已。下载了路由器和终端代码的模块,上电后第一件事是去寻找网络,请求加入;网络是不会平白无故产生的,所以创建网络这个工作由下载了协调器代码的模块来完成,下载协调器代码的模块上电的第一件事是去创建网络。任何一个网络,第一个节点一定是该网络的协调器,一个网络里有且仅有一个协调器。

ESP8266支持3种工作模式”STA”、“AP”、“STA+AP”模式。STA模式:该模块通过路由器连接网络,手机或者电脑实现该设备的远程控制。AP模式:该模块作为热点,手机或者电脑连接wifi与该模块通信,实现局域网的无线控制。STA+AP模式:两种模式共存,既可以通过路由器连接到互联网,也可以作为WiFi热点,使其他设备连接到这个模块,实现广域网与局域网的无缝切换。文章来源地址https://www.toymoban.com/news/detail-577732.html

到了这里,关于CC2530+ESP8266 环境监测系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • CC2530——温湿度传感器DHT11

    CC2530——温湿度传感器DHT11

    DHT11是一款有已校准数字信号输出的温湿度传感器。 其精度湿度±5%RH,温度±2℃,量程湿度5~95%RH,温度-20~+60℃。  1、用户主机(单片机)发送一次开始信号后,DHT11从低功耗模式转换到高速模式。 2、到主机开始信号结束后,DHT11发送响应信号。 3、DHT11并送出40bit(5个字节)

    2024年02月04日
    浏览(43)
  • CC2530基础实验:(6)串口通讯-发送与接收字符串

    CC2530基础实验:(6)串口通讯-发送与接收字符串

    目录 前言 一、实验相关电路图 二、实验相关理论与寄存器 1.并行通信与串行通信 2.URAT 3.同步通信与异步通信 4.外设I/O 5.CC2530 的串口通信模块 6.相关寄存器 三、源码分析 1.发送字符串  2.接收字符串 本实验用于学习CC2530芯片: 发送与接收字符串的串口配置与使用 观察串口

    2023年04月14日
    浏览(33)
  • 【物联网无线通信技术】ZigBee从理论到实践(CC2530)

    【物联网无线通信技术】ZigBee从理论到实践(CC2530)

    文章延续之前【物联网无线通信技术】系列文章的风格,首先对ZigBee这种在物联网发展初期出现的无线通信技术进行了相关背景概念的介绍,并横向介绍了几款时间跨度比较大的ZigBee芯片。然后以CC2530为例,从硬件到软件介绍了ZigBee这中无线通信技术的实现。相信读者通过通

    2024年02月04日
    浏览(11)
  • 基于stm32环境监测系统

    基于stm32环境监测系统

    设计流程图:(设计思路)      用应用光敏电阻传感器和温度传感器,实现LCD显示以及数码管的显示+PC机串口显示摄氏温度、湿度;到达可键盘设定的阈值时LED自动发光、蜂鸣器报警自动启动 等功能 。采用STM32L431RCT6、以及STM32F411单片机作为数据采集、处理、控制核心,系

    2024年02月07日
    浏览(8)
  • 基于单片机的智能环境监测系统

    基于单片机的智能环境监测系统

    本设计主要由温湿度检测、烟雾检测电路、报警电路、显示电路和人体检测等模块组成。温湿度检测部分使用的是DHT11这种型号的温湿度传感器。DHT11是一种单总线型数字式温湿度传感器,它具有误差小、分辨率高、抗干扰能力强等特点。在烟雾检测电路模块当中,利用气体传

    2024年04月22日
    浏览(15)
  • 实现一个家庭安防与环境监测系统(二)

    实现一个家庭安防与环境监测系统(二)

    👉点击链接🔗查看上文:https://blog.csdn.net/weixin_43624626/article/details/125818438   本系统所使用的两个开发板为ESP8266-NodeMCU和ESP32-CAM模块,非常方便的一点是,这两个开发板的程序编写以及程序编译烧入都可以使用Arduino IDE软件完成。   通过程序控制,能够实现系统的初始化

    2024年02月01日
    浏览(12)
  • 实现一个家庭安防与环境监测系统(一)

    实现一个家庭安防与环境监测系统(一)

    (1)使用ESP8266连接温湿度传感器、烟雾传感器、火焰传感器、人体红外感应传感器、超声波测距传感器,对家庭环境进行实时采集,相关数据显示到屏幕上。 (2)ESP8266能够与云端建立连接,可以将数据实时上传到云端。 (3)能够对监测到的家庭环境异常信息及时快速的做

    2024年02月06日
    浏览(14)
  • 基于STM32的物联网环境监测系统

    基于STM32的物联网环境监测系统

    基于机智云物联网的环境监测系统 视频演示 摘 要:随着人民对美好生活的向往,人们对于环境的重视程度越来越强烈,环境对生活的影响已经成为一个热点问题。本设计以STM32单片机作为控制和数据处理的单元,使用AHT10、BH1750和BMP280传感器去监测周围的环境参数,在LCD屏完

    2024年02月07日
    浏览(18)
  • 基于物联网的大豆生长环境监测系统的设计

    基于物联网的大豆生长环境监测系统的设计

    1.系统设计 近年来,随着科学技术水平不断提升,智能化的技术被应用于农业生产活动中去,改变了传统的种植模式,提高了农业种植效率和发展水平。为了实现大豆种植的智能化设计要求,展开基于物联网的大豆生长环境监测系统设计。 在大豆生长环境监测系统设计中,采

    2024年02月06日
    浏览(22)
  • 基于stm32的室外环境监测系统的设计和实现

    基于stm32的室外环境监测系统的设计和实现

    目 录 摘 要 Ⅰ Abstract Ⅱ 第1章 绪论 9 1.1 课题研究背景与意义 9 1.2 国内外研究现状 9 1.3 课题研究的主要内容 10 1.4 本文组织结构 10 第2章 系统关键技术介绍 12 2.1 无线传感器网络技术 12 2.2 WiFi通讯技术 13 2.3 单片机技术 13 2.4 物联网云平台 13 第3章 系统需求分析 15 3.1 系统需求

    2023年04月14日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包