“嘘寒问暖”的版本间的差异

来自Labplus盛思维基百科
跳转至: 导航搜索
(创建页面,内容为“{|style="background-color:#FCF8E3;color:#8A6D3B;" |style="padding: 2px;"| '''注意:'''在命名产品wiki标题时,要保证唯一性,因为标题和网页…”)
 
 
(未显示同一用户的10个中间版本)
第1行: 第1行:
{|style="background-color:#FCF8E3;color:#8A6D3B;"
+
[[文件:嘘寒问暖.png|300px|缩略图|右 ]]<br />
|style="padding: 2px;"|
 
'''注意:'''在命名产品wiki标题时,要保证唯一性,因为标题和网页链接是关联的!
 
|}
 
[[文件:产品彩页.png|400px|缩略图|右 |图片格式统一"png"格式]]<br />
 
  
 
== 概述 ==
 
== 概述 ==
备注:产品简要描述和关键功能点!
+
本作品可实现自动检测水杯温度,并通过RGB灯的颜色直观反映水杯温度的高低。使用时先根据制作说明
 +
将作品组装完整,然后接上电源(9V电池或USB供电),打开主控板开关,将水杯放置在作品中间的温度传
 +
感器探头上方即可。当温度高时,RGB灯亮红色;温度低时,亮蓝色;温度适中时,亮绿色。DIY动手组
 +
装,锻炼动手能力,了解智能创意电子套件的使用,激发创新思维,增加学习乐趣。
  
== 技术参数 ==
+
== 使用教程 ==
* 通用类参数:工作电压、工作电流、工作温度、产品尺寸、重量
+
当水杯放置在色温杯垫上,温度感应探头测量水杯温度,并通过灯颜色反应水杯温度。当水温43℃以上,全红;当水温在43~33℃之间,红绿渐变色;当水温33~18℃之间,绿蓝渐变色;当水温18℃以下,全蓝;
* 传感器参数:检测范围、精度、输出信号、接口类型
+
<br/>
* 主板类参数:输入电压、输出电压、处理器参数、I/O参数(电压、电流、数量)
+
=== <font size=3px>组装说明</font> ===
* 通信类参数:功耗、通信距离、频段等个类方式的常规参数
+
{|style="background-color:#FCF8E3;color:#8A6D3B;"
* 其他:屏幕尺寸、分辨率、电机力矩、减速比、支持类型等等
+
|-style="vertical-align:center;"
 +
|[[File:点击下载.png|30px|center]]
 +
|[[file:嘘寒问暖装配.pdf ]]
 +
|}
  
 +
[[File:嘘寒问暖 装配说明.png]]
 +
<br/>
 +
<br/>
  
 
+
=== <font size=3px>电子模块清单</font>  ===
== 引脚定义 ==
+
{| class="wikitable"  border="0" cellpadding="2" width="20%"
{| class="wikitable"
+
!模块名称||数量
|-
 
!  名称 !!引脚 !! 说明
 
 
|-
 
|-
| || ||
+
|w1主控板||x1
 
|-
 
|-
| || ||
+
|温度传感器||x1
 
|-
 
|-
| || ||
+
|RGB-LED灯|| x4
 
|}
 
|}
 +
=== <font size=3px>电子模块连接说明</font>  ===
  
== 使用教程/使用说明 ==
 
教程的意义是对产品的核心内容作解释与说明,请确立核心卖点后,再建立使用教程。维库的教程以<font color=red>'''简单,快速,单一功能'''</font>为核心,请勿追求复杂的功能,炫酷的外形,要求读者在'''5分钟'''内对教程内容有个初步印象,明白这个教程到底做了些什么! 除了Arduino 主板外,尽可能不要增加教程的其他使用成本!比如,使用MP3的时候非要加一个按键去控制MP3,而不是直接调用代码去实现,这就是增加了使用和修改代码的成本。<br>
 
  
[[File:宣传视频.mp4|600px|thumb|center|<center>宣传视频</center>]]
+
{| class="wikitable"
:{|style="background-color:#FCF8E3;color:#8A6D3B;"
+
|-
 +
!  模块 !!引脚 !! 说明
 +
|-
 +
| 温度传感器模块 || W1-I2C接口||
 +
|-
 +
| RGB—LED模块x4 ||W1-3/11接口 ||4个模块串联,注意信号方向,输出接口连接至下模块输入接口
 
|-
 
|-
|style="padding: 2px;"| [[File:warning_yellow.png|25px|center]] ||'''注意'''
 
|
 
# 事项1
 
# 事项2
 
 
|}
 
|}
 
+
=== <font size=3px>Arduino程序</font> ===
:{|style="background-color:#F2DEDE; color:#B84442; padding:5px;"
+
{|style="background-color:#FCF8E3;color:#8A6D3B;"
 
|-style="vertical-align:center;"
 
|-style="vertical-align:center;"
|[[File:warning_yellow.png|center]]
+
|[[File:点击下载.png|30px|center]]
|警告事项!
+
|[[:File:M0002_Tcup_SW_V1_4_Release.rar|嘘寒问暖Arduino程序包下载]]
 
|}
 
|}
=== <font size=3px>组装说明</font> ===
 
如产品有需要客户自行组装的,需要提供组装说明!
 
 
<br/>
 
<br/>
<br/>
 
=== <font size=3px>连接示意图</font>  ===
 
=== <font size=3px>代码/图形化示例</font> ===
 
备注:根据产品的使用应提供代码或图形化示例 <br/>
 
 
<pre style="color:blue">
 
<pre style="color:blue">
代码示例
+
/**************************************************************************
 +
Copyright (C), 2017- ,
 +
File name:  色温杯垫
 +
Author: Tangliufeng    Version: v1.4      Date:
 +
Description:
 +
Others:
 +
Function List:
 +
1.
 +
2.
 +
History:
 +
 
 +
1. Date:  2017/10/10      Author:  tangliufeng
 +
Modification: 更换新RGB模块
 +
2. ...
 +
****************************************************************************/
 +
 
 +
#include <Wire.h>
 +
#include <avr/wdt.h>
 +
#include "TemperatureNTC.h"
 +
#include "Adafruit_NeoPixel.h"
 +
 
 +
 
 +
#define PIXEL_PIN    3 
 +
#define PIXEL_COUNT  4
 +
 
 +
 
 +
int Temperature;
 +
uint8_t _R, _G, _B;
 +
int i = 1;
 +
 
 +
uint8_t TEMP;
 +
uint8_t humidity;
 +
uint8_t SW;
 +
 
 +
long time_out;
 +
long time_out1;
 +
long time_out2;
 +
 
 +
uint16_t h, color1;
 +
float s, v;
 +
 
 +
Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);
 +
 
 +
void setup()
 +
{
 +
s = 1.0;
 +
v = 0.5;
 +
h = 0;
 +
 
 +
Serial.begin(9600);
 +
strip.setBrightness(50);
 +
strip.begin();
 +
start();
 +
strip.clear();
 +
strip.show();
 +
 +
}
 +
 
 +
void loop()
 +
{
 +
Temperature = readTemperatureNTC(A2);
 +
Serial.print("Temper:");
 +
Serial.println(Temperature);
 +
if (Temperature >= 44)            //大于44度变红色
 +
{
 +
color1 = 0;
 +
}
 +
else if (Temperature <= 33)
 +
{
 +
color1 = map(Temperature, 18, 33, 240, 200);;  //18~33度 变蓝色
 +
}
 +
else
 +
{
 +
color1 = map(Temperature, 35, 43, 120, 0);    //35~43度 变红色
 +
}
 +
 
 +
HSV2RGB(color1, s, v, _R, _G, _B);
 +
 
 +
for (uint8_t i = 0; i < PIXEL_COUNT; i++)
 +
{
 +
strip.setPixelColor(i, _R, _G, _B);
 +
}
 +
strip.show();
 +
 
 +
 
 +
}
 +
 
 +
void start()
 +
{
 +
char x = 3;
 +
while (x--)
 +
{
 +
for (uint8_t i = 0; i < PIXEL_COUNT; i++)
 +
{
 +
strip.setPixelColor(i, 16, 0, 0);
 +
}
 +
strip.show();
 +
delay(300);
 +
for (uint8_t i = 0; i < PIXEL_COUNT; i++)
 +
{
 +
strip.setPixelColor(i, 0, 16, 0);
 +
}
 +
strip.show();
 +
delay(300);
 +
for (uint8_t i = 0; i < PIXEL_COUNT; i++)
 +
{
 +
strip.setPixelColor(i, 0, 0, 16);
 +
}
 +
strip.show();
 +
delay(300);
 +
}
 +
}
 +
 
 +
void HSV2RGB(uint16_t H, float S, float V, uint8_t  &R, uint8_t &G, uint8_t &B)
 +
{
 +
uint8_t hi;
 +
float f, p, q, t;
 +
hi = (uint8_t)(H / 60);
 +
f = (float)H / 60 - hi;
 +
p = V * (1 - S);
 +
q = V * (1 - f * S);
 +
t = V * (1 - (1 - f) * S);
 +
switch (hi)
 +
{
 +
//0: {r,g,b} = {v,t,p}
 +
case 0:
 +
R = V * 255;
 +
G = t * 255;
 +
B = p * 255;
 +
break;
 +
//1: {r,g,b} = {q,v,p}
 +
case 1:
 +
R = q * 255;
 +
G = V * 255;
 +
B = p * 255;
 +
break;
 +
//2: {r,g,b} = {p,v,t}
 +
case 2:
 +
R = p * 255;
 +
G = V * 255;
 +
B = t * 255;
 +
break;
 +
//3: {r,g,b} = {p,q,v}
 +
case 3:
 +
R = p * 255;
 +
G = q * 255;
 +
B = V * 255;
 +
break;
 +
//4: {r,g,b} = {t,p,v}
 +
case 4:
 +
R = t * 255;
 +
G = p * 255;
 +
B = V * 255;
 +
break;
 +
//5: {r,g,b} = {v,p,q}
 +
case 5:
 +
R = V * 255;
 +
G = p * 255;
 +
B = q * 255;
 +
break;
 +
default:
 +
break;
 +
}
 +
}
 +
 
 +
 
 
</pre>
 
</pre>
 
== 应用案例 ==
 
备注:案例做好做成单个页面链接,方便维护和修改!可以使用wiki模板!
 
  
 
== FAQ ==
 
== FAQ ==
备注:FAQ做成单个页面链接,格式按FAQ一问一答排版!在产品主页添加跳转链接即可。[[XXX-产品常见问题解答]]
 
 
 
== 版本历史记录 ==
 
== 版本历史记录 ==
  
 
{|  border="1" cellspacing="0" align="left" cellpadding="0" width="60%" style="text-align:center;"
 
{|  border="1" cellspacing="0" align="left" cellpadding="0" width="60%" style="text-align:center;"
 
|- style="text-align:center;background-color:#6fa8dc;color:#fffff;"  
 
|- style="text-align:center;background-color:#6fa8dc;color:#fffff;"  
!width="10%"|Version !!width="15%"| Date !! Note  <small>[+]新增[-]删除[^]修复</small>
+
!width="10%"|Version !!width="15%"| Date !! <small>新增/删除/修复</small>
|-
 
| V2.1 || 2018.01.29 || style="text-align:left"|[^] <br/>[^]<br/>[^]
 
 
|-
 
|-
|V1.3 || 2017.10.25 ||  
+
| || || style="text-align:left"|
 
|}
 
|}

2018年5月29日 (二) 15:15的最新版本

嘘寒问暖.png

概述

本作品可实现自动检测水杯温度,并通过RGB灯的颜色直观反映水杯温度的高低。使用时先根据制作说明 将作品组装完整,然后接上电源(9V电池或USB供电),打开主控板开关,将水杯放置在作品中间的温度传 感器探头上方即可。当温度高时,RGB灯亮红色;温度低时,亮蓝色;温度适中时,亮绿色。DIY动手组 装,锻炼动手能力,了解智能创意电子套件的使用,激发创新思维,增加学习乐趣。

使用教程

当水杯放置在色温杯垫上,温度感应探头测量水杯温度,并通过灯颜色反应水杯温度。当水温43℃以上,全红;当水温在43~33℃之间,红绿渐变色;当水温33~18℃之间,绿蓝渐变色;当水温18℃以下,全蓝;

组装说明

点击下载.png
文件:嘘寒问暖装配.pdf

嘘寒问暖 装配说明.png

电子模块清单

模块名称 数量
w1主控板 x1
温度传感器 x1
RGB-LED灯 x4

电子模块连接说明

模块 引脚 说明
温度传感器模块 W1-I2C接口
RGB—LED模块x4 W1-3/11接口 4个模块串联,注意信号方向,输出接口连接至下模块输入接口

Arduino程序

点击下载.png
嘘寒问暖Arduino程序包下载


/**************************************************************************
Copyright (C), 2017- ,
File name:  色温杯垫
Author: Tangliufeng     Version: v1.4      Date:
Description:
Others:
Function List:
1.
2.
History:

1. Date:  2017/10/10       Author:  tangliufeng
Modification: 更换新RGB模块
2. ...
****************************************************************************/

#include <Wire.h>
#include <avr/wdt.h>
#include "TemperatureNTC.h"
#include "Adafruit_NeoPixel.h"


#define PIXEL_PIN    3   
#define PIXEL_COUNT  4


int Temperature;
uint8_t _R, _G, _B;
int i = 1;

uint8_t TEMP;
uint8_t humidity;
uint8_t SW;

long time_out;
long time_out1;
long time_out2;

uint16_t h, color1;
float s, v;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

void setup()
{
	s = 1.0;
	v = 0.5;
	h = 0;

	Serial.begin(9600);
	strip.setBrightness(50);
	strip.begin();
	start();
	strip.clear();
	strip.show();
	
}

void loop()
{
	Temperature = readTemperatureNTC(A2);
	Serial.print("Temper:");
	Serial.println(Temperature);
	if (Temperature >= 44)            //大于44度变红色
	{
		color1 = 0;
	}
	else if (Temperature <= 33)
	{
		color1 = map(Temperature, 18, 33, 240, 200);;   //18~33度 变蓝色
	}
	else
	{
		color1 = map(Temperature, 35, 43, 120, 0);     //35~43度 变红色
	}

	HSV2RGB(color1, s, v, _R, _G, _B);

	for (uint8_t i = 0; i < PIXEL_COUNT; i++)
	{
		strip.setPixelColor(i, _R, _G, _B);
	}
	strip.show();


}

void start()
{
	char x = 3;
	while (x--)
	{
		for (uint8_t i = 0; i < PIXEL_COUNT; i++)
		{
			strip.setPixelColor(i, 16, 0, 0);
		}
		strip.show();
		delay(300);
		for (uint8_t i = 0; i < PIXEL_COUNT; i++)
		{
			strip.setPixelColor(i, 0, 16, 0);
		}
		strip.show();
		delay(300);
		for (uint8_t i = 0; i < PIXEL_COUNT; i++)
		{
			strip.setPixelColor(i, 0, 0, 16);
		}
		strip.show();
		delay(300);
	}
}

void HSV2RGB(uint16_t H, float S, float V, uint8_t  &R, uint8_t &G, uint8_t &B)
{
	uint8_t hi;
	float f, p, q, t;
	hi = (uint8_t)(H / 60);
	f = (float)H / 60 - hi;
	p = V * (1 - S);
	q = V * (1 - f * S);
	t = V * (1 - (1 - f) * S);
	switch (hi)
	{
		//0: {r,g,b} = {v,t,p}
	case 0:
		R = V * 255;
		G = t * 255;
		B = p * 255;
		break;
		//1: {r,g,b} = {q,v,p}
	case 1:
		R = q * 255;
		G = V * 255;
		B = p * 255;
		break;
		//2: {r,g,b} = {p,v,t}
	case 2:
		R = p * 255;
		G = V * 255;
		B = t * 255;
		break;
		//3: {r,g,b} = {p,q,v}
	case 3:
		R = p * 255;
		G = q * 255;
		B = V * 255;
		break;
		//4: {r,g,b} = {t,p,v}
	case 4:
		R = t * 255;
		G = p * 255;
		B = V * 255;
		break;
		//5: {r,g,b} = {v,p,q}
	case 5:
		R = V * 255;
		G = p * 255;
		B = q * 255;
		break;
	default:
		break;
	}
}


FAQ

版本历史记录

Version Date 新增/删除/修复