收藏官网首页
查看: 158767|回复: 58

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

 

1

主题

13

帖子

1018

积分

金牌会员

Rank: 6Rank: 6

积分
1018
跳转到指定楼层
#
发表于 2017-4-11 17:58:17 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
校园创客福利
本帖最后由 Genius 于 2017-4-20 12:35 编辑

GizAsst 基于机智云esp8266-12F SOC方案包含 1颗LED 1个继电器 1个 DS18B20温度传感器都是低电平触发。数据点定义 和 GPIO接线 请看图

  • 别忘了 gizwits_protocol.h 里面定义
  1. /**@name Product Key (产品标识码)
  2. * @{
  3. */
  4. #define PRODUCT_KEY "xxxxxxxxxxxxxxxxxxxxxxx"
  5. /**@} */
  6. /**@name Product Secret (产品密钥)
  7. * @{
  8. */
  9. #define PRODUCT_SECRET "xxxxxxxxxxxxxxxxxxxxxxx"
复制代码


  • releases提供已编译好的固件


源码 github:https://github.com/535/GizAsst

1

主题

13

帖子

1018

积分

金牌会员

Rank: 6Rank: 6

积分
1018
来自 54#
 楼主| 发表于 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

0

主题

35

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
推荐
发表于 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();

8

主题

144

帖子

3308

积分

论坛元老

Rank: 8Rank: 8

积分
3308
推荐
发表于 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

2

主题

13

帖子

173

积分

注册会员

Rank: 2

积分
173
推荐
发表于 2017-4-14 18:28:06 | 只看该作者
教您5分钟接入机智云,实现傻瓜式开发
楼主没给硬件接线图;从“数据点”备注中可以看出来。
18B20接GPIO5;
LED接GPIO12;
Switch接GPIO14;
按键KEY接GPIO4;

3

主题

13

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
推荐
发表于 2017-4-11 20:17:38 | 只看该作者
gpio接线图在哪
48#
发表于 2023-5-8 16:40:41 | 只看该作者
asydxl 发表于 2023-5-8 10:53
这个是用什么软件编写代码呀

只要你愿意,记事本也可以写
发烧友

0

主题

5

帖子

114

积分

注册会员

Rank: 2

积分
114
47#
发表于 2023-5-8 10:53:50 | 只看该作者
这个是用什么软件编写代码呀

点评

只要你愿意,记事本也可以写  详情 回复 发表于 2023-5-8 16:40

0

主题

4

帖子

59

积分

注册会员

Rank: 2

积分
59
46#
发表于 2020-11-23 23:47:12 | 只看该作者
正在下载,阅读学习

0

主题

6

帖子

77

积分

注册会员

Rank: 2

积分
77
44#
发表于 2020-3-2 11:44:33 | 只看该作者
收藏 正想试试

1

主题

5

帖子

68

积分

注册会员

Rank: 2

积分
68
43#
发表于 2019-6-14 12:10:11 | 只看该作者
请问下载下来的东西如何使用啊,比如下载方面,以及修改为自己的密钥,我修改后编译发现没有新的BIN文件生成是怎么回事啊,用的是安信可提供的那个eclipse开发环境,跪求啊:

3

主题

42

帖子

604

积分

高级会员

Rank: 4

积分
604
42#
发表于 2019-3-4 15:36:53 | 只看该作者
老师:  源码 github:https://github.com/535/GizAsst,网页无法访问,你是否可上传一个,QQ:2194498187  谢谢!

0

主题

17

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
41#
发表于 2019-1-7 17:23:18 | 只看该作者
不错,顶顶顶顶顶顶顶顶顶顶顶顶

5

主题

25

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
40#
发表于 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
... ...
需要心算才能知道零下的度数,呵呵!几次改动程序没有成功。
请高手指点,多谢!

5

主题

25

帖子

364

积分

中级会员

Rank: 3Rank: 3

积分
364
39#
发表于 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
... ...
需要心算才能知道零下的度数,呵呵!几次改动程序没有成功。

0

主题

5

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
38#
发表于 2018-12-15 15:26:34 | 只看该作者
添加设备时,一直在等待设备就绪是怎么回事呢?

4

主题

12

帖子

352

积分

中级会员

Rank: 3Rank: 3

积分
352
37#
发表于 2018-11-20 08:46:18 | 只看该作者
Mango! 发表于 2017-4-14 12:34
根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这 ...

兄弟,我这边用了楼主的驱动代码,但是数据总是会显示两个,来回发送,为啥啊

4

主题

12

帖子

352

积分

中级会员

Rank: 3Rank: 3

积分
352
36#
发表于 2018-11-13 16:13:44 | 只看该作者
楼主,您好。有个问题请教您一下、DS18B20直接接到GPIO5上么?它可以取代DHT11?还有里边的程序需要改动多少呢?谢谢您了

4

主题

12

帖子

352

积分

中级会员

Rank: 3Rank: 3

积分
352
35#
发表于 2018-11-13 16:09:57 | 只看该作者
汉枫LPB120模块
本帖最后由 王狗狗 于 2018-11-13 16:12 编辑

楼主,您好,有个问题请教您一下。直接将DS18B20接到GPIO5?它可以直接替换DHT11么?还有里边的程序需要改动多少?这样就可以显示温度的数值了么?

4

主题

12

帖子

352

积分

中级会员

Rank: 3Rank: 3

积分
352
34#
发表于 2018-11-13 15:37:23 | 只看该作者
把Ds18B20直接接到GPIO5上就可以,直接用的DHT11的程序就能读出来数字?(暂时不考虑温度是否正确)

1

主题

16

帖子

172

积分

注册会员

Rank: 2

积分
172
33#
发表于 2018-11-12 09:52:08 | 只看该作者
做这个最缺是脚位接线图。

0

主题

2

帖子

32

积分

新手上路

Rank: 1

积分
32
32#
发表于 2018-9-5 17:17:23 | 只看该作者
66666666666

0

主题

4

帖子

26

积分

新手上路

Rank: 1

积分
26
31#
发表于 2018-8-12 16:55:35 | 只看该作者
我想设置-55到70度。直接套用你的就行吗?谢谢

0

主题

2

帖子

128

积分

注册会员

Rank: 2

积分
128
30#
发表于 2018-5-21 12:04:07 | 只看该作者
peter58 发表于 2017-4-27 17:28
你好,我和你的数据点一样,程序里的344行 temp=((temp*0.0625)+10)*10;这里需要怎么修改呢?我需要怎么修 ...

temp=(temp*0.0625) 就行了

0

主题

35

帖子

350

积分

中级会员

Rank: 3Rank: 3

积分
350
29#
发表于 2018-5-15 22:24:59 | 只看该作者
谢谢楼主的无私奉献
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

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

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