0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計(jì)的環(huán)境檢測(cè)設(shè)備

DS小龍哥-嵌入式技術(shù) ? 來(lái)源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2022-05-18 10:51 ? 次閱讀

?

1. 前言

隨著人們生活質(zhì)量的提高,對(duì)于生活環(huán)境的問(wèn)題,人們的關(guān)注度進(jìn)一步提高,同時(shí)政府部門(mén)采取了許多措施來(lái)改善環(huán)境狀況。但是總體上來(lái)說(shuō)我國(guó)的環(huán)境監(jiān)測(cè)技術(shù)水平比較落后,傳統(tǒng)上的監(jiān)測(cè)手段比較單一,監(jiān)測(cè)數(shù)據(jù)也不夠準(zhǔn)確,耗盡了大量的人力和財(cái)力,卻成效不高。

針對(duì)上述缺點(diǎn),當(dāng)前文章綜合了嵌入式處理技術(shù)、傳感器技術(shù)、無(wú)線(xiàn)網(wǎng)絡(luò)通信等技術(shù),設(shè)計(jì)了一個(gè)基于STM32的無(wú)線(xiàn)環(huán)境監(jiān)測(cè)系統(tǒng),系統(tǒng)主要實(shí)現(xiàn)了對(duì)濕度、溫度、有毒氣體、煙霧濃度、空氣質(zhì)量等參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測(cè)的功能。為了實(shí)現(xiàn)無(wú)線(xiàn)數(shù)據(jù)傳輸功能,采用了無(wú)線(xiàn)wifi技術(shù)。系統(tǒng)的測(cè)試分析表明系統(tǒng)整體數(shù)據(jù)采集性能良好,數(shù)據(jù)傳輸穩(wěn)定性可靠,到達(dá)了預(yù)期目標(biāo)。

系統(tǒng)與傳統(tǒng)的監(jiān)測(cè)技術(shù)相比,具有監(jiān)測(cè)數(shù)據(jù)準(zhǔn)確,監(jiān)測(cè)范圍廣,智能化高等特點(diǎn)。且系統(tǒng)具有一定的創(chuàng)新性,在實(shí)際的工程運(yùn)用和理論研究上體現(xiàn)出了一定的研究?jī)r(jià)值最后通過(guò)實(shí)物的調(diào)試,各項(xiàng)參數(shù)及功能符合設(shè)計(jì)要求,能達(dá)到預(yù)期的目的。

設(shè)計(jì)以STM32微控制器為平臺(tái),采用DHT11溫濕度傳感器、煙霧傳感器MQ-2、易燃?xì)怏w傳感器MQ-4、空氣質(zhì)量檢測(cè)傳感器MQ-135對(duì)室內(nèi)溫濕度和危險(xiǎn)氣體進(jìn)行采集。通過(guò)wifi無(wú)線(xiàn)網(wǎng)絡(luò)將數(shù)據(jù)傳送給微控制器,STM32微控制器處理數(shù)據(jù)后,由自帶oled液晶屏顯示。當(dāng)室內(nèi)溫度達(dá)到預(yù)警值或有危險(xiǎn)氣體時(shí),系統(tǒng)將會(huì)自動(dòng)警報(bào)并將警報(bào)信息通過(guò)wifi網(wǎng)絡(luò)傳輸給客戶(hù)手機(jī)。且每隔一段時(shí)間會(huì)通過(guò)wifi自動(dòng)發(fā)送監(jiān)測(cè)信息到手機(jī),從而實(shí)現(xiàn)對(duì)室內(nèi)環(huán)境的監(jiān)測(cè)及報(bào)警功能。

源碼獲取: https://download.csdn.net/download/xiaolong1126626497/63979263

基于STM32設(shè)計(jì)的環(huán)境監(jiān)測(cè)項(xiàng)目

poYBAGDYdXCAWkKMAAAAK8RNs4s030.pngimage-20220110152546715

image-20220110153238804

2. 實(shí)現(xiàn)功能與整體框架圖

開(kāi)發(fā)板采用STM32最小系統(tǒng)板,主控CPU采用STM32F103C8T6,其他傳感器采用模塊的形式連接到開(kāi)發(fā)板。

主要實(shí)現(xiàn)以下功能實(shí)現(xiàn): 1、通過(guò)DHT11溫濕度傳感器、煙霧傳感器MQ-2、易燃?xì)怏w傳感器MQ-4、空氣質(zhì)量檢測(cè)傳感器MQ-135對(duì)室內(nèi)溫濕度和危險(xiǎn)氣體進(jìn)行采集。 2、通過(guò)傳感器用ADC模擬數(shù)字的轉(zhuǎn)換,采集到的數(shù)據(jù)顯示在oled屏幕上。 3、當(dāng)檢測(cè)到的數(shù)據(jù)超過(guò)設(shè)定的安全值時(shí),屏幕上會(huì)顯示警報(bào)。 4、檢測(cè)到的數(shù)據(jù)能定時(shí)通過(guò)ESP8266 wifi無(wú)線(xiàn)傳輸發(fā)送到所連接的用戶(hù)的手機(jī)上,實(shí)現(xiàn)監(jiān)測(cè)功能。

系統(tǒng)框架圖如下:

image-20220110145054386

3. 硬件特點(diǎn)介紹

(1) 溫濕度傳感器 溫濕度傳感器采用DHT11,這是一款直接輸出數(shù)字信號(hào)的溫濕度傳感器;其精度濕度±5%RH, 溫度±2℃,量程濕度5~95%RH, 溫度-20~+60℃。通過(guò)單總線(xiàn)時(shí)序輸出,占用的IO口也比較少,工作電壓3V~5V,單片機(jī)連接控制很方便。

(2) MQ系列的氣體檢測(cè)傳感器 煙霧傳感器MQ-2、易燃?xì)怏w傳感器MQ-4、空氣質(zhì)量檢測(cè)傳感器MQ-135,這些傳感器都是輸出模擬信號(hào)。 配置好STM32的ADC采集接口,采集數(shù)據(jù)進(jìn)行處理即可。

(3) ESP8266 WIFI 聯(lián)網(wǎng)的模塊采用ESP8266 WIFI,ESP8266在物聯(lián)網(wǎng)里使用非常多,有很多成熟的案例.WIFI本身也支持二次開(kāi)發(fā),默認(rèn)集成的SDK支持AT指令控制,單片機(jī)可以通過(guò)串口方式控制ESP8266完成網(wǎng)絡(luò)通信,非常方便.

(4) OLED顯示屏 OLED顯示屏采用中景園電子的0.96寸OLED,分辨率是128x64,使用的SPI引腳接口屏幕,刷屏速度很快,控制簡(jiǎn)單

(5) 上位機(jī)設(shè)計(jì)

手機(jī)APP和PC端沒(méi)有單獨(dú)設(shè)計(jì)精美的界面,只是簡(jiǎn)單的展示了數(shù)據(jù)顯示。

image-20220110151824586

4. 核心源碼

image-20220110151944247poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯

4.1 DHT11溫濕度代碼

#include "dht11.h"
#include "delay.h"
?
//復(fù)位DHT11
void DHT11_Rst(void)      
{         
     DHT11_IO_OUT();   //SET OUTPUT
  DHT11_DQ_OUT=0;     //拉低DQ
  DelayMs(20);       //拉低至少18ms
  DHT11_DQ_OUT=1;     //DQ=1 
     delay_us(30);       //主機(jī)拉高20~40us
}
//等待DHT11的回應(yīng)
//返回1:未檢測(cè)到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)      
{  
    u8 retry=0;
    DHT11_IO_IN();//SET INPUT    
  while (DHT11_DQ_IN&&retry<100)//DHT11會(huì)拉低40~80us
    {
        retry++;
        delay_us(1);
    };   
    if(retry>=100)return 1;
    else retry=0;
  while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后會(huì)再次拉高40~80us
    {
        retry++;
        delay_us(1);
    };
    if(retry>=100)return 1;   
    return 0;
}
//從DHT11讀取一個(gè)位
//返回值:1/0
u8 DHT11_Read_Bit(void)              
{
    u8 retry=0;
    while(DHT11_DQ_IN&&retry<100)//等待變?yōu)榈碗娖?    {
        retry++;
        delay_us(1);
    }
    retry=0;
    while(!DHT11_DQ_IN&&retry<100)//等待變高電平
    {
        retry++;
        delay_us(1);
    }
    delay_us(40);//等待40us
    if(DHT11_DQ_IN)return 1;
    else return 0;       ? 
}
?
//從DHT11讀取一個(gè)字節(jié)
//返回值:讀到的數(shù)據(jù)
u8 DHT11_Read_Byte(void) ? ?
{ ? ? ? ?
 ? ?u8 i,dat;
 ? ?dat=0;
    for (i=0;i<8;i++) 
    {
 ?      dat<<=1; 
     ? ?dat|=DHT11_Read_Bit();
 ?  }                        ? ?
 ? ?return dat;
}
?
?
//從DHT11讀取一次數(shù)據(jù)
//temp:溫度值(范圍:0~50°)
//humi:濕度值(范圍:20%~90%)
//返回值:0,正常;1,讀取失敗
u8 DHT11_Read_Data(u8 *temp,u8 *humi) ? ?
{ ? ? ? ?
    u8 buf[5];
    u8 i;
    DHT11_Rst();
    //printf("------------------------\r\n");
    if(DHT11_Check()==0)
    {
        for(i=0;i<5;i++)//讀取40位數(shù)據(jù)
        {
            buf[i]=DHT11_Read_Byte();
        }
        if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
        {
            *humi=buf[0];
            *temp=buf[2];
        }
    }else return 1;
    return 0;    ? ?
}
?
?
//初始化DHT11的IO口 DQ 同時(shí)檢測(cè)DHT11的存在
//返回1:不存在
//返回0:存在 ?       
u8 DHT11_Init(void)
{
    RCC->APB2ENR|=1<<2; ? ?//使能PORTG口時(shí)鐘 
    GPIOA->CRL&=0XFF0FFFFF;//PORTG.11 推挽輸出
    GPIOA->CRL|=0X00300000;
    GPIOA->ODR|=1<<5; ? ? ?//輸出1                 ? ?
    DHT11_Rst();
    return DHT11_Check();
}
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

4.2 ESP8266代碼

#include "esp8266.h"
extern u8 USART3_RX_BUF[USART3_MAX_RECV_LEN];      //接收緩沖,最大USART3_MAX_RECV_LEN字節(jié)
extern u8 USART3_TX_BUF[USART3_MAX_SEND_LEN];      //發(fā)送緩沖,最大USART3_MAX_SEND_LEN字節(jié)
extern vu16 USART3_RX_STA;                                             //接收數(shù)據(jù)狀態(tài)
?
/////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//用戶(hù)配置區(qū)
?
//連接端口號(hào):8086,可自行修改為其他端口.
const u8 portnum[]="8089";       
?
//WIFI STA模式,設(shè)置要去連接的路由器無(wú)線(xiàn)參數(shù),請(qǐng)根據(jù)你自己的路由器設(shè)置,自行修改.
const u8 wifista_ssid[]="wbyq1";            //路由器SSID號(hào)
const u8 wifista_encryption[]="wpa2_aes";   //wpa/wpa2 aes加密方式
const u8 wifista_password[]="123456789";    //連接密碼
?
//WIFI AP模式,模塊對(duì)外的無(wú)線(xiàn)參數(shù),可自行修改.
const u8 wifiap_ssid[]="Cortex_M3";          //對(duì)外SSID號(hào)
const u8 wifiap_encryption[]="wpawpa2_aes"; //wpa/wpa2 aes加密方式
const u8 wifiap_password[]="12345678";       //連接密碼 
?
?
/*
函數(shù)功能:向ESP82668266發(fā)送命令
函數(shù)參數(shù):
                cmd:發(fā)送的命令字符串
                ack:期待的應(yīng)答結(jié)果,如果為空,則表示不需要等待應(yīng)答
                waittime:等待時(shí)間(單位:10ms)
返 回 值:
                 0,發(fā)送成功(得到了期待的應(yīng)答結(jié)果)
     1,發(fā)送失敗
*/
u8 ESP8266_SendCmd(u8 *cmd,u8 *ack,u16 waittime)
{
    u8 res=0; 
    USART3_RX_STA=0;
    UsartStringSend(USART3,cmd);//發(fā)送命令
    if(ack&&waittime)       //需要等待應(yīng)答
    {
        while(--waittime)   //等待倒計(jì)時(shí)
        {
            DelayMs(10);
            if(USART3_RX_STA&0X8000)//接收到期待的應(yīng)答結(jié)果
            {
                if(ESP8266_CheckCmd(ack))
                {
                    res=0;
                    //printf("cmd->ack:%s,%s\r\n",cmd,(u8*)ack);
                    break;//得到有效數(shù)據(jù) 
                }
                    USART3_RX_STA=0;
            } 
        }
        if(waittime==0)res=1; 
    }
    return res;
}
?
?
/*
函數(shù)功能:ESP8266發(fā)送命令后,檢測(cè)接收到的應(yīng)答
函數(shù)參數(shù):str:期待的應(yīng)答結(jié)果
返 回 值:0,沒(méi)有得到期待的應(yīng)答結(jié)果
                 其他,期待應(yīng)答結(jié)果的位置(str的位置)
*/
u8* ESP8266_CheckCmd(u8 *str)
{
    char *strx=0;
    if(USART3_RX_STA&0X8000) //接收到一次數(shù)據(jù)了
    { 
        USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加結(jié)束符
        strx=strstr((const char*)USART3_RX_BUF,(const char*)str); //查找是否應(yīng)答成功
        printf("RX=%s",USART3_RX_BUF);
    }
    return (u8*)strx;
}
?
/*
函數(shù)功能:向ESP8266發(fā)送指定數(shù)據(jù)
函數(shù)參數(shù):
                data:發(fā)送的數(shù)據(jù)(不需要添加回車(chē))
                ack:期待的應(yīng)答結(jié)果,如果為空,則表示不需要等待應(yīng)答
                waittime:等待時(shí)間(單位:10ms)
返 回 值:0,發(fā)送成功(得到了期待的應(yīng)答結(jié)果)luojian
*/
u8 ESP8266_SendData(u8 *data,u8 *ack,u16 waittime)
{
    u8 res=0; 
    USART3_RX_STA=0;
    UsartStringSend(USART3,data);//發(fā)送數(shù)據(jù)
    if(ack&&waittime)       //需要等待應(yīng)答
    {
        while(--waittime)   //等待倒計(jì)時(shí)
        {
            DelayMs(10);
            if(USART3_RX_STA&0X8000)//接收到期待的應(yīng)答結(jié)果
            {
                if(ESP8266_CheckCmd(ack))break;//得到有效數(shù)據(jù) 
                USART3_RX_STA=0;
            } 
        }
        if(waittime==0)res=1; 
    }
    return res;
}
    
    
?
/*
函數(shù)功能:ESP8266退出透?jìng)髂J?返 回 值:0,退出成功;
     1,退出失敗
*/
u8 ESP8266_QuitTrans(void)
{
    while((USART3->SR&0X40)==0);    //等待發(fā)送空
    USART3->DR='+';   
    DelayMs(15);                    //大于串口組幀時(shí)間(10ms)
    while((USART3->SR&0X40)==0);    //等待發(fā)送空
    USART3->DR='+';   
    DelayMs(15);                    //大于串口組幀時(shí)間(10ms)
    while((USART3->SR&0X40)==0);    //等待發(fā)送空
    USART3->DR='+';   
    DelayMs(500);                   //等待500ms
    return ESP8266_SendCmd("AT","OK",20);//退出透?jìng)髋袛?
}
?
?
/*
函數(shù)功能:獲取ESP82668266模塊的AP+STA連接狀態(tài)
返 回 值:0,未連接;1,連接成功
*/
u8 ESP8266_ApStaCheck(void)
{
    if(ESP8266_QuitTrans())return 0;             //退出透?jìng)?
    ESP8266_SendCmd("AT+CIPSTATUS",":",50); //發(fā)送AT+CIPSTATUS指令,查詢(xún)連接狀態(tài)
    if(ESP8266_CheckCmd("+CIPSTATUS:0")&&
         ESP8266_CheckCmd("+CIPSTATUS:1")&&
         ESP8266_CheckCmd("+CIPSTATUS:2")&&
         ESP8266_CheckCmd("+CIPSTATUS:4"))
        return 0;
    else return 1;
}
?
?
/*
函數(shù)功能:獲取ESP8266模塊的連接狀態(tài)
返 回 值:0,未連接;1,連接成功.
*/
u8 ESP8266_ConstaCheck(void)
{
    u8 *p;
    u8 res;
    if(ESP8266_QuitTrans())return 0;             //退出透?jìng)?
    ESP8266_SendCmd("AT+CIPSTATUS",":",50); //發(fā)送AT+CIPSTATUS指令,查詢(xún)連接狀態(tài)
    p=ESP8266_CheckCmd("+CIPSTATUS:"); 
    res=*p;                                                                 //得到連接狀態(tài)    
    return res;
}
?
/*
函數(shù)功能:獲取ip地址
函數(shù)參數(shù):ipbuf:ip地址輸出緩存區(qū)
*/
void ESP8266_GetWanip(u8* ipbuf)
{
     u8 *p,*p1;
        if(ESP8266_SendCmd("AT+CIFSR\r\n","OK",50))//獲取WAN IP地址失敗
        {
            ipbuf[0]=0;
            return;
        }       
        p=ESP8266_CheckCmd(""");
        p1=(u8*)strstr((const char*)(p+1),""");
        *p1=0;
        sprintf((char*)ipbuf,"%s",p+1); 
}
?
/*
函數(shù)功能:將收到的AT指令應(yīng)答數(shù)據(jù)返回給電腦串口
參   數(shù):mode:0,不清零USART3_RX_STA;
                             1,清零USART3_RX_STA;
*/
void ESP8266_AtResponse(u8 mode)
{
    if(USART3_RX_STA&0X8000)        //接收到一次數(shù)據(jù)了
    { 
        USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加結(jié)束符
        printf("%s",USART3_RX_BUF); //發(fā)送到串口
        if(mode)USART3_RX_STA=0;
    } 
}
?
?
/*
函數(shù)功能:ESP8266 AP模式+TCP服務(wù)器模式測(cè)試
*/
void ESP8266_APorServer(void)
{
    u8 p[100];
    u8 ipbuf[20];
    
    
    while(ESP8266_SendCmd("AT\r\n","OK",20))//檢查WIFI模塊是否在線(xiàn)
    {
        ESP8266_QuitTrans();//退出透?jìng)?        ESP8266_SendCmd("AT+CIPMODE=0\r\n","OK",200); //關(guān)閉透?jìng)髂J?
        printf("未檢測(cè)到模塊,正在嘗試連接模塊...\r\n");
        DelayMs(800);
    }
    printf("ESP8266模塊檢測(cè)OK!\r\n");
    
    while(ESP8266_SendCmd("ATE0\r\n","OK",20)); //關(guān)閉回顯
    
    printf("請(qǐng)用設(shè)備連接WIFI熱點(diǎn):%s,%s,%ss\r\n",(u8*)wifiap_ssid,(u8*)wifiap_encryption,(u8*)wifiap_password);
    
    /*1. 設(shè)置WIFI AP模式 */
    ESP8266_SendCmd("AT+CWMODE=2\r\n","OK",50);
    
    /*2. 重啟模塊 */
    ESP8266_SendCmd("AT+RST\r\n","OK",20);
    
    /*3. 延時(shí)3S等待重啟成功*/
    DelayMs(1000);      
    DelayMs(1000);
    DelayMs(1000);
    
    /*5. 配置模塊AP模式無(wú)線(xiàn)參數(shù)*/
    sprintf((char*)p,"AT+CWSAP="%s","%s",1,4\r\n",wifiap_ssid,wifiap_password); 
    ESP8266_SendCmd(p,"OK",1000);
    
    /*4. 設(shè)置多連接模式:0單連接,1多連接(服務(wù)器模式必須開(kāi)啟)*/
    ESP8266_SendCmd("AT+CIPMUX=1\r\n","OK",20); 
    
    /*5. 開(kāi)啟Server模式(0,關(guān)閉;1,打開(kāi)),端口號(hào)為portnum */
    sprintf((char*)p,"AT+CIPSERVER=1,%s\r\n",(u8*)portnum);
    ESP8266_SendCmd(p,"OK",50);
    
    /*6. 獲取當(dāng)前模塊的IP*/
    ESP8266_GetWanip(ipbuf);//
    printf("IP地址:%s 端口:%s",ipbuf,(u8*)portnum);
 
    USART3_RX_STA=0; //清空串口的接收標(biāo)志位
//  while(1)
//  {
//      key=GetKeyVal(1);//退出測(cè)試
//      if(key==1)
//      { 
//      printf("退出測(cè)試!\r\n");            
//          ESP8266_QuitTrans();    //退出透?jìng)?//          ESP8266_SendCmd("AT+CIPMODE=0","OK",20);  //關(guān)閉透?jìng)髂J?//          break;                                               
//      }
//      else if(key==2) //發(fā)送數(shù)據(jù) 
//      {
//              ESP8266_SendCmd("AT+CIPSEND=0,12\r\n","OK",200); //設(shè)置發(fā)送數(shù)據(jù)長(zhǎng)度為12個(gè)
//              ESP8266_SendData("ESP8266測(cè)試!","OK",100);    //發(fā)送指定長(zhǎng)度的數(shù)據(jù)
//              DelayMs(200);
//      }
//      t++;
//      DelayMs(10);
//      if(USART3_RX_STA&0X8000)          //接收到一次數(shù)據(jù)了
//      { 
//          rlen=USART3_RX_STA&0X7FFF;  //得到本次接收到的數(shù)據(jù)長(zhǎng)度
//          USART3_RX_BUF[rlen]=0;        //添加結(jié)束符 
//          printf("接收的數(shù)據(jù): rlen=%d,%s",rlen,USART3_RX_BUF); //發(fā)送到串口  
//          USART3_RX_STA=0;
//          if(constate!=3)t=1000;        //狀態(tài)為還未連接,立即更新連接狀態(tài)
//          else t=0;          //狀態(tài)為已經(jīng)連接了,10秒后再檢查
//      }
//      if(t==1000)//連續(xù)10秒鐘沒(méi)有收到任何數(shù)據(jù),檢查連接是不是還存在.
//      {
////            constate=ESP8266_ConstaCheck();//得到連接狀態(tài)
////            if(!constate)printf("連接失敗!\r\n");
//          t=0;
//      }
//      if((t%20)==0)LED2=!LED2;
//      ESP8266_AtResponse(1);
//  }
}   
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png


?審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10847

    瀏覽量

    353785
  • 監(jiān)測(cè)系統(tǒng)

    關(guān)注

    8

    文章

    2639

    瀏覽量

    81176
  • 檢測(cè)設(shè)備
    +關(guān)注

    關(guān)注

    0

    文章

    587

    瀏覽量

    16689
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于STM32+SHT30設(shè)計(jì)的環(huán)境溫度與濕度檢測(cè)系統(tǒng)(IIC模擬時(shí)序)

    當(dāng)前介紹基于STM32F103ZCT6芯片設(shè)計(jì)的環(huán)境溫度與濕度檢測(cè)系統(tǒng)設(shè)計(jì)過(guò)程。當(dāng)前系統(tǒng)通過(guò)SHT30溫濕度傳感器采集環(huán)境溫度和濕度數(shù)據(jù),并通過(guò)模擬IIC時(shí)序協(xié)議將數(shù)據(jù)傳輸?shù)?/div>
    的頭像 發(fā)表于 06-20 09:16 ?1749次閱讀
    基于<b class='flag-5'>STM32</b>+SHT30設(shè)計(jì)的<b class='flag-5'>環(huán)境</b>溫度與濕度<b class='flag-5'>檢測(cè)</b>系統(tǒng)(IIC模擬時(shí)序)

    基于STM32U5 的 STM32CubeMX環(huán)境搭建

    基于STM32U5 的 STM32CubeMX環(huán)境搭建
    的頭像 發(fā)表于 09-21 17:35 ?1381次閱讀
    基于<b class='flag-5'>STM32</b>U5 的 <b class='flag-5'>STM32</b>CubeMX<b class='flag-5'>環(huán)境</b>搭建

    基于MQ135+STM32環(huán)境空氣質(zhì)量檢測(cè)

    [STM32]基于MQ135+STM32環(huán)境空氣質(zhì)量檢測(cè)*使用模塊:STM32F103C8T6MQ135空氣質(zhì)量傳感器模塊OLED液晶II
    發(fā)表于 08-04 07:15

    基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì)資料分享

    STM32畢業(yè)設(shè)計(jì)項(xiàng)目文章目錄STM32畢業(yè)設(shè)計(jì)項(xiàng)目1、基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì)1、基于
    發(fā)表于 02-21 07:25

    DFUse為什么沒(méi)有檢測(cè)STM32設(shè)備?

    管理器中設(shè)備檢測(cè)為“ST-Link Debugger”我嘗試過(guò)使用不同的 STM32 開(kāi)發(fā)板,例如 STM32F412 Discovery Kit、
    發(fā)表于 12-14 06:28

    電源檢測(cè)環(huán)境試驗(yàn)設(shè)備的選擇方法

    電源檢測(cè)環(huán)境試驗(yàn)設(shè)備的選擇方法 一、 設(shè)備選擇依據(jù)存在于地球表面及大氣層空間中的自然環(huán)境因素和誘發(fā)環(huán)境
    發(fā)表于 05-11 09:15 ?561次閱讀

    基于STM32的礦井環(huán)境分布式檢測(cè)系統(tǒng)研究_賀洪江

    基于STM32的礦井環(huán)境分布式檢測(cè)系統(tǒng)研究_賀洪江
    發(fā)表于 01-13 21:36 ?5次下載

    土壤環(huán)境檢測(cè)儀器設(shè)備的功能特點(diǎn)介紹

    高智能土壤環(huán)境檢測(cè)儀器設(shè)備是測(cè)量土壤的儀器的快檢儀器。 高智能土壤環(huán)境檢測(cè)儀器設(shè)備[恒美儀器HM-GT4]用于檢測(cè)土壤養(yǎng)分盈虧情況,為科學(xué)合
    發(fā)表于 04-07 11:08 ?704次閱讀

    STM32 檢測(cè)信號(hào)頻率

    STM32 檢測(cè)信號(hào)頻率
    發(fā)表于 11-23 18:21 ?59次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>檢測(cè)</b>信號(hào)頻率

    STM32開(kāi)發(fā)環(huán)境搭建

    1.MDK軟件安裝1.1 MDK安裝(編程環(huán)境)MDK是什么?RealView MDK 是Keil公司開(kāi)發(fā)的,為基于Cortex、ARM7、ARM9等處理器設(shè)備提供的一個(gè)完整的開(kāi)發(fā)環(huán)境。參考資料
    發(fā)表于 12-07 10:21 ?15次下載
    <b class='flag-5'>STM32</b>開(kāi)發(fā)<b class='flag-5'>環(huán)境</b>搭建

    STM32 搭建開(kāi)發(fā)環(huán)境

    STM32 搭建開(kāi)發(fā)環(huán)境
    發(fā)表于 12-08 14:36 ?20次下載
    <b class='flag-5'>STM32</b> 搭建開(kāi)發(fā)<b class='flag-5'>環(huán)境</b>

    基于STM32機(jī)智云物聯(lián)網(wǎng)環(huán)境檢測(cè)系統(tǒng)

    基于STM32機(jī)智云物聯(lián)網(wǎng)環(huán)境檢測(cè)系統(tǒng)簡(jiǎn)介學(xué)習(xí)STM32單片機(jī)與WIFI模塊的簡(jiǎn)單的使用。STM32單片機(jī)是意法半導(dǎo)體公司生產(chǎn)的基于ARM公
    發(fā)表于 12-22 19:00 ?14次下載
    基于<b class='flag-5'>STM32</b>機(jī)智云物聯(lián)網(wǎng)<b class='flag-5'>環(huán)境</b><b class='flag-5'>檢測(cè)</b>系統(tǒng)

    基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì)(開(kāi)題報(bào)告)

    基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì)(開(kāi)題報(bào)告)文章目錄基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙
    發(fā)表于 12-24 19:22 ?13次下載
    基于<b class='flag-5'>STM32</b>單片機(jī)大棚<b class='flag-5'>環(huán)境</b>參數(shù)無(wú)線(xiàn)藍(lán)牙<b class='flag-5'>檢測(cè)</b>設(shè)計(jì)(開(kāi)題報(bào)告)

    基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì)(論文)

    基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙檢測(cè)設(shè)計(jì) (論文)文章目錄基于STM32單片機(jī)大棚環(huán)境參數(shù)無(wú)線(xiàn)藍(lán)牙
    發(fā)表于 01-13 11:49 ?20次下載
    基于<b class='flag-5'>STM32</b>單片機(jī)大棚<b class='flag-5'>環(huán)境</b>參數(shù)無(wú)線(xiàn)藍(lán)牙<b class='flag-5'>檢測(cè)</b>設(shè)計(jì)(論文)

    基于STM32設(shè)計(jì)的健康檢測(cè)設(shè)備(測(cè)溫心率計(jì)步)

    本文介紹的項(xiàng)目是基于STM32設(shè)計(jì)的健康檢測(cè)設(shè)備,支持體溫測(cè)量,心率檢測(cè),支持運(yùn)動(dòng)計(jì)步(采用MPU6050陀螺儀實(shí)現(xiàn)),支持WIFI傳輸數(shù)據(jù)到手機(jī)APP打印顯示。
    的頭像 發(fā)表于 05-18 11:00 ?3721次閱讀
    基于<b class='flag-5'>STM32</b>設(shè)計(jì)的健康<b class='flag-5'>檢測(cè)</b><b class='flag-5'>設(shè)備</b>(測(cè)溫心率計(jì)步)