极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 33240|回复: 12

简单的试贴,12864+18B20温度显示,并上传Yeelink

[复制链接]
发表于 2013-5-7 22:09:44 | 显示全部楼层 |阅读模式
本帖最后由 shiow1984 于 2013-5-9 22:12 编辑

简单的试贴,在极客工坊上一点点地学习到现在算是交一个作业吧。

接线
请参考本论坛中的18B20及LCD12864与Arduino接线


代码:

  1. /*LCD  12864+18B20+YEELINK
  2. PIN1 = GND
  3. PIN2 = 5V
  4. RS(CS) = 8;
  5. RW(SID)= 9;
  6. EN(CLK) = 3;
  7. PIN15 PSB = GND;

  8. ONE_WIRE_BUS 7  //18B20 数据端接ARDUINO 数据7口
  9. */


  10. #include<OneWire.h>
  11. #include<DallasTemperature.h>
  12. #include "LCD12864RSPI.h"
  13. #define AR_SIZE( a ) sizeof( a ) / sizeof( a[0] )
  14. unsigned char show0[]={0xCF, 0xD6,0xD4, 0xDA,0xB5, 0xC4,0xCE, 0xC2,0xB6, 0xC8,0xCA, 0xC7,0xA3, 0xBA};//现在的温度是:
  15. unsigned char du[]={0xA1, 0xE6,  0xA1, 0xEE,
  16.   0xA1, 0xFA,
  17.   0x20, 0x00};  //℃ +五角星箭头

  18. //#include<LiquidCrystal.h>    //调用arduino自带的LiquidCrystal库
  19. #define ONE_WIRE_BUS 7  // 18B20 数据端接ARDUINO 数据7口
  20. OneWire oneWire(ONE_WIRE_BUS);
  21. DallasTemperature sensors(&oneWire);// DallasTemperature 库解析温度数据

  22. char str[5]; //定义温度值存储数组,4位,其中3位为数字,1位为小数点
  23. double val =0; //定义中间变量,用于将获取的float型温度值转变为unsigned char数组

  24. void setup()
  25. {
  26. Serial.begin(9600);//串口初始化
  27. LCDA.Initialise(); // 屏幕初始化
  28. delay(100);
  29. sensors.begin();
  30. }

  31. void loop ()                     
  32. {
  33.   
  34. sensors.requestTemperatures();
  35. val=sensors.getTempCByIndex(0);  //将得到的温度数据赋值给val
  36. dtostrf(val,4,2,str);  //将获取的数值转换为字符型数组

  37. LCDA.DisplayString(0,0,show0,AR_SIZE(show0));//第一行第一格开始,显示文字 现在的温度是:
  38. delay(100);
  39. LCDA.DisplayString(2,0,(unsigned char *)str,AR_SIZE(str));//第三行第一格开始,显示温度数值
  40. delay(100);
  41. LCDA.DisplayString(2,3,du,AR_SIZE(du)); //显示摄氏度℃符号
  42. delay(100);                     //延时,这里也就是刷新速度。
  43. Serial.print("yeelink:");   //  连接yeelink 串口代码
  44. Serial.println(str);           //   串口发送温度值,按照官方教程 “传感器数据作为字符串发送”所以是发送str,而不是val,
  45.                      //没试过val是否成功
  46. }
复制代码
编辑时间太长了 ,差点被删,还是贴图吧
yeelink 连接参考官方教程:
http://blog.yeelink.net/?p=53

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-5-9 09:35:02 | 显示全部楼层
通过了没?我还没看明白,怎么连接到yeeLink上的?
Serial.print("yeelink:");   //  连接yeelink 串口代码

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

这2句不是串口输出么?怎么就上yeelink上去了呢?
回复 支持 反对

使用道具 举报

发表于 2013-5-9 11:00:55 | 显示全部楼层
我明白了。你还要下一个串口监视软件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-5-13 14:16:31 | 显示全部楼层
你这个没用到网络模块,是一个模拟的
回复 支持 反对

使用道具 举报

发表于 2013-9-15 14:40:16 | 显示全部楼层
您好这个程序我编译通不过,提示DallasTemperature does not name a  type.  能帮我一下吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-10-20 20:25:23 | 显示全部楼层
mjt_1130141801 发表于 2013-9-15 14:40
您好这个程序我编译通不过,提示DallasTemperature does not name a  type.  能帮我一下吗

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

使用道具 举报

发表于 2014-5-19 15:04:26 | 显示全部楼层
是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-19 17:28:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 10:25:17 | 显示全部楼层
newphj 发表于 2014-5-19 15:04
是不是不用买网络模块了,串口传输给电脑然后电脑上传yeelink。。。

是的  通过电脑串口走的   
回复 支持 反对

使用道具 举报

发表于 2014-12-3 22:38:38 | 显示全部楼层
模仿成功,赞!另外发送的数据是有格式要求的,大概是“yeelink:"+温度的字符串,最好不要有其他输出,不然可能这个软件串口获取不到数据!
回复 支持 反对

使用道具 举报

发表于 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所需要的库文件,谢谢大神了
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 16:42 , Processed in 0.043579 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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