步骤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步:成品
以下是成品的样子。我们实际上已将传感器包含在外部分线板上,这样我们就可以保持外壳完全密封,并让传感器暴露在外。
垃圾场焚烧有毒有害工业废气排放监测
制约中国智能制造发展问题、工业机器人的大规模应用瓶颈问题探讨
AI机器人公司极智嘉宣布完成1.5亿美元B轮融资
什么是维基链多重签名技术
小米移动电源320000mAh高配版评测 到底值不值得入手
如何设置温度和湿度传感器
这部手机是iphone不能企及的,盲人专用
浪潮存储与医利捷联合推出解决方案促进医疗服务均等化
四川首款全复材多用途无人机首飞成功
AI与AR,当科幻走进生活
全面屏推动COF方案加速渗透为FPC带来新需求
二极管的前世今生
有了创基Type-C分线器从此告别接口盲插
低压运放有哪些
DIALOG多点触控IC被纬创集团采用
什么是电容?为什么电容器很重要?
矽睿科技CEO孙臻:传感器是未来世界的核心
工控领域成智能电源管理新蓝海
汽车ESD保护元件的问题解答
中国航天迎来里程碑式新跨越