收藏官网首页

基于ESP8266 SOC方案,继电器开关,DS18B20温度【开源】

查看数: 154256 | 评论数: 54 | 收藏 19
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-4-11 17:58

正文摘要:

本帖最后由 Genius 于 2017-4-20 12:35 编辑 GizAsst 基于机智云的esp8266-12F SOC方案包含 1颗LED 1个继电器 1个 DS18B20温度传感器都是低电平触发。数据点定义 和 GPIO接线 请看图 别忘了 gizwits_protocol.h ...

回复

Mango! 发表于 2017-4-14 12:34:07
本帖最后由 Mango! 于 2017-4-14 12:43 编辑
peter58 发表于 2017-4-12 19:56
谢谢,下来学习下,下载得好慢哦,能加定时就好了我的温度怎么显示是341呢?我这里实际温度只有20-22度
...

根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这个数据点范围是-10 ~ 40   分辨率0.1 , 偏移量则是-10
可根据各自数据点的设置自己修改  /app/driver/ds18b20.c   344行
读数341*0.1-10 = 24.1度

给几个例子
44数值*0.1-10 =-5.6℃
498数值*0.1-10=39.8℃

(-8.5℃+10)/0.1 =数值15
(17.3℃+10)/0.1 =数值273

点评

按照指点在/app/driver/ds18b20.c 344行下面加了一条指令: temp=(temp*0.1)-10; 温度正值显示正常,负值并没有出现,而是大于4000的数值: -1度 对应 4095 -2度 对应 4094 -3度 对应 4093 -4度 对应 4092 ..  详情 回复 发表于 2018-12-30 20:03
兄弟,我这边用了楼主的驱动代码,但是数据总是会显示两个,来回发送,为啥啊  详情 回复 发表于 2018-11-20 08:46
冷眼看风云 发表于 2018-5-15 22:24:19
张师傅的小跟班 发表于 2018-3-23 10:25
我要是想修改GPIO口的话,我应该在上面地方进行修改呢?有没有大神啊

以下是输出控制

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(0), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);  //TXD
      GPIO_OUTPUT_SET(GPIO_ID_PIN(1), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(2), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);  //RXD
      GPIO_OUTPUT_SET(GPIO_ID_PIN(3), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(4), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(5), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(9), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(10), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(12), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(13), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(14), level);

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
      GPIO_OUTPUT_SET(GPIO_ID_PIN(15), level);

      gpio16_output_conf();
      gpio16_output_set(level);

以下是输入采集

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO0_U, FUNC_GPIO0);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(0));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0TXD_U, FUNC_GPIO1);  //TXD
      result = GPIO_INPUT_GET(GPIO_ID_PIN(1));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(2));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_U0RXD_U, FUNC_GPIO3);  //RXD
      result = GPIO_INPUT_GET(GPIO_ID_PIN(3));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(4));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO5_U, FUNC_GPIO5);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(5));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA2_U, FUNC_GPIO9);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(9));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_SD_DATA3_U, FUNC_GPIO10);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(10));


      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDI_U, FUNC_GPIO12);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(12));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTCK_U, FUNC_GPIO13);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(13));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTMS_U, FUNC_GPIO14);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(14));

      PIN_FUNC_SELECT(PERIPHS_IO_MUX_MTDO_U, FUNC_GPIO15);
      result = GPIO_INPUT_GET(GPIO_ID_PIN(15));

      gpio16_input_conf();
      result = gpio16_input_get();
peter58 发表于 2017-4-27 17:28:17
本帖最后由 peter58 于 2017-4-27 17:38 编辑
Mango! 发表于 2017-4-14 12:34
根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这 ...

你好,我和你的数据点一样,程序里的344行 temp=((temp*0.0625)+10)*10;这里需要怎么修改呢?我需要怎么修改才可以得到实际的温度呢?是修改偏移量还是修改哪里?谢谢

点评

temp=(temp*0.0625) 就行了  详情 回复 发表于 2018-5-21 12:04
改成功了嗎?? 依實際的算法下去做修改即可!  详情 回复 发表于 2017-8-26 14:38
老谢 发表于 2017-4-14 18:28:06
楼主没给硬件接线图;从“数据点”备注中可以看出来。
18B20接GPIO5;
LED接GPIO12;
Switch接GPIO14;
按键KEY接GPIO4;
qqywl 发表于 2017-4-11 20:17:38
gpio接线图在哪
冯俊波 发表于 2023-5-8 16:40:41
asydxl 发表于 2023-5-8 10:53
这个是用什么软件编写代码呀

只要你愿意,记事本也可以写
asydxl 发表于 2023-5-8 10:53:50
这个是用什么软件编写代码呀

点评

只要你愿意,记事本也可以写  详情 回复 发表于 2023-5-8 16:40
DCT-need 发表于 2020-11-23 23:47:12
正在下载,阅读学习
TaoDream 发表于 2020-3-11 21:20:22
学习下.......................
hankca 发表于 2020-3-2 11:44:33
收藏 正想试试
菜鸟一枚111 发表于 2019-6-14 12:10:11
请问下载下来的东西如何使用啊,比如下载方面,以及修改为自己的密钥,我修改后编译发现没有新的BIN文件生成是怎么回事啊,用的是安信可提供的那个eclipse开发环境,跪求啊:
ZJNBZM 发表于 2019-3-4 15:36:53
老师:  源码 github:https://github.com/535/GizAsst,网页无法访问,你是否可上传一个,QQ:2194498187  谢谢!
碧螺春 发表于 2019-1-7 17:23:18
不错,顶顶顶顶顶顶顶顶顶顶顶顶
思科赛电子 发表于 2018-12-30 20:04:14
谢谢分享!
按照楼主指点在/app/driver/ds18b20.c   344行下面加了一条指令:
temp=(temp*0.1)-10;
温度正值显示正常,负值并没有出现,而是大于4000的数值:
-1度 对应  4095
-2度 对应  4094
-3度 对应  4093
-4度 对应  4092
... ...
需要心算才能知道零下的度数,呵呵!几次改动程序没有成功。
请高手指点,多谢!
思科赛电子 发表于 2018-12-30 20:03:37
Mango! 发表于 2017-4-14 12:34
根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这 ...

按照指点在/app/driver/ds18b20.c   344行下面加了一条指令:
temp=(temp*0.1)-10;
温度正值显示正常,负值并没有出现,而是大于4000的数值:
-1度 对应  4095
-2度 对应  4094
-3度 对应  4093
-4度 对应  4092
... ...
需要心算才能知道零下的度数,呵呵!几次改动程序没有成功。
lizs 发表于 2018-12-15 15:26:34
添加设备时,一直在等待设备就绪是怎么回事呢?
王狗狗 发表于 2018-11-20 08:46:18
Mango! 发表于 2017-4-14 12:34
根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这 ...

兄弟,我这边用了楼主的驱动代码,但是数据总是会显示两个,来回发送,为啥啊
王狗狗 发表于 2018-11-13 16:13:44
楼主,您好。有个问题请教您一下、DS18B20直接接到GPIO5上么?它可以取代DHT11?还有里边的程序需要改动多少呢?谢谢您了
王狗狗 发表于 2018-11-13 16:09:57
本帖最后由 王狗狗 于 2018-11-13 16:12 编辑

楼主,您好,有个问题请教您一下。直接将DS18B20接到GPIO5?它可以直接替换DHT11么?还有里边的程序需要改动多少?这样就可以显示温度的数值了么?
王狗狗 发表于 2018-11-13 15:37:23
把Ds18B20直接接到GPIO5上就可以,直接用的DHT11的程序就能读出来数字?(暂时不考虑温度是否正确)
AK49 发表于 2018-11-12 09:52:08
做这个最缺是脚位接线图。
MrLeeDK 发表于 2018-9-5 17:17:23
66666666666
angre 发表于 2018-8-12 16:55:35
我想设置-55到70度。直接套用你的就行吗?谢谢
sucfox 发表于 2018-5-21 12:04:07
peter58 发表于 2017-4-27 17:28
你好,我和你的数据点一样,程序里的344行 temp=((temp*0.0625)+10)*10;这里需要怎么修改呢?我需要怎么修 ...

temp=(temp*0.0625) 就行了
冷眼看风云 发表于 2018-5-15 22:24:59
谢谢楼主的无私奉献
加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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