shiow1984 发表于 2013-5-7 22:09:44

简单的试贴,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

zyzsorry 发表于 2013-5-9 09:35:02

通过了没?我还没看明白,怎么连接到yeeLink上的?
Serial.print("yeelink:");   //连接yeelink 串口代码

Serial.println(str);         //   串口发送温度值,按照官方教程 “传感器数据作为字符串发送”所以是发送str,而不是val,

这2句不是串口输出么?怎么就上yeelink上去了呢?

zyzsorry 发表于 2013-5-9 11:00:55

我明白了。你还要下一个串口监视软件。

从开始到现在 发表于 2013-5-13 14:16:31

你这个没用到网络模块,是一个模拟的

mjt_1130141801 发表于 2013-9-15 14:40:16

您好这个程序我编译通不过,提示DallasTemperature does not name atype.能帮我一下吗

shiow1984 发表于 2013-10-20 20:25:23

mjt_1130141801 发表于 2013-9-15 14:40 static/image/common/back.gif
您好这个程序我编译通不过,提示DallasTemperature does not name atype.能帮我一下吗

你需要下载一个db18B20 的库文件   包含 <DallasTemperature.h>   请在极客工坊的arduino精华帖里先学习一下

newphj 发表于 2014-5-19 15:04:26

是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。

savagego 发表于 2014-5-19 17:28:22

http://www.geek-workshop.com/thread-8752-1-1.html
http://www.geek-workshop.com/thread-9655-1-1.html

shiow1984 发表于 2014-5-28 10:25:17

newphj 发表于 2014-5-19 15:04 static/image/common/back.gif
是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。

是的通过电脑串口走的   

haichaofine 发表于 2014-12-3 22:38:38

模仿成功,赞!另外发送的数据是有格式要求的,大概是“yeelink:"+温度的字符串,最好不要有其他输出,不然可能这个软件串口获取不到数据!

我歌月徘徊666 发表于 2015-11-28 19:24:51

yeelink串口助手xp 32位 为什么打开 初始化失败? 在我同学win7 就可以运行   
求解

滑板鞋 发表于 2015-12-16 14:15:25

#include<wiring.h>    fatal error: wiring.h: No such file or directory    编译提示错误是怎么回事啊

焦儿 发表于 2018-3-24 16:40:02

大神,能否发一下ds18b20所需要的库文件,谢谢大神了
页: [1]
查看完整版本: 简单的试贴,12864+18B20温度显示,并上传Yeelink