X5ZJ 发表于 2020-12-4 23:41

多点测平均温度实现智能控制(arduino-ds18b20)

本帖最后由 X5ZJ 于 2020-12-4 23:47 编辑

一、设备及配件:
1)JIUAI远程控制器(4路)集成无线WIFI模块(基于ESP8266)
2)DSB18B20(准备模块2个,最大支持8个)
3)杜邦线9根,面包板1个
4)开发环境:arduino 1.8.13


二、测试代码(主要核心代码)
/* ***********************
* DS18B20温度传感器(可级联)最大并联8个
* 精度9(分辨率0.5)
* 总线处于低电平时 电容供电 寄生电源模式 VDD接地
* ************************/
void getDS18B20()
{
    if((millis() - dht_times)<10*1000)return;//采取非阻塞方式,每10秒读取一次数据
    dht_times=millis();
//    Serial.print("总线上DS18系列设备数量为:");
//    Serial.println(sensors.getDS18Count());//setup()初始化时已修改
      Serial.print("总线是否需要寄生供电(1-true; 0-false):");
      Serial.println(sensors.isParasitePowerMode());
      Serial.print("总线上设备数据最大分辨率为:");
      Serial.println(sensors.getResolution());
      Serial.print("总线上DS18..系列设备数量为:");Serial.println(ds18b20_max);
      sensors.requestTemperatures(); //DS18B20发送命令获取温度
      delay(10);
      float temp_sum=0.0;
      for(int r=0;r<ds18b20_max;r++)
      {//循环读取设备总线的每个设备的温度
            ds_temp=sensors.getTempCByIndex(r);//索引从0开始
            Serial.print(datetime);Serial.print(" >> ");Serial.print(r);Serial.print(")= ");
            if (ds_temp != DEVICE_DISCONNECTED_C){
                Serial.println(ds_temp);
                temp_sum+=ds_temp;//所有设备温度之和
            }
            delay(2);
      }
      dx_temp_avg=temp_sum/ds18b20_max;//计算平均温度
      Serial.print(" >>>average temperature= ");Serial.print(dx_temp_avg);
      sprintf(dht_str,dht_json,chipsn,((float)dx_temp_avg),((float)0),myclientid,times,"ds18b20");
      mqttClient.publish(pub_topic_name3,dht_str,0);//通过MQTT发布出去
}
本文仅提供多点测出的平均温度上传到手机端(同步频率每10秒一次),具体此温度如何实现4路控制可以进一步发挥定制代码即可。比如:高于30度开1路,高于32度开2路,低于28关1路,低于25度关2路。。。。本模块支持 任意组合控制(延时开关,时间控制策略,温度控制策略,点动,自动等等)
三、接线图及测试结果




控制器目前支持多种传感器,其中支持DHT11/DHT22/DS18B20温度传感器本篇主要分享多点测温求平均温度后执行温控策略实现本地智能控制(设置温度区间 从而控制继电器k1,k2,k3,k4的动作即可)根据需要DIY属于自己的宝贝。更多信息欢迎关注交流。仅分享学习交流,高手指教,不喜勿喷,感谢!喜欢就支持下哦

X5ZJ 发表于 2020-12-5 13:24

月夜箜篌 发表于 2020-12-5 08:30
手机app可以自己写好代码,然后UI外包出去,或者和别的专业合作

websocket+mqtt实现发布 订阅主题即可。
收到的数据json解析下再用echart实现动态更新曲线图。
当然这里面要会h5的一些基本知识,html,js基础知识。

X5ZJ 发表于 2020-12-5 13:25

无知小白 发表于 2020-12-5 01:31
楼主我这段时间也要做一个关于物联网的毕业设计,向请问手机APP怎么做呢?

我这没做APP直接做个H5页面集成到公众号即可。利用hbuilder可以打包成APP的。很简单的。

arq2020 发表于 2020-12-5 00:37

谢谢,很有用

无知小白 发表于 2020-12-5 01:31

楼主我这段时间也要做一个关于物联网的毕业设计,向请问手机APP怎么做呢?

月夜箜篌 发表于 2020-12-5 08:30

无知小白 发表于 2020-12-5 01:31
楼主我这段时间也要做一个关于物联网的毕业设计,向请问手机APP怎么做呢?

手机app可以自己写好代码,然后UI外包出去,或者和别的专业合作

江篱 发表于 2020-12-5 09:04

好牛逼,看不懂&#128517;

空心 发表于 2020-12-5 09:18

厉害了我的哥。

flowcode 发表于 2020-12-5 09:29

无知小白 发表于 2020-12-5 01:31
楼主我这段时间也要做一个关于物联网的毕业设计,向请问手机APP怎么做呢?

自己学个编程

ht4266394 发表于 2020-12-5 09:45

让我想起了当年学单片机的时候

无知小白 发表于 2020-12-5 09:50

flowcode 发表于 2020-12-5 09:29
自己学个编程

程序倒是没有多大问题的功能比较简单,就是APP的界面怎么做我都不知道。

无知小白 发表于 2020-12-5 09:51

月夜箜篌 发表于 2020-12-5 08:30
手机app可以自己写好代码,然后UI外包出去,或者和别的专业合作

我是机械专业的结果毕业设计的时候抽中了这个,就有点不不知道怎么做
页: [1] 2
查看完整版本: 多点测平均温度实现智能控制(arduino-ds18b20)