如何设置温度和湿度传感器

电子说

1.3w人已加入

描述

步骤1:组件

NodeMCU

DHT22传感器

10K欧姆电阻器

LED

220欧姆电阻器

按钮

面包板。 (我们使用了Adafruit Perma-Proto BreadBoards)

外壳和电缆接头

4x AA电池座和电池

步骤2:将其连线

传感器

以下是设备的基本接线图。你可以在这个教程的最后看到最终版本的样子。

虽然不需要,但我们已经包含了按钮以发布手册阅读。

步骤3:源代码

对于我们的天气传感器,我们将向READiness.io服务发布数据。为此,我们创建了一个READiness.io库来处理wifi和服务连接。我们还将所有配置变量拆分为单独的.h文件。

您可以在此处下载完整的源代码

weatherSensor.ino

#包括 “ DHT.h ”

# include 《 readiness_io.h 》

#包括 《 Ticker.h 》

# include “ config.h “

const int LED_PIN = 0 ; //连接LED的引脚(D3)

const 字节INTERRUPT_PIN = 12 ; //引脚连接测试按钮(D6)

volatile 字节中断= 0 ;

#定义 DHTPIN 4 //传感器连接的数字引脚(D2)

#定义 DHTTYPE DHT22 //指定DHT传感器的类型

DHT dht (DHTPIN,DHTTYPE);

readiness_io client (CHANNEL_ID,TOPIC,SENSOR_ID,VERSION,FORMAT);

Ticker timer;

void setup (){

pinMode (LED_PIN,OUTPUT);

pinMode (BUILTIN_LED ,OUTPUT);

digitalWrite (BUILTIN_LED,HIGH);

pinMode (INTERRUPT_PIN,INPUT_PULLUP);

Serial。 开始( 115200 );

Serial。 setTimeout ( 2000 );

while (!Serial){} //等待串口初始化。

Serial。 println ( ”设备已启动“ );

串行。打印( ”连接到“ );

Serial。 println (WIFI_SSID);

client。 wifiConnection (WIFI_SSID,WIFI_PASS);

attachInterrupt ( digitalPinToInterrupt (INTERRUPT_PIN),buttonInterrupt,FALLING);

timer。 attach (UPDATE_RATE,writeToServer);

client。 testConnection ();

}

void buttonInterrupt (){

interrupt ++;

}

/* 用于发送的中断计时器数据到Readiness.io服务器 */

void writeToServer (){

interrupt ++;

}

void 循环(){

if (中断》 0 ){

/* 读取DHT22传感器 */

float h = dht。 readHumidity ();

float t = dht。 readTemperature ();

/* 将数据写入json字符串并发送到服务器。 */

字符串天气= ” \“湿度 \”:“ + 字符串(h)+ “,” ;

weather + = “ \” 温度 \“:” + 字符串(t);

/* 将数据发布到readiness_io网络 */

client。 publishCustom (天气);

/* 重置中断变量,直到定时器中断或按钮将其关闭 */

interrupt = 0 ;

}

}

查看rawweatherSensor.ino由❤通过GitHub主持

config.h

cons t 字符串CHANNEL_ID = “ XXXXXXXXXXXX ” ; // Readiness.io通道ID

const 字符串SENSOR_ID = ” XXXXXXXXXXXXX “ ; //您的AgriWebb或组成的传感器ID

const 字符串TOPIC = ” XXXXXXX “ ; //传感器的类型或发送数据的名称

const 字符串VERSION = ” 1 “ ;

const 字符串格式= “ ” ; //将此处留空,除非您需要特定的就绪格式。

//即agriwebb

const char * WIFI_SSID = ” XXXXXXX “ ; //您的WiFi SSID/名称

const char * WIFI_PASS = ” XXXXXXX “ ; //您的WiFi密码

const uint16_t UPDATE_RATE = 30 ; //在发送数据之间等待多长时间(以秒为单位)

const uint8_t TIMEZONE_OFFSET = 10 ; //传感器所在的时区(例如GMT为10)

查看由GitHub承载❤的rawconfig.h

第4步:成品

传感器

以下是成品的样子。我们实际上已将传感器包含在外部分线板上,这样我们就可以保持外壳完全密封,并让传感器暴露在外。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分