程序很棒,上传成功,感谢支持!
erjiang 发表于 2012-11-21 10:48 static/image/common/back.gif
哥们,W5100的使用,远远比enc的那个简单多啦!
主家真别笑话,菜手和麻瓜多得是,不一定都是合格水准。硬件既然能搭积木,软件为什么不可以呢,其实发布几个不同硬件配置的软件例程,对于上手很有意义。
zcbzjx 发表于 2012-11-21 10:27 static/image/common/back.gif
老师,程序装在成功,已经运行中。
我先装在2560,不知道为什么会报错,但是运行正常。而放入UNO就一切正常,没有报错,不知道什么原因?
zcbzjx 发表于 2012-11-21 10:27 static/image/common/back.gif
老师,是不是可以重新发布一个“基于18B20+w5100+arduino+yeelink的远程温度监控”的参考例程给大家呢?
能不能把问题补充完整啊。大哥。。。
我错了,没问题了,换个USB口,就好了,谢谢老师。
不过,原来的错误信息如下图
zcbzjx 发表于 2012-11-21 10:27 static/image/common/back.gif
张老师,我在参考COSM例程,想使用更方便的DallasTemperature.h库,但是转换时候遇到一些问题。
void get_Send_String(){
sensors.requestTemperatures(); // 发送命令获取温度
char SensorReadOut = sensors.getTempCByIndex(0);
Serial.println(SensorReadingOut );
dataLength = sprintf(sensorData,"{\"value\":%d}",SensorReadOut);
}
用%d能得到结果,但是只有整数,失去了精度,能保留小数点以后两位小数就满足啦。现在的问题是,是不是一定要用sprintf函数,如何驾驭呢?
我的进一步想法,读取多个18B20,并且上传yeelink。Pachube/COSM有一个PachubeClientString,不是道在yeelink上面可否实现。
这是一个测试数据点,但是只有整数,应该是转换问题。
http://www.yeelink.net/devices/1255
muggle 发表于 2012-11-27 00:15 static/image/common/back.gif
张老师,我在参考COSM例程,想使用更方便的DallasTemperature.h库,但是转换时候遇到一些问题。
void...
可以实现,只要演示发送就行了,在主程序中,设置一个timer,然后根据timer让传感器标志位自增,发送函数根据当前需要发送的传感器值,读取传感器数据并完成发送即可。
这个是客户端程序逻辑的设计问题,Yeelink本身功能是支持的。
如果你有时间看看张老师的传感器,在一个device下面,都会有数个sensor同时上传的,逻辑类似
张老师帮助下,终于通过了,虽然还不是很明白转换的过程。
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读取上传中
想请教下楼主,上传数据中有一段代码:
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的区别是什么?
谢谢了
xiake 发表于 2012-11-21 21:23 static/image/common/back.gif
老师,是不是可以重新发布一个“基于18B20+w5100+arduino+yeelink的远程温度监控”的参考例程给大家呢?
建议你有空发一个哈
mazzond 发表于 2013-2-12 22:53 static/image/common/back.gif
想请教下楼主,上传数据中有一段代码:
Stash::prepare(PSTR("POST /v1.0/device/$F/sensor/$F/datapoints ...
是的,分别代表了按顺序排列的变量,建议以后对变量吃不准的时候,用printf打印一下,或者打印到串口去,就一目了然拉,调试必备技巧
muggle 发表于 2012-11-27 21:49 static/image/common/back.gif
张老师帮助下,终于通过了,虽然还不是很明白转换的过程。
uint16_t Tc_100 = sensors.getTempCByIn ...
这个不难,主要是C语言一些技巧,其中的函数功能可以参考C手册
$F 替代char APIKey[] PROGMEM 定义的字符串变量,加了 PROGMEM关键字,该字符串是存储于flash中不能用$S要用¥F;
$D 替代uint8_t dataLength 定义的整数变量;
$S 替代char sensorData定义的字符串变量;
具体可以查看下库文件。