ESP8266采集SHT10温湿度

本文介绍了如何利用ESP8266微控制器通过GPIO模拟I2C协议与SHT10温湿度传感器进行通信。在连接中,SDA引脚映射为GPIO12,SCL引脚映射为GPIO13。采集的数据以JSON格式经由UDP广播方式对外发布。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP8266通过GPIO模拟时序与SHT进行通信,SDA使用GPIO12,SCL使用GPIO13

#define WIFI_LINK_LED_IO_MUX     PERIPHS_IO_MUX_MTCK_U
#define WIFI_LINK_LED_IO_NUM     13
#define WIFI_LINK_LED_IO_FUNC    FUNC_GPIO13
#define WIFI_LINK_LED_IO_BIT	 BIT13

#define SHT_SDA_IO_MUX PERIPHS_IO_MUX_MTDI_U
#define SHT_SDA_IO_NUM 12
#define SHT_SDA_IO_FUNC  FUNC_GPIO12
#define SHT_SDA_IO_BIT	BIT12

#define SHT_SCL_IO_MUX PERIPHS_IO_MUX_MTCK_U
#define SHT_SCL_IO_NUM 13
#define SHT_SCL_IO_FUNC  FUNC_GPIO13
#define SHT_SCL_IO_BIT	BIT13

#define SHTSDA_SET()	gpio_output_set(SHT_SDA_IO_BIT, 0, SHT_SDA_IO_BIT, 0);
#define SHTSDA_CLR()	gpio_output_set(0,SHT_SDA_IO_BIT, SHT_SDA_IO_BIT, 0);

#define SHTSCL_SET()	gpio_output_set(SHT_SCL_IO_BIT, 0, SHT_SCL_IO_BIT, 0);
#define SHTSCL_CLR()	gpio_output_set(0,SHT_SCL_IO_BIT, SHT_SCL_IO_BIT, 0);

#define SHTSDA_READ()	(gpio_input_get()&SHT_SDA_IO_BIT)

#define SHT_DELAY()     os_delay_us(50)

#define Delayus(t)  os_delay_us(t)
#define	Delayms(t)	os_delay_us(t*1000)


GPIO初始化,注意,要开漏输出

void init_sht_gpio(void)
{
	PIN_FUNC_SELECT(SHT_SDA_IO_MUX, SHT_SDA_IO_FUNC);
	PIN_FUNC_SELECT(SHT_SCL_IO_MUX, SHT_SCL_IO_FUNC);

    GPIO_REG_WRITE(GPIO_PIN_ADDR(GPIO_ID_PIN(SHT_SDA_IO_NUM)), GPIO_REG_READ(GPIO_PIN_ADDR(GPIO_ID_PIN(SHT_SDA_IO_NUM))) | GPIO_PIN_PAD_DRIVER_SE
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值