基于Blinker+18B20+继电器三档温控-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2941|回复: 7

[分享] 基于Blinker+18B20+继电器三档温控

[复制链接]
发表于 2021-2-28 00:53 | 显示全部楼层 |阅读模式
基于Blinker+18B20+继电器三档温控

可以用于热敷,暖炕,壁挂炉等,自己发挥吧
一定看到结束俩字,如果还不会,那你就别玩了
单单控制系统需要用到的材料:
1,继电器 继电器1.jpg
2,18b20建议带上拉小板
无标题.png
3,关键,ESP01s
无标题.jpg
4,选件:烧写器不会做的就买
无标题2.jpg


模块插入烧写器,打开软件,选择开发板,和“端口”
无标题3.jpg

有的同学不显示端口,可能你烧写器驱动有问题,找卖家要驱动,我就不提供链接了,再说我发的文件有毒,解释不清


代码

  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>

  3. volatile int item;
  4. OneWire oneWire_0(0);
  5. DallasTemperature sensors_0(&oneWire_0);
  6. DeviceAddress insideThermometer;
  7. volatile int gear;

  8. #define BLINKER_WIFI
  9. #include <Blinker.h>

  10. char auth[] = "26c18c5e4183";
  11. char ssid[] = "TP-LINK_123";
  12. char pswd[] = "12356789";

  13. float ds18b20_0_getTemp(int w) {
  14.   sensors_0.requestTemperatures();
  15.   if(w==0) {
  16.     return sensors_0.getTempC(insideThermometer);
  17.   }
  18.   else {
  19.     return sensors_0.getTempF(insideThermometer);
  20.   }
  21. }

  22. BlinkerButton Button1("k1");
  23. void Button1_callback(const String & state) {
  24.   if (state == "on") {
  25.     gear = 20;

  26.   }
  27. }
  28. BlinkerButton Button2("k2");
  29. void Button2_callback(const String & state) {
  30.   if (state == "on") {
  31.     gear = 30;

  32.   }
  33. }
  34. BlinkerButton Button3("k3");
  35. void Button3_callback(const String & state) {
  36.   if (state == "on") {
  37.     gear = 40;

  38.   }
  39. }
  40. BlinkerButton Button4("k4");
  41. void Button4_callback(const String & state) {
  42.   if (state == "off") {
  43.     digitalWrite(2,HIGH);
  44.     gear = -200;

  45.   }
  46. }

  47. void setup(){
  48.   Blinker.begin(auth,ssid,pswd);

  49.   pinMode(2, OUTPUT);
  50.   item = 0;
  51.   sensors_0.getAddress(insideThermometer, 0);
  52.   sensors_0.setResolution(insideThermometer, 9);
  53.   Serial.begin(115200);
  54.   gear = 0;
  55.   Button1.attach(Button1_callback);
  56.   Button2.attach(Button2_callback);
  57.   Button3.attach(Button3_callback);
  58.   Button4.attach(Button4_callback);
  59. }

  60. void loop(){
  61.   Blinker.run();

  62.   if (item < gear) {
  63.     digitalWrite(2,LOW);

  64.   } else if (item > gear) {
  65.     digitalWrite(2,HIGH);
  66.   }

  67.   item = ds18b20_0_getTemp(0);
  68.   Serial.println(item);
  69.   delay(1000);

  70. }
复制代码
这里需要修改一些东西就是
char auth[] = "26c18c5e4183";这个哪里来等下说
char ssid[] = "TP-LINK_123";这是我家的WiFi,你改你家的
char pswd[] = "12356789";密码也改,不改连空气啊

"26c18c5e4183";这个哪里来等下说
这个哪儿来?
d1d8a33640d2bbbca34bce56d4caba8.jpg 4bd97b9cfe9a7e578dfa4555fb10fe7.jpg 03cc058404f651b1f4945c7717b2b94.jpg ec7128464d63fe92bb6ed6fed6f0b38.jpg


点击返回设备并打开
b08b12de1fb6b6a0241519eb69b1d31.jpg c0c0f7324074e5b13118f5c7e6de698.jpg b0aa295bf8e548c1e16cc14476b894a.jpg 106b945c0d186bdc52b1c05d4b92a50.jpg

点击右上角建立四个按键

传完程序下滑app里的设备刷新,会显示在线!ok

四个按键三个档位K1-20度,K2-30度,K3-40度,k4关闭

打开电脑串口可查看温度变化,不要修改程序,把温度显示到手机上会变慢,

喜欢的就试试吧,有问题留言,我也不一定看,
我的上班啊
!!!
注意!!!程序18B20接的是0,但是你买的继电器模块也是0,能修改的自己修改一下,如果你说你不能修改程序但是你能做继电器,好,给你张图
201710030125047163.jpg
继电器接2,18b20接0,这样你还能看见esp01s板载LED变化

如果你啥也不会,只能按照我提供你的链接买模块,那你传这个代码,

  1. #include <OneWire.h>
  2. #include <DallasTemperature.h>

  3. volatile int item;
  4. OneWire oneWire_2(2);
  5. DallasTemperature sensors_2(&oneWire_2);
  6. DeviceAddress insideThermometer;
  7. volatile int gear;

  8. #define BLINKER_WIFI
  9. #include <Blinker.h>

  10. char auth[] = "26c18c5e4183";
  11. char ssid[] = "TP-LINK_C000";
  12. char pswd[] = "12356789";

  13. float ds18b20_2_getTemp(int w) {
  14.   sensors_2.requestTemperatures();
  15.   if(w==0) {
  16.     return sensors_2.getTempC(insideThermometer);
  17.   }
  18.   else {
  19.     return sensors_2.getTempF(insideThermometer);
  20.   }
  21. }

  22. BlinkerButton Button1("k1");
  23. void Button1_callback(const String & state) {
  24.   if (state == "on") {
  25.     gear = 20;

  26.   }
  27. }
  28. BlinkerButton Button2("k2");
  29. void Button2_callback(const String & state) {
  30.   if (state == "on") {
  31.     gear = 30;

  32.   }
  33. }
  34. BlinkerButton Button3("k3");
  35. void Button3_callback(const String & state) {
  36.   if (state == "on") {
  37.     gear = 40;

  38.   }
  39. }
  40. BlinkerButton Button4("k4");
  41. void Button4_callback(const String & state) {
  42.   if (state == "off") {
  43.     digitalWrite(0,HIGH);
  44.     gear = -200;

  45.   }
  46. }

  47. void setup(){
  48.   Blinker.begin(auth,ssid,pswd);

  49.   pinMode(0, OUTPUT);
  50.   item = 0;
  51.   sensors_2.getAddress(insideThermometer, 0);
  52.   sensors_2.setResolution(insideThermometer, 9);
  53.   Serial.begin(115200);
  54.   gear = 0;
  55.   Button1.attach(Button1_callback);
  56.   Button2.attach(Button2_callback);
  57.   Button3.attach(Button3_callback);
  58.   Button4.attach(Button4_callback);
  59. }

  60. void loop(){
  61.   Blinker.run();

  62.   if (item < gear) {
  63.     digitalWrite(0,LOW);

  64.   } else if (item > gear) {
  65.     digitalWrite(0,HIGH);
  66.   }

  67.   item = ds18b20_2_getTemp(0);
  68.   Serial.println(item);
  69.   delay(1000);

  70. }
复制代码
我也不知道该咋详细了,
补充:库下载
无标题21.jpg 无标题123.jpg
https://share.weiyun.com/5CGEKJO如果你的开发板里看不见8266,下这个!

结束!!


发表于 2021-3-1 09:45 | 显示全部楼层
本帖最后由 810986815 于 2021-3-2 17:17 编辑

这样也的程序还是不要发上来,不会的玩这个都是坑,会的不用你这个。
 楼主| 发表于 2021-3-1 12:27 来自手机 | 显示全部楼层
810986815 发表于 2021-3-1 09:45
这样也的程序还是不要发上来,不会的玩这个都是坑,会的不用你这个。还有就是年轻人谦虚点点好。 ...

咱也不知道你那儿来的自信、别人调用一个 示例 也没见你吱声、你是不是从小受到的教育就是没有人比你厉害?
 楼主| 发表于 2021-3-1 12:46 | 显示全部楼层
810986815 发表于 2021-3-1 09:45
这样也的程序还是不要发上来,不会的玩这个都是坑,会的不用你这个。还有就是年轻人谦虚点点好。 ...

头一回写这玩意、你告诉我缺什么、我补上不就完了吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 11:40 , Processed in 0.150469 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表