物联那点事儿之DS18B20自制网络温度计(arduino+点灯科技篇)
前言
很久没有更新了,该好好反思了,废话不多说,fighting!
代码开源,喜欢的给个star吧!
git链接!!!
物联那点事儿专栏往期回顾:
- arduino+点灯科技+温湿度DHT11+esp01=自制网络温湿度计
- arduino+点灯科技+wifi继电器+esp01=网络远程控制开关机
- ardunio+点灯科技+温湿度+云存储=温湿度变化曲线
- arduino+点灯科技+DHT11+smartConfig=一键配网
- arduino+点灯科技+人体感应模块=红外安保
一、硬件
所需材料
1.nodemcu(这里就不做过多说明了)。
2.DS18B20(温湿度传感器)。
3.阻值大于4.7K的电阻一个(满足条件即可)。
4.杜邦线若干,面包板一个。(看具体实际要求)
硬件连线
在单片机中我们知道,单片机的io口接DS18B20需要一个上拉电阻,只是开发板在生产时便焊接好了上拉电阻,然后这个Nodemcu并没有上拉电阻,所以我们要自己接一个电阻,阻值范围大于4.7k,否则检测不到DS18B20设备接入Nodemcu上。
硬件连线入如下图所示:
程序部分
1.下载部分
下载DS18B20使用的库文件OneWire和DallasTemperature。
(可以手动在项目->加载库->管理库 中搜素对应的库文件进行下载安装)
OneWire库文件的作用是它的构造可以使Arduino指定应用于单总线的引脚,而DallasTemperature库文件的作用就是可以拿到DS18B20读取的温度数据,程序中必须包含这两个头文件。
2.代码解读
(1)引入blinker头文件和下载的OneWire.h、DallasTemperature.h头文件。
#define BLINKER_WIFI //定义wifi模块
#include <Blinker.h>#include<OneWire.h>
#include<DallasTemperature.h>
2.定义要使用的引脚、全局变量和OneWire对象(13号引脚对应NodeMCU的D7)。
#define PIN 13 //定义DHT11模块连接管脚io2
//定义一个OneWire对象,并使用13引脚作为单总线的引脚
float temp_read = 0;//定义浮点型全局变量 储存传感器读取的温湿度数据
//单总线的引脚的对象作为传感器的参数。
DallasTemperature sensors(&onewire);
OneWire onewire(PIN);
3.使用SmartConfig技术给设备一键配网,原理类似wifi共享,比直接配网的可用性强。
void smartConfig()//配网函数
{WiFi.mode(WIFI_STA);//使用wifi的STA模式Serial.println("\r\nWait for Smartconfig...");//串口打印WiFi.beginSmartConfig();//等待手机端发出的名称与密码//死循环,等待获取到wifi名称和密码while (1){ //等待过程中一秒打印一个.Serial.print(".");delay(1000); if (WiFi.smartConfigDone())//获取到之后退出等待{Serial.println("SmartConfig Success");//打印获取到的wifi名称和密码Serial.printf("SSID:%s\r\n", WiFi.SSID().c_str());Serial.printf("PSW:%s\r\n", WiFi.psk().c_str());break;}}
}
void WIFI_Init()
{Serial.println("\r\n正在连接");//当设备没有联网的情况下,执行下面的操作while(WiFi.status()!=WL_CONNECTED){if(WIFI_Status)//WIFI_Status为真,尝试使用flash里面的信息去 连接路由器{Serial.print(".");delay(1000); count++;if(count>=5){WIFI_Status = false;Serial.println("WiFi连接失败,请用手机进行配网"); }}else//使用flash中的信息去连接wifi失败,执行{smartConfig(); //smartConfig技术配网}} //串口打印连接成功的IP地址Serial.println("连接成功"); Serial.print("IP:");Serial.println(WiFi.localIP());
}
4.温度回传给手机app端,提前定义blinker组件。
BlinkerNumber TEMP("temp"); //定义温度数据键名void heartbeat()
{TEMP.print(temp_read); //给blinkerapp回传温度数据
}
65setup主函数中对串口、blinker初始化操作和数据回传函数的回调。
void setup()
{//初始化端口Serial.begin(115200);BLINKER_DEBUG.stream(Serial);BLINKER_DEBUG.debugAll();WIFI_Init();//调用WIFI函数Blinker.begin(auth, WiFi.SSID().c_str(), WiFi.psk().c_str());//运行blinkerBlinker.attachHeartbeat(heartbeat);//将传感器获取的数据传给blinker app上
}
6.loop函数中不停地读取温度,把读取温度操作放到loop函数中,并把读取到的温度赋值给全局变量。
Blinker.run();//运行Blinkersensors.requestTemperatures();Serial.write("温度:");float t=sensors.getTempCByIndex(0);temp_read=t;Serial.print(t);Serial.println("摄氏度");delay(1000);
3.调试与结果
(1)串口监视器打印出的效果截图如下所示。
(2)
物联那点事儿之DS18B20自制网络温度计(arduino+点灯科技篇)相关推荐
- 【酷易物联-arduino-sdk教程】利用自动生成的sdk模板点灯和上传数据
目前更新了SDK生成代码功能,很适合新手入门,特别推荐. 工作准备: 开发板:ESP8266 开发环境:ESP-8266 arduino环境 arduino软件安装 接入设备: 选择模板,点灯,其他随 ...
- 火热物联网下,中国传感器的冷思考
文章来源于传感器专家网,转载自物联传媒,图片来源于网络 近20年,移动互联网的发展催生物联网产业的发展.如今智能硬件层出不穷,从智能手环到智能手表,从智能盒子到智能家居,无不是在强化硬件的远程操控力. ...
- 三网物联卡的优缺点有哪些
伴随物联网.5G.人工智能等技术相继来袭,人们日常生活对网络世界依赖性越来越强,对日常生活用品智能化需求也越来越高,未来社会往智能化方向发展已然成为必然趋势.三网物联卡作为物联网改造世界的最强能动工具 ...
- 联通物联卡为什么没有网络_联通物联卡突然没有信号,试着用这几方法!
原标题:联通物联卡突然没有信号,试着用这几方法! 如果一个企业正处于项目的紧要关头,设备的核心物联卡突然没有信号,对于公司来说是难以接受的.按理来说物联卡采用专属网络信道,没信号的情况很少出现,尤其是 ...
- 4G物联卡跟NB物联卡有什么区别
通过一张看不见的网,将各个物体连接在一起,实现万物互联.智能运转,为人们生活.公司运营提供便利,这就是物联网.在这个物联网中,作为信息数据传输载体的物联卡就显得尤为重要.相信大家在行业中有听说过4G物 ...
- 截至2022.2.1全网最全面最开放的蓝牙AOA高精度定位行业生态解决方案配套产品及商用案例真实视频合集分享来自深圳核芯物联科技
截至2022.2.1全网最全面最开放的蓝牙AOA高精度定位行业生态解决方案配套产品及商用案例真实视频合集分享来自深圳核芯物联科技 原创 核芯物联岳毅恒 国产蓝牙AOA高精度定位岳毅恒 2022-01- ...
- ZETA SDR网关推动LPWAN2.0泛在物联,覆盖距离可达30km
ZETA SDR网关推动LPWAN2.0泛在物联,覆盖距离可达30km 据悉,纵行科技已推出ZETA SDR网关,为现有LPWAN市场带来了重大革新.该网关采用内置Advanced M-FSK调制方法 ...
- 钡铼工业智能物联网关BL110打通智能工厂的任督二脉
钡铼工业智能物联网关BL110打通智能工厂的任督二脉 随着科技的发展进步,智能工厂数字化工厂已经不再是选择题,而是必经之路了. 在工业生产中,不同产品采用不同的工艺.不同的设备.不同的技术方案,这些设 ...
- 电信物联卡网络怎么样_三大运营商物联卡有什么不同,选择哪家的最实惠!
原标题:三大运营商物联卡有什么不同,选择哪家的最实惠! 物联卡价格怎么样? 三大运营商物联卡有什么不同? 近期许多顾客跟我们妙月科技(musmoon.com)小编反映,在选购物联卡时候会货比三家后再挑 ...
最新文章
- 设计模式(Design Pattern)
- OpenCASCADE可视化:应用交互服务之标准交互式对象类
- zzuli 2527: THE END IS COMING!!!!!(最小费用最大流)
- 试试这个Excel知识测验,得分超过80分算你赢
- 内购订单进行二次处理_更学教育:卖家在投诉异常订单的流程是怎么样的?
- C++中string::find()函数和string::npos函数的使用
- JustForFly struts2标签s:generator
- Unity中一个安卓设备拆装项目,从使用到放弃ab包过程记录
- nginx反向代理中proxy_set_header的含义
- sam格式的结构和意义_SAMtools: SAM格式的处理利器
- AD PCB布板提示The following exception occurred whilst loading section primitive paramenters...解决方法
- 有一个字符串,如11.2美元34人民币;如何将数字与单位分开,放入数组中呢,数组比如 attr[0]=11.2 attr[1]=美元 ,依次类推
- [附源码]计算机毕业设计Python+uniapp智能公交查询APP59sm2(程序+lw+APP+远程部署)
- 谈谈Web端性能测试
- 使用servlet过滤器播放amr音频
- 插入, 桥 - 面面相连
- 金钱找零问题,招行笔试题
- KDD 2022时空数据挖掘领域论文汇总
- Docx怎么转换成Doc
- matlab 画圆~
热门文章
- Nice v5.3.7
- IE直接打开文件的保存位置
- 荣耀帐号服务,提升用户使用体验
- 车载OS大盘点及市场发展格局分析
- 1.4_28 Axure RP 9 for mac 高保真原型图 - 案例27【中继器 - 后台管理系统5】功能-弹窗修改数据
- MAC 查询端口被占用情况
- 第七节:Nacos集群搭建
- php获取当前时间的年月日时分秒格式
- Python中将True/False转为1/0的方法
- byte json 互转_golang []byte转json和json转[]byte