国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ARM day10 (IIC協(xié)議接收溫濕傳感器數(shù)據(jù))

這篇具有很好參考價(jià)值的文章主要介紹了ARM day10 (IIC協(xié)議接收溫濕傳感器數(shù)據(jù))。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

iic.h

#ifndef __IIC_H__
#define __IIC_H__
#include "stm32mp1xx_gpio.h"
#include "stm32mp1xx_rcc.h"
/* 通過(guò)程序模擬實(shí)現(xiàn)I2C總線的時(shí)序和協(xié)議
 * GPIOF ---> AHB4
 * I2C1_SCL ---> PF14
 * I2C1_SDA ---> PF15
 *
 * */

#define SET_SDA_OUT     do{GPIOF->MODER &= (~(0x3 << 30)); \
							GPIOF->MODER |= (0x1 << 30);}while(0)
#define SET_SDA_IN      do{GPIOF->MODER &= (~(0x3 << 30));}while(0)

#define I2C_SCL_H       do{GPIOF->BSRR |= (0x1 << 14);}while(0)
#define I2C_SCL_L       do{GPIOF->BRR |= (0x1 << 14);}while(0)

#define I2C_SDA_H       do{GPIOF->BSRR |= (0x1 << 15);}while(0)
#define I2C_SDA_L       do{GPIOF->BRR |= (0x1 << 15);}while(0)

#define I2C_SDA_READ    (GPIOF->IDR & (0x1 << 15))

void delay_us(void);
void i2c_init(void);
void i2c_start(void);
void i2c_stop(void);
void i2c_write_byte(unsigned char  dat);
unsigned char i2c_read_byte(unsigned char ack);
unsigned char i2c_wait_ack(void);       
void i2c_ack(void);
void i2c_nack(void);

#endif 

si7006.h

#ifndef __SI7006_H__
#define __SI7006_H__

#define   SI7006_SLAVE  0x40

void si7006_init(void);

short si7006_read_temp_data(unsigned char slave_addr, unsigned char reg_addr);

unsigned short si7006_read_hum_data(unsigned char slave_addr,unsigned char reg_addr);

#endif //__SI7006_H__

iic.c

#include "iic.h"

extern void printf(const char* fmt, ...);
/*
 * 函數(shù)名 : delay_us
 * 函數(shù)功能:延時(shí)函數(shù)
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */
void delay_us(void)
{
	unsigned int i = 2000;
	while(i--);
}
/*
 * 函數(shù)名 : i2c_init
 * 函數(shù)功能: i2C總線引腳的初始化, 通用輸出,推挽輸出,輸出速度,
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */
void i2c_init(void)
{
	// 使能GPIOF端口的時(shí)鐘
	RCC->MP_AHB4ENSETR |= (0x1 << 5);
	// 設(shè)置PF14,PF15引腳為通用的輸出功能
	GPIOF->MODER &= (~(0xF << 28));
	GPIOF->MODER |= (0x5 << 28);
	// 設(shè)置PF14, PF15引腳為推挽輸出
	GPIOF->OTYPER &= (~(0x3 << 14));
	// 設(shè)置PF14, PF15引腳為高速輸出
	GPIOF->OSPEEDR |= (0xF << 28);
	// 設(shè)置PF14, PF15引腳的禁止上拉和下拉
	GPIOF->PUPDR &= (~(0xF << 28));
	// 空閑狀態(tài)SDA和SCL拉高 
	I2C_SCL_H;
	I2C_SDA_H;
}



/*
 * 函數(shù)名:i2c_start
 * 函數(shù)功能:模擬i2c開(kāi)始信號(hào)的時(shí)序
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */
void i2c_start(void)
{
	/*
	 * 開(kāi)始信號(hào):時(shí)鐘在高電平期間,數(shù)據(jù)線從高到低的變化
	 *     --------
	 * SCL         \
	 *              --------
	 *     ----
	 * SDA     \
	 *          --------
	 * */
	SET_SDA_OUT; 	//輸出模式
	I2C_SCL_H;  	//SCL拉高
	delay_us(); 	
	I2C_SDA_H; 		//SDA拉高
	delay_us();
	I2C_SDA_L; 		//SDA拉低
	delay_us();
	I2C_SCL_L; 		//SCL拉低
	delay_us();

}

/*
 * 函數(shù)名:i2c_stop
 * 函數(shù)功能:模擬i2c停止信號(hào)的時(shí)序
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */

void i2c_stop(void)
{
	/*
	 * 停止信號(hào) : 時(shí)鐘在高電平期間,數(shù)據(jù)線從低到高的變化 
	 *                    ----------
	 * SCL               /
	 *    ---------------	//SDA拉高
	I2C_SDA_H;
	delay_us();
	//SCL拉低
	I2C_SCL_L;
	delay_us();

	 *    ---         --------------
	 * SDA   X       /
	 *    --- -------
	 * */

	SET_SDA_OUT; 	//輸出模式
	I2C_SCL_L; 		//SCL拉低
	delay_us();
	I2C_SDA_L; 		//SDA拉低
	delay_us();
	I2C_SDA_H; 		//SDA拉高
	delay_us();
	I2C_SCL_H; 		//SCL拉高
	delay_us();

}

/*
 * 函數(shù)名: i2c_write_byte
 * 函數(shù)功能:主機(jī)向i2c總線上的從設(shè)備寫8bits數(shù)據(jù)
 * 函數(shù)參數(shù):dat : 等待發(fā)送的字節(jié)數(shù)據(jù)
 * 函數(shù)返回值: 無(wú)
 * */

void i2c_write_byte(unsigned char dat)
{
	/*
	 * 數(shù)據(jù)信號(hào):時(shí)鐘在低電平期間,發(fā)送器向數(shù)據(jù)線上寫入數(shù)據(jù)
	 * 			時(shí)鐘在高電平期間,接收器從數(shù)據(jù)線上讀取數(shù)據(jù) 
	 *      ----          --------
	 * 	SCL     \        /        \
	 *           --------          --------
	 *      -------- ------------------ ---
	 * 	SDA         X                  X
	 *      -------- ------------------ ---
	 *
	 *      先發(fā)送高位在發(fā)送低位 
	 * */
	unsigned int i;
	SET_SDA_OUT;

	for(i = 0; i < 8; i++)
	{
	
	//SCL拉低
		I2C_SCL_L;
		delay_us();
		if(dat & 0x80)
		{
	//SDA拉高
			I2C_SDA_H;
		}
		else 
		{
	//SDA拉低
			I2C_SDA_L;
		}
		delay_us();
	//SCL拉高
		I2C_SCL_H;
		delay_us();
		delay_us();
		dat <<= 1;
	}


}

/*
 * 函數(shù)名:i2c_read_byte
 * 函數(shù)功能: 主機(jī)從i2c總線上的從設(shè)備讀8bits數(shù)據(jù), 
 *          主機(jī)發(fā)送一個(gè)應(yīng)答或者非應(yīng)答信號(hào)
 * 函數(shù)參數(shù): 0 : 應(yīng)答信號(hào)   1 : 非應(yīng)答信號(hào)
 * 函數(shù)返回值:讀到的有效數(shù)據(jù)
 *
 * */
unsigned char i2c_read_byte(unsigned char ack)
{
	/*
	 * 數(shù)據(jù)信號(hào):時(shí)鐘在低電平期間,發(fā)送器向數(shù)據(jù)線上寫入數(shù)據(jù)
	 * 			時(shí)鐘在高電平期間,接收器從數(shù)據(jù)線上讀取數(shù)據(jù) 
	 *      ----          --------
	 * 	SCL     \        /        \
	 *           --------          --------
	 *      -------- ------------------ ---
	 * 	SDA         X                  X
	 *      -------- ------------------ ---
	 *
	 *      先接收高位, 在接收低位 
	 * */

	unsigned char dat;
	unsigned int i;
	SET_SDA_IN;

	for(i = 0; i < 8; i++)
	{
		//
		dat <<= 1;	//SDA拉高
	I2C_SDA_H;
	delay_us();
	//SCL拉低
	I2C_SCL_L;
	delay_us();

		
	//SCL拉低
		I2C_SCL_L;
		delay_us();
		delay_us();


	//SCL拉高
		I2C_SCL_H;
		delay_us();
		if(I2C_SDA_READ)
		{
			dat |= 1;
		}
		else 
		{
			dat |= 0;
		}
		delay_us();

	}
	if(!ack)//應(yīng)答
	{
		i2c_ack();
	}
	else//非應(yīng)答
	{
		i2c_nack();
	}

	return dat;

}
/*
 * 函數(shù)名: i2c_wait_ack
 * 函數(shù)功能: 主機(jī)作為發(fā)送器時(shí),等待接收器返回的應(yīng)答信號(hào)
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:
 *					0:接收到的應(yīng)答信號(hào)
 *                  1:接收到的非應(yīng)答信號(hào)
 * */
unsigned char i2c_wait_ack(void)
{
	/*
	 * 主機(jī)發(fā)送一個(gè)字節(jié)之后,從機(jī)給主機(jī)返回一個(gè)應(yīng)答信號(hào)
	 *
	 *                   -----------
	 * SCL              /   M:讀    \
	 *     -------------             --------
	 *     --- ---- --------------------
	 * SDA    X    X
	 *     ---      --------------------
	 *     主  釋   從機(jī)    主機(jī)
	 *     機(jī)  放   向數(shù)據(jù)  讀數(shù)據(jù)線
	 *         總   線寫    上的數(shù)據(jù)
	 *         線   數(shù)據(jù)
	 * */	
	//SCL拉低,改變數(shù)據(jù)線上數(shù)據(jù)
	I2C_SCL_L;
	delay_us();
	//SDA拉高,總線處于空閑狀態(tài)
	I2C_SDA_H;
	delay_us();

	//設(shè)置為輸入模式
	SET_SDA_IN;
	delay_us();

	//SCL拉高,從數(shù)據(jù)線上讀取數(shù)據(jù)
	I2C_SCL_H;
	delay_us();
	if(I2C_SDA_READ)
		return 1; 	//讀取到非應(yīng)答信號(hào)
	//SCL拉低,總線處于占用狀態(tài)
	I2C_SCL_L;
	return 0; 		//讀取應(yīng)答信號(hào)

} 
/*
 * 函數(shù)名: iic_ack
 * 函數(shù)功能: 主機(jī)作為接收器時(shí),給發(fā)送器發(fā)送應(yīng)答信號(hào)
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */
void i2c_ack(void)
{
	/*            --------
	 * SCL       /        \
	 *    -------          ------
	 *    ---
	 * SDA   X 
	 *    --- -------------
	 * */
	//設(shè)置為數(shù)據(jù)輸出模式
	SET_SDA_OUT;
	//SCL拉低
	I2C_SCL_L;
	delay_us();
	//SDA拉低
	I2C_SDA_L;
	delay_us();
	//SCL拉高,等待接收器從數(shù)據(jù)新上讀取數(shù)據(jù)
	I2C_SCL_H;
	delay_us();
	delay_us();
	//SCL拉低,總線處于占用狀態(tài)
	I2C_SCL_L;


}
/*
 * 函數(shù)名: iic_nack
 * 函數(shù)功能: 主機(jī)作為接收器時(shí),給發(fā)送器發(fā)送非應(yīng)答信號(hào)
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
 * */
void i2c_nack(void)
{
	/*            --------
	 * SCL       /        \
	 *    -------          ------
	 *    --- ---------------
	 * SDA   X 
	 *    --- 
	 * */	
	//設(shè)置為數(shù)據(jù)輸出模式
	SET_SDA_OUT;
	//SCL拉低
	I2C_SCL_L;
	delay_us();
	//SDA拉高
	I2C_SDA_H;
	delay_us();
	//SCL拉高,等待接收器從數(shù)據(jù)新上讀取數(shù)據(jù)
	I2C_SCL_H;
	delay_us();
	delay_us();
	//SCL拉低,總線處于占用狀態(tài)
	I2C_SCL_L;


}

si7006.c

#include "iic.h"
#include "si7006.h"
extern void delay_ms(unsigned int ms);
/*
 * 函數(shù)名:si7006_init
 * 函數(shù)功能:SI7006芯片的初始化
 * 函數(shù)參數(shù):無(wú)
 * 函數(shù)返回值:無(wú)
*/
void si7006_init(void)
{
	i2c_init();
	i2c_start();
	i2c_write_byte(SI7006_SLAVE << 1 | 0);
	i2c_wait_ack();
	i2c_write_byte(0xE6);
	i2c_wait_ack();
	i2c_write_byte(0x3A);
	i2c_wait_ack();
	i2c_stop();

}
/*
 * 函數(shù)名:si7006_read_data
 * 函數(shù)功能:讀取SI7006的轉(zhuǎn)換結(jié)果
 * 函數(shù)參數(shù):
 *     slave_addr : 從機(jī)地址
 *     reg_addr : 寄存器地址
 * 函數(shù)返回值:無(wú)
*/
short si7006_read_temp_data(unsigned char slave_addr,unsigned char reg_addr)
{
	short dat;
	unsigned char dat_l;
	unsigned char dat_h;
	i2c_start();
	i2c_write_byte(slave_addr << 1 | 0);
	i2c_wait_ack();
	i2c_write_byte(reg_addr);
	i2c_wait_ack();
	i2c_start();
	i2c_write_byte(slave_addr << 1 | 1);
	i2c_wait_ack();
	delay_ms(500);
	dat_h = i2c_read_byte(0);
	dat_l = i2c_read_byte(1);
	i2c_stop();
	dat = dat_h;
	dat <<= 8;
	dat |= dat_l;
	return dat;
}
/*
 * 函數(shù)名:si7006_read_data
 * 函數(shù)功能:讀取SI7006的轉(zhuǎn)換結(jié)果
 * 函數(shù)參數(shù):
 *     slave_addr : 從機(jī)地址
 *     reg_addr : 寄存器地址
 * 函數(shù)返回值:無(wú)
*/
unsigned short si7006_read_hum_data(unsigned char slave_addr,unsigned char reg_addr)
{
	unsigned short dat;
	unsigned char dat_l;
	unsigned char dat_h;

	i2c_start();
	i2c_write_byte(slave_addr << 1 | 0);
	i2c_wait_ack();
	i2c_write_byte(reg_addr);
	i2c_wait_ack();
	i2c_start();
	i2c_write_byte(slave_addr << 1 | 1);
	i2c_wait_ack();
	delay_ms(500);
	dat_h = i2c_read_byte(0);
	dat_l = i2c_read_byte(1);
	i2c_stop();
	dat = dat_h;
	dat <<= 8;
	dat |= dat_l;
	return dat;
}

main.c

#include "si7006.h"

extern void printf(const char *fmt, ...);
void delay_ms(int ms)
{
	int i,j;
	for(i = 0; i < ms;i++)
		for (j = 0; j < 1800; j++);
}

int main()
{
	unsigned short hum;
	short temp;
	si7006_init();

	printf("HUM_TEMP TEXT READY\n");
	while(1)
	{
		hum = si7006_read_hum_data(SI7006_SLAVE,0xE5);
		temp = si7006_read_temp_data(SI7006_SLAVE,0xE3);
		printf("hum = %d\n",125*hum/65536-6);
		printf("temp = %d\n",175*temp/65536-47);
	}
	return 0;
}

ARM day10 (IIC協(xié)議接收溫濕傳感器數(shù)據(jù)),ARM,arm開(kāi)發(fā)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-559327.html

到了這里,關(guān)于ARM day10 (IIC協(xié)議接收溫濕傳感器數(shù)據(jù))的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ESP32-硬件IIC讀取溫濕度傳感器SHT30

    ESP32-硬件IIC讀取溫濕度傳感器SHT30

    esp32 使用硬件I2C讀取溫濕度傳感器SHT30,例程基于 EDP-IDF-4.4.X 的I2C Simple Example 例程修改 打開(kāi) VSCODE ,通過(guò) 查看-- 命令面板(快捷鍵Ctrl+Shift+P),打開(kāi) ESP-IDF 的例程后,選擇 i2c_simple 例程,點(diǎn)擊 Create project using example i2c_simple,選擇自己要存儲(chǔ)的目錄。【PS:工程的目錄不要有中文路

    2024年02月02日
    瀏覽(52)
  • IIC學(xué)習(xí)之SHT30溫濕度傳感器(基于STM32)

    IIC學(xué)習(xí)之SHT30溫濕度傳感器(基于STM32)

    附上SHT30資料和邏輯分析儀源文件,點(diǎn)擊下載 關(guān)于IIC的介紹網(wǎng)上已經(jīng)非常詳盡,這里只說(shuō)重點(diǎn): 雙線(SDA,SCL),半雙工 采用主從結(jié)構(gòu),支持一主多從,通過(guò)地址尋址,每個(gè)I2C設(shè)備都有唯一的7位或10位地址,還有1bit選擇讀寫(0為寫,1為讀) 速率較低,I2C總線支持多種通信

    2024年02月01日
    瀏覽(27)
  • STM32Cubemxhal庫(kù)硬件IIC驅(qū)動(dòng)SHT40溫濕度傳感器

    STM32Cubemxhal庫(kù)硬件IIC驅(qū)動(dòng)SHT40溫濕度傳感器

    STM32cubemx配置硬件IIC如圖所示 ?SHT40的驅(qū)動(dòng)代碼 注意:在讀sht40的寄存器之后一定要加10幾個(gè)ms的延時(shí)

    2024年02月12日
    瀏覽(35)
  • Arduino Uno零基礎(chǔ)入門學(xué)習(xí)筆記——智能時(shí)鐘(可以顯示溫濕度)【LCD1602+DS1302+溫濕度傳感器+紅外接收器+LED+蜂鳴器】

    Arduino Uno零基礎(chǔ)入門學(xué)習(xí)筆記——智能時(shí)鐘(可以顯示溫濕度)【LCD1602+DS1302+溫濕度傳感器+紅外接收器+LED+蜂鳴器】

    需要以下幾個(gè)外設(shè) LCD1602(IIC驅(qū)動(dòng)) DS1302 1-WIRE溫濕度檢測(cè)器 紅外接收器 遙控器 兩個(gè)LED(一紅一藍(lán)) 蜂鳴器 LCD1602IIC引腳 Arduino引腳 VCC 5V GND GND SDA A4 SCL A5 我這里的LCD1602是IIC的,所以只需要4根線 傳感器引腳 Arduino引腳 - GND S 8 + 5V 中間的線是要接5V的 紅外接收器引腳 Arduino引腳 -

    2024年02月06日
    瀏覽(18)
  • MFC+Modbus-Tcp協(xié)議實(shí)現(xiàn)溫濕度傳感器采集
二、libmodbus驅(qū)動(dòng)庫(kù)

    MFC+Modbus-Tcp協(xié)議實(shí)現(xiàn)溫濕度傳感器采集 二、libmodbus驅(qū)動(dòng)庫(kù)

    本文簡(jiǎn)單介紹 MFC 使用 Modbus -Tcp通信實(shí)現(xiàn) RS-WS-ETH-6 系列 MODBUSTCP 型溫濕度傳感器采集數(shù)據(jù)。 ?一文看懂Modbus協(xié)議:一文看懂Modbus協(xié)議 ?libmodbus驅(qū)動(dòng)庫(kù)的使用:Modbus驅(qū)動(dòng)庫(kù)—libmodbus驅(qū)動(dòng)庫(kù)的使用_whik1194的博客-CSDN博客_libmodbus ?modbus 中文手冊(cè): libmodbus官方手冊(cè)中文翻譯_躍動(dòng)的風(fēng)

    2024年02月02日
    瀏覽(75)
  • 常用傳感器-溫濕度傳感器SHT30

    常用傳感器-溫濕度傳感器SHT30

    SHT30溫濕度傳感器 工作電壓:2.4V-5.5V 通訊協(xié)議:IIC 濕度測(cè)量范圍:0-100 溫度測(cè)量范圍:-40°-125° VIN:電源正極 GND:電源負(fù)極 SCL:數(shù)據(jù)線 SDA:數(shù)據(jù)線 1.加載庫(kù)文件:ClosedCube_SHT31D 選擇庫(kù)文件:ClosedCube_SHT31D 2.連接esp mini d1和溫濕度傳感器 VIN和GND分別取主板5V電壓 SCL和SDA分別接

    2024年02月01日
    瀏覽(23)
  • 玩轉(zhuǎn)傳感器——DHT11溫濕度傳感器(STM32版)

    玩轉(zhuǎn)傳感器——DHT11溫濕度傳感器(STM32版)

    DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電阻式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。因此該產(chǎn)

    2024年02月03日
    瀏覽(27)
  • 51單片機(jī) DHT11溫濕度傳感器 MQ2傳感器

    51單片機(jī) DHT11溫濕度傳感器 MQ2傳感器

    目錄 前言 程序思路 DHT11 一、DHT11基礎(chǔ)儲(chǔ)備 ?二、接口說(shuō)明 三、協(xié)議及數(shù)據(jù)格式 ?編輯 四、DHT11代碼 MQ-2煙霧傳感器 一、MQ-2煙霧傳感器介紹 二、工作原理 三、時(shí)序配置 四、指令配置 ?編輯 五、代碼 LCD1602 一、LCD1602介紹 二、LCD1602指令介紹??編輯 三、LCD1602代碼 ?HC-05 一

    2024年02月04日
    瀏覽(19)
  • DHT11溫濕度傳感器學(xué)習(xí)

    DHT11溫濕度傳感器學(xué)習(xí)

    ?DHT11溫濕度傳感器共有四個(gè)引腳 1個(gè)VCC高電平,1個(gè)GND接地低電平,1個(gè)數(shù)據(jù)輸出引腳,一個(gè)空引腳 工作時(shí)候,通過(guò)out引腳可以向傳感器傳遞應(yīng)答信號(hào)并返回40位的溫濕度數(shù)據(jù),也就是5個(gè)字節(jié) 前2個(gè)字節(jié)表示溫度的整數(shù)位和小數(shù)位,后面兩個(gè)字節(jié)是濕度的整數(shù)位和小數(shù)位,最后

    2024年02月07日
    瀏覽(96)
  • 溫濕度傳感器DHT11介紹

    溫濕度傳感器DHT11介紹

    溫濕度傳感器DHT11簡(jiǎn)介 ? ? ? DHT11數(shù)字溫濕度傳感器是一種出廠時(shí)經(jīng)過(guò)校準(zhǔn)的數(shù)字信號(hào)輸出的溫濕度數(shù)字溫濕度傳感器 。DHT11 數(shù)字溫濕度傳感器應(yīng)用溫濕度傳感技術(shù)和數(shù)字采集技術(shù),確保其具有極高的可靠性和卓越的長(zhǎng)期穩(wěn)定性。 ? ? ? DHT11 數(shù)字溫濕度傳感器內(nèi)置一個(gè)電阻式

    2023年04月22日
    瀏覽(19)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包