基于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: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-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:38 编辑
Mango! 发表于 2017-4-14 12:34
根据机智云的文档, 机智云存的是正整数。
所以 需要根据偏移 和 分辨率做转换。以兼容负数和小数。
我这 ...
你好,我和你的数据点一样,程序里的344行 temp=((temp*0.0625)+10)*10;这里需要怎么修改呢?我需要怎么修改才可以得到实际的温度呢?是修改偏移量还是修改哪里?谢谢
楼主没给硬件接线图;从“数据点”备注中可以看出来。
18B20接GPIO5;
LED接GPIO12;
Switch接GPIO14;
按键KEY接GPIO4; gpio接线图在哪 支持分享。 qqywl 发表于 2017-4-11 20:17
gpio接线图在哪
???
数据点的备注写了 谢谢楼主分享,继电器能添加定时程序吗?能给讲讲吗? 定时程序怎么实现(SOC方案) itt 发表于 2017-4-11 23:42
定时程序怎么实现(SOC方案)
谢谢,下来学习下,下载得好慢哦,能加定时就好了 本帖最后由 peter58 于 2017-4-12 22:31 编辑
谢谢,下来学习下,下载得好慢哦,能加定时就好了我的温度怎么显示是341呢?我这里实际温度只有20-22度
请问 一下 您是用有底板stm32的Gokit?我也是SOC方案,但是我不知道要怎么烧写到板子上,直接插下面的串口吗? itt 发表于 2017-4-11 23:42
定时程序怎么实现(SOC方案)
MCU方案您有定时案例吗?除了机智云上的,我重复不了机智云上的案例,折腾了好久实现不了控制,及定时控制。 正在做毕设我用一个烧了GAgent的ESP8266-12F连接一个DS18B20 把温度数据传给机智云,用soc方案,下载的代码包需要改什么呢 完全蒙逼了 :'( 远远看你 发表于 2017-4-14 09:50
正在做毕设我用一个烧了GAgent的ESP8266-12F连接一个DS18B20 把温度数据传给机智云,用soc方案,下载 ...
如果你保持楼主的接线不动的话,只要改一下gizwits_protocol.h中的PRODUCT_KEY和PRODUCT_SECRET就能用了 peter58 发表于 2017-4-12 19:56
谢谢,下来学习下,下载得好慢哦,能加定时就好了我的温度怎么显示是341呢?我这里实际温度只有20-22度
...
一样的问题,同问? 本帖最后由 Mango! 于 2017-4-14 12:42 编辑
本源码还一个 key按钮 接的是 GPIO4长按是切换airlink
感谢分享!。硬件接线图在哪? 转转,分享,大家一起学习 学习下....................... 学习下.............................