极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: zcbzjx

基于18B20+enc28j60+arduino+yeelink的远程温度监控

[复制链接]
发表于 2012-11-27 21:49:29 | 显示全部楼层
张老师帮助下,终于通过了,虽然还不是很明白转换的过程。

    uint16_t Tc_100 = sensors.getTempCByIndex(0)*100;
    uint8_t i,whole, fract;
    whole = Tc_100/100 ;  // separate off the whole and fractional portions
    fract = Tc_100 % 100;
    dataLength = sprintf(sensorData,"{\"value\":%d.%d}",whole,fract);

得到如下输出:
{"value":21.25}

继续努力,多个18B20读取上传中
回复 支持 反对

使用道具 举报

发表于 2013-2-12 22:53:26 | 显示全部楼层
想请教下楼主,上传数据中有一段代码:
Stash::prepare(PSTR("POST /v1.0/device/$F/sensor/$F/datapoints HTTP/1.1" "\r\n"
    "Host: api.yeelink.net" "\r\n"
    "U-ApiKey: $F" "\r\n"
    "Content-Length: $D" "\r\n"
    "Content-Type: application/x-www-form-urlencoded" "\r\n" "\r\n"                       
    "$S"),
  DeviceID,SensorID,APIKey,dataLength,sensorData);
其中,$F $D 和 $S是不是分别指代下面的DeviceID、SensorID、APIKey、dataLength以及sensorData,那么,F D S的区别是什么?
谢谢了
回复 支持 反对

使用道具 举报

发表于 2013-2-13 22:06:16 | 显示全部楼层
xiake 发表于 2012-11-21 21:23
老师,是不是可以重新发布一个“基于18B20+w5100+arduino+yeelink的远程温度监控”的参考例程给大家呢?

建议你有空发一个哈
回复 支持 反对

使用道具 举报

发表于 2013-2-13 22:07:21 | 显示全部楼层
mazzond 发表于 2013-2-12 22:53
想请教下楼主,上传数据中有一段代码:
Stash::prepare(PSTR("POST /v1.0/device/$F/sensor/$F/datapoints ...

是的,分别代表了按顺序排列的变量,建议以后对变量吃不准的时候,用printf打印一下,或者打印到串口去,就一目了然拉,调试必备技巧
回复 支持 反对

使用道具 举报

发表于 2013-2-13 22:09:50 | 显示全部楼层
muggle 发表于 2012-11-27 21:49
张老师帮助下,终于通过了,虽然还不是很明白转换的过程。

    uint16_t Tc_100 = sensors.getTempCByIn ...

这个不难,主要是C语言一些技巧,其中的函数功能可以参考C手册
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-15 00:10:07 | 显示全部楼层
$F 替代char APIKey[] PROGMEM 定义的字符串变量,加了 PROGMEM关键字,该字符串是存储于flash中不能用$S要用¥F;
$D 替代uint8_t dataLength 定义的整数变量;
$S 替代char sensorData[20]定义的字符串变量;
具体可以查看下库文件。
回复 支持 反对

使用道具 举报

发表于 2013-3-19 17:43:35 | 显示全部楼层
那个stash实在搞不懂,什么$F、$H、$S的,谁来解释个通透?
回复 支持 反对

使用道具 举报

发表于 2013-3-19 18:11:47 | 显示全部楼层
本帖最后由 raiseyu 于 2013-3-19 18:13 编辑
zcbzjx 发表于 2013-2-15 00:10
$F 替代char APIKey[] PROGMEM 定义的字符串变量,加了 PROGMEM关键字,该字符串是存储于flash中不能用$S要 ...


为啥要存储到flash中?还有这个PROGMEM关键字怎么没看到过啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-23 09:47:51 | 显示全部楼层
raiseyu 发表于 2013-3-19 18:11
为啥要存储到flash中?还有这个PROGMEM关键字怎么没看到过啊?

主要是为了节省ram空间,如果不存储在flash,就会占用ram,相对于flash来说,ram比较金贵
回复 支持 反对

使用道具 举报

发表于 2013-5-8 13:38:51 | 显示全部楼层
has no member named 'dhcpValid'
回复 支持 反对

使用道具 举报

发表于 2013-5-13 15:12:51 | 显示全部楼层
‘class EtherCard' has no member named 'dhcpVaild'
这个问题怎么解决?小白求助
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-13 18:16:54 | 显示全部楼层
从开始到现在 发表于 2013-5-13 15:12
‘class EtherCard' has no member named 'dhcpVaild'
这个问题怎么解决?小白求助

这个代码是以前写的,库不同,最新的库貌似已经没有dhcpVaild方法了,你看看这个库本身带的例程,如何解决的
回复 支持 反对

使用道具 举报

发表于 2013-5-13 21:09:15 | 显示全部楼层
zcbzjx 发表于 2013-5-13 18:16
这个代码是以前写的,库不同,最新的库貌似已经没有dhcpVaild方法了,你看看这个库本身带的例程,如何解决 ...

哦,我现在直接把这句话去掉了,但还是不能成功,还有,那个只需要替换代码中XXXXXX处的设备ID,传感器ID,API KEY就OK么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-13 21:23:30 | 显示全部楼层
从开始到现在 发表于 2013-5-13 21:09
哦,我现在直接把这句话去掉了,但还是不能成功,还有,那个只需要替换代码中XXXXXX处的设备ID,传感器ID ...

应该是。。。改天我验证下。。。
回复 支持 反对

使用道具 举报

发表于 2016-6-20 01:33:50 | 显示全部楼层
老师你好,我最近也在尝试使用ENC上传数据给yeelink,因为网上下载的库文件出行错误不知道如何解决,老师可否将库文件一并发出来Orz
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-14 07:28 , Processed in 0.040903 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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