資料介紹
描述
1. 摘要
WTF是一款智能水杯,可以測量內部水溫,也可以通過語音提示用戶,這款水杯不易傾斜。它對每個人都有用,尤其是對于盲人和視障用戶。
WTF 是一個為用戶提供杯子中視對象功能的人,并用這個杯子為所有的人提供聲音。
2. 簡介
全世界有2.17億人患有視力障礙,其中3600萬人完全失明。飲用水是必不可少的。然而,視障人士可能會遇到一些危險和不便。因此,我們計劃設計一個杯子來幫助這些人避免這些危險。該杯子將具有使其能夠清楚地通知其用戶的功能。
在當今社會中,全世界有2.17億人有度至重度的約見中,似乎沒有這些,約3600萬人完全失明生活中的飲水是必須的,但是視覺上的方便是人在飲水中的。我們可能會在水杯方面設計一個可能有危險和提醒用戶的能力。
3. 硬件介紹
3.1 Arduino納米3.0
左邊的是Arduino Uno,很常見。Uno 功能齊全,但對我們的項目來說有點太大了。我們正在做一個杯子,我們不能在里面放一個普通尺寸的計算器。
最開始是阿杜諾的圖片系列,但Arduino Uno的功能對我們來說這個中杯的案子有點說得過去,完整的版本了。
另一個是我們的主角,Arduino Nano。更小、更輕、更便宜。我買的那件要 100 新臺幣(約合 3.3 美元)。它的尺寸為 43.18 毫米 * 17.78 毫米。
再來的板子更創造了Arduino Nano的主角。我們這塊板子更小更便宜,只用了100塊臺在森工的網站上買的,大概是43.18 mm * 17.78 mm。
3.2 LM35
LM35是一款溫度傳感器,可用于測量-50℃至150℃之間的水溫。這是一個適合喝水的區間。
LM35是溫度感測,可測范圍大約是-50℃到150℃,是滿符合水溫狀態的區間。
然而,還有另一個溫度傳感器 DS18B20 是防水的。這對于測量液體溫度非常有用。我們選擇 LM35 的原因是我們計劃將傳感器放置在玻璃杯之外,并且不會損壞杯體。盡管如此,我還是建議你試試 DS18B20,也許它更準確。
所以另一款DS18B20是推薦的因為有溫度感測器,但是我們本來就不打算將杯子測度更正所以這個,我還是非常你可以看的,因為選擇它的準確度好喔。
3.3 DFPlayer 迷你版
顯然,它只是一個迷你 mp3 播放器。它需要一個存儲 mp3 文件的 sd 卡和一個普通的揚聲器。如果您正在尋找一款聲音播放器,我認為除了這一款之外沒有太多選擇。
就像字樣的作品,這是一個驅動mp3器的模組。除了這個還需要這張專輯跟前幾張或這張專輯來完成放送。而且除了我覺得你在城市之外也很重要上其他太多的選擇了。
4.電路圖
連接方法如上圖。
連接的方式就像這張圖
我所做的結果如下。
我做的角色像下面這個
但是我覺得不太容易理解所以請去我在circuito.io上做的那個~
但我不覺得這樣的做法中還有什么端倪,所以建議我在circuito.io做的連接圖吧~
5. 逐個連接
5.1 LM35
這是一個非常簡單的步驟(如果您只想測量溫度)。輸入代碼并運行后,就完成了。
這步驟很簡單(如果很容易只是想溫度)。在你輸入完成后是而且跑動后測完成了。
/*Code designed by Sujay Alaspure in SA Lab */
const int sensor=A5; // Assigning analog pin A5 to variable 'sensor'
float tempc; //variable to store temperature in degree Celsius
float tempf; //variable to store temperature in Fahreinheit
float vout; //temporary variable to hold sensor reading
void setup() {
pinMode(sensor,INPUT); // Configuring sensor pin as input
Serial.begin(9600);
}
void loop() {
vout=analogRead(sensor); //Reading the value from sensor
vout=(vout*500)/1023;
tempc=vout; // Storing value in Degree Celsius
tempf=(vout*1.8)+32; // Converting to Fahrenheit
Serial.print("in DegreeC=");
Serial.print("\t");
Serial.print(tempc);
Serial.print(" ");
Serial.print("in Fahrenheit=");
Serial.print("\t");
Serial.print(tempf);
Serial.println();
delay(500); //Delay of 1 second for ease of viewing }
盡管如此,我們不會測量空氣,我們要測量的是穿過玻璃的水。所以考慮到精度會下降和反射時間會變長的原因,我們需要擴大測量間隔并修正輸出。下圖是我們做交換公式的筆記,左邊是實物,右邊是我們從LM35得到的輸入。
在考慮他的準確度下降以及玻璃反應時間增加的情況下,需要調整他的輸出及感測器下面的圖是當時我們為轉換做的記錄,從這張圖是實際有的,右邊是LM35傳出來的結果的分數。
以下代碼是在新公式交換之后。
這樣的改變之后我們的程序碼變成了下面的樣子。
//sensor
const int sensor=A5; // Assigning analog pin A5 to variable 'sensor'
float tempc; //variable to store temperature in degree Celsius
float tempf; //variable to store temperature in Fahreinheit
float vout; //temporary variable to hold sensor reading
char rT='24';
void loop(){
vout=analogRead(sensor); //Reading the value from sensor
vout=(vout*500)/1023;
if (vout<19.5){
Serial.print("lower than 10");
}
else if (vout>=19.5 and vout<21){
Serial.print("about 15");
}
else if (vout>=21 and vout<22){
Serial.print("about 20");
}
else if (vout>=22 and vout<24){
Serial.print("about 25");
}
else if (vout>=24 and vout<24.5){
Serial.print("about 30");
}
else if (vout>=24.5 and vout<26.5){
Serial.print("about 35");
}
else if (vout>=26.5 and vout<28.5){
Serial.print("about 40");
}
else if (vout>=28.5 and vout<29.5){
Serial.print("about 45");
}
else if (vout>=29.5 and vout<31.5){
Serial.print("about 50");
}
else if (vout>=31.5 and vout<32.5){
Serial.print("about 55");
}
else{
Serial.print("higher than 60, warnning, its hot.");
}
Serial.print("in DegreeC=");
Serial.print("\t");
Serial.print(tempc);
Serial.print(" ");
Serial.print("in WTF=");
Serial.print("\t");
Serial.print(rT);
Serial.println();
}
參考:https ://www.instructables.com/id/Arduino-Temperature-Sensor-Using-LM35/
5.2 DFPlayer 迷你版
教程博客中有很多代碼,我只取我們需要的部分:
他給了很多行程式,我只取了我的回應碼:
#include "Arduino.h"
#include "SoftwareSerial.h" // 採用SoftwareSerial程式庫
#include "DFRobotDFPlayerMini.h" // 採用DFRobotDFPlayerMini程式庫
SoftwareSerial mySoftwareSerial(2, 3); // mySoftwareSerial(RX, TX), 宣告軟體序列傳輸埠
// 用來與DFPlayerMini通訊用
DFRobotDFPlayerMini myDFPlayer; //宣告MP3 Player
void setup()
{
Serial.begin(115200); // 定義Serial傳輸速率115200bps
mySoftwareSerial.begin(9600); // 定義mySoftwareSerial傳輸速率9600bps, DFPlayerMini 的通訊速率為9600bps.
myDFPlayer.setTimeOut(500); // 設定通訊逾時為500ms
//----Set volume----
myDFPlayer.volume(10); // 設定音量, 範圍0~30.
//----Set device we use SD as default---- // 設定SD卡
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
//----Mp3 control---- // 設定MP3參數
myDFPlayer.enableDAC(); //Enable On-chip DAC
//----Mp3 play---- // 設定MP3播放參數
myDFPlayer.play(1); // 播放第1首音樂
}
不要忘記導入它請求的庫。
詳情見參考/從下面的鏈接看更詳細的教學
在這里,我通過Sound Of Text錄制了 11 個 mp3 文件并保存到我的 micro SD 卡中,然后插入 DFPlayer Mini。
記錄文件有點像“大約15°C”或“高于60°C,警告,很熱。”。
在這里我用 Sound Of Text錄了11個mp3文件到我的SD卡里,然后插入micro DFPlayer Mini里。
這些音檔的內容大應該是近似度“或像”“60度,小心高溫。”
5.3 電源
這部分沒有代碼!干杯! 唯一需要做的就是像上圖那樣連接電池(不是 LED 部分,只有電池)
沒有程序要!恭喜!只要照上圖接好電池就好(不要管LED,)
6.完成代碼
#include "Arduino.h"
#include "SoftwareSerial.h" // 採用SoftwareSerial程式庫
#include // 採用DFRobotDFPlayerMini程式庫
//mp3
/*Code designed by Sujay Alaspure in SA Lab */
SoftwareSerial mySoftwareSerial(2, 3);
DFRobotDFPlayerMini myDFPlayer; //宣告MP3 Player
void printDetail(uint8_t type, int value); //印出詳情
//sensor
const int sensor=A5; // Assigning analog pin A5 to variable 'sensor'
float tempc; //variable to store temperature in degree Celsius
float tempf; //variable to store temperature in Fahreinheit
float vout; //temporary variable to hold sensor reading
char rT='24';
//toggle
boolean state = false;
void setup() {
//toggle
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(7, INPUT);
digitalWrite(7, HIGH);
//MP3 Player
Serial.begin(115200); // 定義Serial傳輸速率115200bps
mySoftwareSerial.begin(9600); // 定義mySoftwareSerial傳輸速率9600bps, DFPlayerMini的通訊速率為9600bps.
myDFPlayer.setTimeOut(500); // 設定通訊逾時為500ms
//----Set volume----
myDFPlayer.volume(30); // 設定音量, 範圍0~30.
//----Set different EQ---- // 設定EQ(等化器 Equalizer)
myDFPlayer.EQ(DFPLAYER_EQ_NORMAL);
//----Set device we use SD as default---- // 設定SD卡
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);
//----Mp3 control---- // 設定MP3參數
myDFPlayer.enableDAC(); //Enable On-chip DAC
pinMode(sensor,INPUT); // Configuring sensor pin as input
Serial.begin(9600);
}
void loop() {
//MP3 player
if (myDFPlayer.available()) // 監視MP3有沒有回應
{ // 有的話印出詳情
printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states.
}
//toggle
if(digitalRead(7) != HIGH){
state = !state;
digitalWrite(13, state);
temp();
delay(2000);}
} //Delay of 1 second for ease of viewing
void temp(){
vout=analogRead(sensor); //Reading the value from sensor
vout=(vout*500)/1023;
if (vout<19.5){
Serial.print("lower than 10");
myDFPlayer.play(4);
}
else if (vout>=19.5 and vout<21){
Serial.print("about 15");
myDFPlayer.play(2);
}
else if (vout>=21 and vout<22){
Serial.print("about 20");
myDFPlayer.play(3);
}
else if (vout>=22 and vout<24){
Serial.print("about 25");
myDFPlayer.play(5);
}
else if (vout>=24 and vout<24.5){
Serial.print("about 30");
myDFPlayer.play(7);
}
else if (vout>=24.5 and vout<26.5){
Serial.print("about 35");
myDFPlayer.play(6);
}
else if (vout>=26.5 and vout<28.5){
Serial.print("about 40");
myDFPlayer.play(10);
}
else if (vout>=28.5 and vout<29.5){
Serial.print("about 45");
myDFPlayer.play(9);
}
else if (vout>=29.5 and vout<31.5){
Serial.print("about 50");
myDFPlayer.play(8);
}
else if (vout>=31.5 and vout<32.5){
Serial.print("about 55");
myDFPlayer.play(11);
}
else{
Serial.print("higher than 60, warnning, its hot.");
myDFPlayer.play(1);
}
Serial.print("in DegreeC=");
Serial.print("\t");
Serial.print(tempc);
Serial.print(" ");
Serial.print("in WTF=");
Serial.print("\t");
Serial.print(rT);
Serial.println();
}
7.外觀
外部設計采用底部加重的半圓形鍋形,此設計分為兩部分,主要材料如下:
外部設計底部很重的半圓形,而可供選擇的圓形用途為口腔內進行兩式使用的多種形式,使用以下形式的材料:
先用木板將鞋面做成一個與玻璃大小相匹配的圓環和18塊三角形木片,按照邊的大小排列,與圓環接合,形成鞋面的骨架杯的一部分,然后蓋上表面的黑布。
首先在上半部用1個圓形木片的圓形覆蓋面,在圓形上半部用1塊圓形木片覆蓋黑色的圓形小片,按照邊長的大小進行排列,并在玻璃上接合。
用葫蘆在下半部分抹平不規則的表面,也用紅布蓋住。使用兩種顏色來區分上下部分。
下半部則用葫蘆,將不規則的磨平并用上紅色兩面,用兩個顏色蓋頭部分。
8. 結果
首先,我們看一下內部操作:
首先先看看內部的準入吧:
物質和外部
實物和外貌
9. 結論
缺點:時間和預算緊張,無法選擇一些更好的組件。并且可能添加一些功能,例如告訴用戶溫度正在測量。
時間長度限制,使用效果的時間長度有限,使用效果稍有不同。
Hope this tutorial will
help you~
希望這個教程能幫到你~
- 智能溫控水杯的設計 3次下載
- 智能家居控制系統方案開源資料
- 基于單片機的盲人專用綜合型智能水杯
- 基于單片機的智能水杯系統
- 基于單片機智能溫控水杯系統
- 多功能智能水杯設計方案
- 開源網絡協議分析器WireShark軟件下載 15次下載
- 基于單片機智能水杯源程序與Proteus仿真
- 基于單片機的水杯示溫報警器設計 126次下載
- 開源課程行動倡議及科學導論綜述 6次下載
- 使用R7F0C002單片機實現智能水杯的設計資料合集 2次下載
- 藍牙智能小車手機遙控全部開源資料合集免費下載 61次下載
- WIFI智能開源電熱水器的原理圖和源代碼免費下載 46次下載
- 百度智能手環開源方案資料合集免費下載包括原理圖源代碼等
- 應用半導體制冷技術的智能水杯設計 42次下載
- 【AWTK開源智能串口屏方案】HMI端程序移植編譯及運行 669次閱讀
- ?【AWTK開源智能串口屏方案】方案介紹和工作原理 742次閱讀
- 利用開源軟件的最佳實踐 464次閱讀
- 前沿開源技術領域的開源大數據一一解讀 1005次閱讀
- 如何在OpenHarmony開源代碼基礎上實現數字管家開發宿舍全屋智能 1640次閱讀
- 2019黑科技之智能飲水機水位監測方案 3411次閱讀
- 2020年開源的六大發展趨勢 4257次閱讀
- 基于以太坊智能合約提供的開源框架POA Network介紹 2384次閱讀
- 更小更智能的電機控制器推進HEV/EV市場 1105次閱讀
- NASA的開源軟件是什么?NASA的開源軟件的詳細分析 7186次閱讀
- 中國人工智能開源軟件前生今生到底如何? 5563次閱讀
- 5個頂級的人工智能開源工具 6100次閱讀
- 開發者不可錯過的開源項目—人工智能篇 6184次閱讀
- 基于STM32的飲水提醒水杯及缺水量檢測系統 8776次閱讀
- 11個機器學習開源項目 2767次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多