简单的试贴,12864+18B20温度显示,并上传Yeelink
本帖最后由 shiow1984 于 2013-5-9 22:12 编辑简单的试贴,在极客工坊上一点点地学习到现在算是交一个作业吧。
接线
请参考本论坛中的18B20及LCD12864与Arduino接线
代码:
/*LCD12864+18B20+YEELINK
PIN1 = GND
PIN2 = 5V
RS(CS) = 8;
RW(SID)= 9;
EN(CLK) = 3;
PIN15 PSB = GND;
ONE_WIRE_BUS 7//18B20 数据端接ARDUINO 数据7口
*/
#include<OneWire.h>
#include<DallasTemperature.h>
#include "LCD12864RSPI.h"
#define AR_SIZE( a ) sizeof( a ) / sizeof( a )
unsigned char show0[]={0xCF, 0xD6,0xD4, 0xDA,0xB5, 0xC4,0xCE, 0xC2,0xB6, 0xC8,0xCA, 0xC7,0xA3, 0xBA};//现在的温度是:
unsigned char du[]={0xA1, 0xE6,0xA1, 0xEE,
0xA1, 0xFA,
0x20, 0x00};//℃ +五角星箭头
//#include<LiquidCrystal.h> //调用arduino自带的LiquidCrystal库
#define ONE_WIRE_BUS 7// 18B20 数据端接ARDUINO 数据7口
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);// DallasTemperature 库解析温度数据
char str; //定义温度值存储数组,4位,其中3位为数字,1位为小数点
double val =0; //定义中间变量,用于将获取的float型温度值转变为unsigned char数组
void setup()
{
Serial.begin(9600);//串口初始化
LCDA.Initialise(); // 屏幕初始化
delay(100);
sensors.begin();
}
void loop ()
{
sensors.requestTemperatures();
val=sensors.getTempCByIndex(0);//将得到的温度数据赋值给val
dtostrf(val,4,2,str);//将获取的数值转换为字符型数组
LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//第一行第一格开始,显示文字 现在的温度是:
delay(100);
LCDA.DisplayString(2,0,(unsigned char *)str,AR_SIZE(str));//第三行第一格开始,显示温度数值
delay(100);
LCDA.DisplayString(2,3,du,AR_SIZE(du)); //显示摄氏度℃符号
delay(100); //延时,这里也就是刷新速度。
Serial.print("yeelink:"); //连接yeelink 串口代码
Serial.println(str); // 串口发送温度值,按照官方教程 “传感器数据作为字符串发送”所以是发送str,而不是val,
//没试过val是否成功
} 编辑时间太长了 ,差点被删,还是贴图吧
yeelink 连接参考官方教程:
http://blog.yeelink.net/?p=53
通过了没?我还没看明白,怎么连接到yeeLink上的?
Serial.print("yeelink:"); //连接yeelink 串口代码
Serial.println(str); // 串口发送温度值,按照官方教程 “传感器数据作为字符串发送”所以是发送str,而不是val,
这2句不是串口输出么?怎么就上yeelink上去了呢? 我明白了。你还要下一个串口监视软件。 你这个没用到网络模块,是一个模拟的 您好这个程序我编译通不过,提示DallasTemperature does not name atype.能帮我一下吗 mjt_1130141801 发表于 2013-9-15 14:40 static/image/common/back.gif
您好这个程序我编译通不过,提示DallasTemperature does not name atype.能帮我一下吗
你需要下载一个db18B20 的库文件 包含 <DallasTemperature.h> 请在极客工坊的arduino精华帖里先学习一下 是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。 http://www.geek-workshop.com/thread-8752-1-1.html
http://www.geek-workshop.com/thread-9655-1-1.html newphj 发表于 2014-5-19 15:04 static/image/common/back.gif
是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。
是的通过电脑串口走的 模仿成功,赞!另外发送的数据是有格式要求的,大概是“yeelink:"+温度的字符串,最好不要有其他输出,不然可能这个软件串口获取不到数据! yeelink串口助手xp 32位 为什么打开 初始化失败? 在我同学win7 就可以运行
求解 #include<wiring.h> fatal error: wiring.h: No such file or directory 编译提示错误是怎么回事啊
大神,能否发一下ds18b20所需要的库文件,谢谢大神了
页:
[1]