Mango! 发表于 2017-4-11 17:58:17

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

本帖最后由 Genius 于 2017-4-20 12:35 编辑

GizAsst 基于机智云的ESP8266-12F SOC方案包含 1颗LED 1个继电器 1个 DS18B20温度传感器都是低电平触发。数据点定义 和 GPIO接线 请看图
[*]别忘了 gizwits_protocol.h 里面定义
/**@name Product Key (产品标识码)
* @{
*/
#define PRODUCT_KEY "xxxxxxxxxxxxxxxxxxxxxxx"
/**@} */
/**@name Product Secret (产品密钥)
* @{
*/
#define PRODUCT_SECRET "xxxxxxxxxxxxxxxxxxxxxxx"


[*]releases提供已编译好的固件


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

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

冷眼看风云 发表于 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;这里需要怎么修改呢?我需要怎么修改才可以得到实际的温度呢?是修改偏移量还是修改哪里?谢谢

老谢 发表于 2017-4-14 18:28:06

楼主没给硬件接线图;从“数据点”备注中可以看出来。
18B20接GPIO5;
LED接GPIO12;
Switch接GPIO14;
按键KEY接GPIO4;

qqywl 发表于 2017-4-11 20:17:38

gpio接线图在哪

clide2000 发表于 2017-4-11 22:14:28

支持分享。

Mango! 发表于 2017-4-11 22:56:47

qqywl 发表于 2017-4-11 20:17
gpio接线图在哪

???
数据点的备注写了

maomaodemao 发表于 2017-4-11 23:21:24

谢谢楼主分享,继电器能添加定时程序吗?能给讲讲吗?

itt 发表于 2017-4-11 23:42:16

定时程序怎么实现(SOC方案)

peter58 发表于 2017-4-12 19:56:05

itt 发表于 2017-4-11 23:42
定时程序怎么实现(SOC方案)

谢谢,下来学习下,下载得好慢哦,能加定时就好了

peter58 发表于 2017-4-12 19:56:45

本帖最后由 peter58 于 2017-4-12 22:31 编辑

谢谢,下来学习下,下载得好慢哦,能加定时就好了我的温度怎么显示是341呢?我这里实际温度只有20-22度

尼古拉斯 发表于 2017-4-13 00:03:42

请问 一下 您是用有底板stm32的Gokit?我也是SOC方案,但是我不知道要怎么烧写到板子上,直接插下面的串口吗?

maomaodemao 发表于 2017-4-14 08:32:35

itt 发表于 2017-4-11 23:42
定时程序怎么实现(SOC方案)

MCU方案您有定时案例吗?除了机智云上的,我重复不了机智云上的案例,折腾了好久实现不了控制,及定时控制。

远远看你 发表于 2017-4-14 09:50:25

正在做毕设我用一个烧了GAgent的ESP8266-12F连接一个DS18B20   把温度数据传给机智云,用soc方案,下载的代码包需要改什么呢   完全蒙逼了    :'(

老谢 发表于 2017-4-14 11:30:50

远远看你 发表于 2017-4-14 09:50
正在做毕设我用一个烧了GAgent的ESP8266-12F连接一个DS18B20   把温度数据传给机智云,用soc方案,下载 ...

如果你保持楼主的接线不动的话,只要改一下gizwits_protocol.h中的PRODUCT_KEY和PRODUCT_SECRET就能用了

老谢 发表于 2017-4-14 11:31:40

peter58 发表于 2017-4-12 19:56
谢谢,下来学习下,下载得好慢哦,能加定时就好了我的温度怎么显示是341呢?我这里实际温度只有20-22度
...

一样的问题,同问?

Mango! 发表于 2017-4-14 12:34:53

本帖最后由 Mango! 于 2017-4-14 12:42 编辑

本源码还一个 key按钮 接的是 GPIO4长按是切换airlink

clide2000 发表于 2017-4-14 15:43:01

感谢分享!。硬件接线图在哪?

Signal 发表于 2017-4-14 23:28:34

转转,分享,大家一起学习

相识机智云 发表于 2017-4-15 17:59:04

学习下.......................

相识机智云 发表于 2017-4-15 17:59:48

学习下.............................
页: [1] 2 3
查看完整版本: 基于ESP8266 SOC方案,继电器开关,DS18B20温度【开源】