Arduino:float转换为string

作者: 分类: 技术文章 时间: 2013-04-21

如果尝试使用sprintf()函数在arduino上进行对float指转换为一个字符串的话,你会发现,it doesn't work。弄了很久,还以为是没学c++的原因。其实在arduino上,这个函数就是不对float起作用。

替代的方法是使用dtostrf()函数。

char* dtostrf(double _val,signed char _width, unsigned char prec, char* _s)

_val:要转换的float或者double值。

_width:转换后整数部分长度。

_prec:转换后小数部分长度。

_s:保存到该char数组中。

 

无需花生壳,dnspod实现ddns

作者: 分类: 技术文章 时间: 2013-04-19

众所周知,使用ADSL上网,ip是不固定的,在外面要访问家里的树莓派,就要使用动态域名服务(Dynamic Domain Name Server),首先想到的是国内著名的花生壳,而且路由器也支持花生壳ddns,通过在路由器上设置花生壳,我使用的TP-link WR841n v9体验非常差,时不时就无法获取dhcp,也时不时就与花生壳失去联系。结果是三天两头就无法解析到正确地址。

注册花生壳后,会得到一个2级域名,我猜测在客户端需要定时的和服务器通讯以维持正确的ip地址,一旦超时不与服务器联系,该域名的ip就会被重置为其他,而不会保持最后的结果。这个推论来自在路由器ddns功能挂了之后,使用域名已经无法连接回家里,而登陆花生壳后台查看最后成功通讯的ip,使用该ip却可以连回去。

域名解析使用的是dnspod,它开放了api,官方提供了多种语言来实现ddns的功能,其中适合树莓派(Raspberry pi)的“动态解析脚本 for linux" . 下载该脚本,正确填写上用户名、密码、域名id、记录id。保存到目录,例如”/home/pi/ddns.py“,然后编辑 /etc/rc.local 文件,在文件中加入一行

python /home/pi/ddns.py

保存关闭。这样Raspberry pi每次启动都会自动运行ddns.py脚本,并每隔一段时间检查ip是否发生变化,如果是则自动更改域名对应的ip地址。

====华丽分割线=======

由于这个脚本用起来不太方便,所以自己写了一个,相对好一点,请参考这里

====2013年5月14日====