電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>支持藍牙的雪人天氣和空氣質量禮品卡開源項目

支持藍牙的雪人天氣和空氣質量禮品卡開源項目

2022-07-15 | zip | 0.21 MB | 次下載 | 2積分

資料介紹

PCB圖如下:
poYBAGLPukeABx8oAABoqGv6Kyo891.jpg

描述

支持藍牙的雪人天氣和空氣質量禮品卡

?

雖然在向經(jīng)典圣誕主題致敬的同時創(chuàng)造全新的設計對我來說很困難,但我決定設計這張禮品卡,希望即使到下一個平安夜,它也能保持功能和時尚,同時散發(fā)出歡樂的回憶圣誕節(jié)。為了使這張禮品卡的表現(xiàn)不僅僅是一個令人發(fā)指的圣誕裝飾品,我將其設計為一個功能齊全的遠程家庭自動化界面,用于檢測天氣和空氣質量信息。它有六種不同的模式(屏幕),由其協(xié)作的 Android 應用程序控制,如下所示:

?

  • 溫度
  • 濕度
  • 壓力和海拔高度
  • 空氣質量
  • 動畫
  • 主屏幕(新年快樂)

?

首先,我開發(fā)了一個名為 Gift Card 的 Android 應用程序,通過藍牙控制禮品卡的模式和功能。因此,我在禮品卡中添加了 HC-06 藍牙模塊。

?

為了能夠準確獲取天氣信息,我使用了 BMP180 氣壓/溫度/高度傳感器和 DHT11 溫度/濕度傳感器。

?

然后,為了檢測空氣質量,我使用了MQ-135空氣質量傳感器,檢測范圍大,靈敏度高——NH3、NOx、酒精、苯、煙霧、CO2等。

?

最后,我加入了一個 ST7789 240x240 IPS 屏幕,以顯示帶有彩色圖像和文本的每個屏幕(模式)。另外,我在禮品卡上添加了一個 RGB LED 作為雪人的眼睛。

?

在面包板上完成設計并使用 Android 應用程序測試代碼后,我設計了一個具有獨特雪人形狀的 PCB(雪人禮品卡),為圣誕節(jié)創(chuàng)建了一個有趣且貼切的禮品卡設計 :)

?

我試圖使組件盡可能簡單以集成到電路板中,以使這張禮品卡即使對于收到它作為圣誕節(jié)禮物的新手和初學者來說也易于使用:)

?

poYBAGLPukuAKxT6AALmtwMZtyo841.png

?

pYYBAGLPuk-AGcWwAADah_-Cs5A430.png

?

第 1 步:設計和焊接雪人禮品卡 PCB

?

首先,我用面包板上的 Arduino Nano 測試了所有連接和模塊。

?

poYBAGLPul2ANBU4AAiQ0kBwVXM170.png

?

然后,我使用 KiCad 設計了雪人禮品卡 PCB。我在下面附上了 PCB 的 Gerber 文件,所以如果您愿意,您可以從 PCBWay 訂購此 PCB,以制作時尚的雪人禮品卡,送給您的朋友和家人,他們可以將其功能用作家庭自動化界面,甚至可以在下一個圣誕節(jié)使用:)

?

poYBAGLPumOACYZhAAey9l_eGoI683.png

?

pYYBAGLPumqAWpivAAfYvBlLJW8997.png

?

首先,通過使用烙鐵,我連接了接頭(母)、5mm RGB 共陰極 LED、220Ω 電阻電源插孔。

?

PCB上的元件清單:

?

A1(Arduino Nano 接頭)

D1(ST7789 240x240 IPS 接頭)

HC06(HC-06藍牙模塊接頭)

S1(MQ-135 空氣質量傳感器接頭)

S2(DHT11 溫度/濕度傳感器接頭)

S3(BMP180 氣壓/溫度/高度傳感器接頭)

R1、R2、R3、R4(220Ω電阻)

L1(RGB共陰極)

J1(電源插孔)

?

pYYBAGLPunKABxHcAAiePSmEEoE199.png

?

pYYBAGLPuniADapCAActeriPV9U358.png

?

pYYBAGLPurWAYpTDAAh2Jvlw6qk243.png

?

第 2 步:在 MIT APP Inventor 2 上開發(fā)禮品卡 Android 應用程序

?

我選擇使用 MIT APP Inventor 2 來創(chuàng)建禮品卡 Android 應用程序,因為它易于使用的設計器界面和簡單功能的拖放編輯器。MIT App Inventor 是 Google 提供的 Web 應用集成開發(fā)環(huán)境,現(xiàn)由麻省理工學院維護。

?

您可以從下面的下載中下載禮品卡 Android 應用程序的 apk 文件 ( Gift_Card.apk ) 以將其安裝到您的手機上或將其發(fā)送給您想要出示此禮品卡的人。

?

我還在 Google Play 上發(fā)布了該應用程序:

?

在 Google Play 上下載

?

? 安裝后,單擊?連接?按鈕以查看所有已配對的藍牙設備。

?

pYYBAGLPuriAEpdOAABtX11YNMM674.png

?

?

? 然后,如果用戶沒有以其他方式命名,則選擇名為?禮品卡?(HC-06 藍牙模塊)的那一張。

?

pYYBAGLPuruAbXz7AABfC4ZEpUE948.png

?

? 如果輸入給定密碼 (1234) 后與雪人禮品卡 PCB 連接成功,應用程序將打印?Status: Connected 。否則,它會打印?Status: Error 。

?

poYBAGLPur-AAWYhAADXXZ2wexY644.png

?

如果您想更改應用程序的設計或查看源代碼以添加新功能,請按照以下步驟操作:

?

? 轉到MIT App Inventor 2?的主頁,?然后單擊?Create Apps!?按鈕。

?

? 然后,將應用程序的 aia 文件(Gift_Card.aia)導入 MIT App Inventor 2 以查看應用程序設置和代碼。

?

poYBAGLPusKAGJLLAADFGlYpVrs167.png

?

? 該應用程序有兩個屏幕、五個開關按鈕、一個微調器和一個通知框。您可以使用??編輯器更改它們的功能。

?

pYYBAGLPusWAOFHTAAIiOvEy6Ws789.png

?

第 3 步:對 Arduino Nano 進行編程并設置組件

?

下載所需的庫以控制模塊:

BMP180 氣壓/溫度/高度傳感器 |?圖書館

DHT11 溫濕度傳感器 |?圖書館

?

? 包括所需的庫。

?

? 啟動 HC-06 藍牙模塊。將定義的 RX 引腳 (7) 連接到藍牙模塊上的 TX 引腳。

 ; 

?

? 定義 BMP180 傳感器設置。

 bmp;
溫度,_高度;
壓力,壓力海;

?

? 定義 DHT11 對象。

 dht;
濕度,溫度_DHT;

?

? 定義 MQ-135 引腳和 RGB 引腳。

?

? 定義界面選項 - home、tem、hum、pres、air、ani。

?

? 激活藍牙模塊。

?

? 您可以通過取消注釋changeBluetoothSettings()?函數(shù)?來更改 HC-06 藍牙模塊的默認設置?-名稱:禮品卡,密碼:1234,波特率:9600。

void changeBluetoothSettings(){
 
字符串名稱 =  ;
字符串密碼 =  ;
字符串 Uart =  ;

禮物卡。();
Gift_Card.println(Name);
串行。 (  );
序列號.println(名稱);
延遲();
禮物卡。();
Gift_Card.println(密碼);
串行。 (  );
Serial.println(密碼);
延遲();
禮物卡。();
Gift_Card.println(Uart);
串行。 (  );
Serial.println(Uart);
延遲();

?

poYBAGLPuseAfkE3AAAqdu4YBO4678.png

?

?

? 檢查 BMP180 模塊是否正常工作。

?

? 啟動 DHT11 模塊。

?

? 在?Application_Commands()?函數(shù)中,檢測 Android 應用程序(禮品卡)傳輸?shù)拿睢?/font>

  {

 c = Gift_Card.read();

  :

home = ;
tem =;
哼=;
壓力=;
空氣=;
阿尼=; 
;
  :
 
home =  ;
tem =;
哼=;
壓力=;
空氣=;
阿尼=; 
;
  :
 
家庭濕度 =  ;
tem =;
哼=;
壓力=;
空氣=;
阿尼=; 
;
	
	...

?

? 執(zhí)行請求的命令 - home、tem、hum、pres、air、ani。

(家 ==){
tft.fillScreen(RGBto565(  ,  ,  ));
(家==){
應用程序命令();

主屏幕 tft.setCursor(  ,  );
tft.setTextColor(RGBto565(  ,  ,  ));
tft.setTextSize(  );
tft.println(  );
tft.println(  );
tft.println(  );
}
}

(tem == ){
tft.fillScreen(黑色);
(tem == ){
應用程序命令();

收集數(shù)據(jù)();
 
tft.setCursor(  ,  );
tft.setTextColor(RGBto565(  ,  ,  ), 黑色);
tft.setTextSize(  );
TFT。(F());
tft.fillCircle (、)
tft.drawImageF(  ,  ,  ,  , temp);
tft.setCursor(  ,  );
tft.setTextSize(  );
TFT。((字符串)溫度+ );
tft.setCursor(  ,  );
TFT。((字符串)溫度_DHT + );
}
}

(嗡嗡聲==){
tft.fillScreen(黑色);
(哼==){
應用程序命令();

收集數(shù)據(jù)();
 
tft.setCursor(  ,  );
tft.setTextColor(藍色,黑色);
tft.setTextSize(  );
TFT。(F());
tft.fillCircle (、)
tft.drawImageF(  ,  ,  ,  , humd);
tft.setCursor(  ,  );
tft.setTextSize(  );
tft.println((String)濕度 +  );
}
}
...

?

? 在?collect_Data()?函數(shù)中,獲取 BMP180、DHT11 和 MQ-135 生成的變量。

?

? 如果您的傳感器讀數(shù)不同,請更改空氣質量值的范圍 (0 - 50)。

  {

溫度 = bmp.readTemperature();
壓力 = bmp.readPressure();
pressure_sea = bmp.readSealevelPressure();

_altitude = bmp.readAltitude();


延遲(dht.getMinimumSamplingPeriod());
濕度 = dht.getHumidity();
temperature_DHT = dht.toFahrenheit(dht.getTemperature());


air_quality =  (analogRead(mq135),  ,  ,  ,  );
}

?

? 在?adjustColor()?函數(shù)中,調整雪人禮品卡 PCB RGB 眼睛的顏色。

?

? 在?Animation()?函數(shù)中,使用實心圓創(chuàng)建動畫屏幕。

   {
 x, y, w = tft.width(), h = tft.height(), r2 = radius * ;
tft.fillScreen(黑色);
 (x=radius; x
		

?

poYBAGLPusqAeCeZAACc91h68H0169.png

?

pYYBAGLPusyAbMTxAACSJuy9RWw420.png

?

poYBAGLPus6Aba5DAACS96FqdfY016.png

?

poYBAGLPutOAZQhaAABw9iy-kRU063.png

?

poYBAGLPuteAQUKCAADCCqT35DU184.png

?

步驟 3.1:使用 ST7789 240x240 IPS 屏幕顯示圖像

?

下載所需的庫以使用 ST7789 240x240 IPS 屏幕:

Arduino_ST7789_Fast |?圖書館

Adafruit_GFX |?圖書館

?

? 定義 ST7789 240x240 IPS 顯示設置。

?

? 啟動 ST7789 240x240 IPS 顯示屏。

?

? 打開并清除 ST7789 240x240 IPS 顯示屏。





...

Arduino_ST7789 TFT = Arduino_ST7789(TFT_DC,TFT_RST);

...

tft.init(SCR_WD, SCR_HT);
tft.fillScreen(黑色);

?

? 使用?RGBto565()?函數(shù)在 ST7789 上將 RGB 顏色顯示為文本和背景顏色。

tft.fillScreen(RGBto565(248, 178, 41));
tft.setCursor(0, 40);
tft.setTextColor(RGBto565(22, 21, 118));
tft.setTextSize(6);
tft.println("快樂");
tft.println("新");
tft.println("年份:)");

?

? 使用下面的圖像轉換器將您想要在 ST7789 屏幕上顯示的圖像轉換為 .c 文件:

?

pYYBAGLPutmAOwUJAAAU-qeq7Pc687.png

?

圖像轉換器 (UTFT)

?

? 您可以在代碼中下載我在本項目中使用的轉換后的圖像文件 -? temp.c、humd.c、 pre.c和?airq.c。

?

? 包括并打印轉換后的圖像。





...

tft.drawImageF(  ,  ,  ,  , temp);
tft.drawImageF(  ,  ,  ,  , humd);
tft.drawImageF(  ,  ,  ,  , pre);
tft.drawImageF (  ,  ) ;
 

?

連接和調整

?

























?

完成并將代碼上傳到 Arduino Nano 后,我通過接頭將所有必需的組件連接到板上 - HC-06 藍牙模塊、ST7789 240x240 IPS 屏幕、BMP180 氣壓/溫度/高度傳感器、DHT11 濕度/溫度傳感器和 MQ -135 空氣質量傳感器。

?

pYYBAGLPuuCAaNwnAAg77wyPSOo176.png

?

模式和功能

?

???在默認模式下,當雪人禮品卡開始工作時,它會顯示主屏幕顯示?新年快樂 :)

?

pYYBAGLPuuyAS-OcAAkGT9OBmrY794.png

?

???當用戶在禮品卡 Android 應用程序中點擊?溫度?開關按鈕時,禮品卡顯示由 BMP180 (°C) 和 DHT11 (°F) 生成的溫度變量。

?

pYYBAGLPuk-AGcWwAADah_-Cs5A430.png

?

poYBAGLPuv2AKIJ8AAenzGI3gd0259.png

?

pYYBAGLPuwCAXOj4AASLjVHIP40238.png

?

???當用戶在禮品卡 Android 應用程序中點擊?濕度?開關按鈕時,禮品卡顯示由 DHT11 生成的濕度變量(%)。

?

pYYBAGLPuwOALvkTAADYQYK3zNo558.png

?

poYBAGLPuwqAEL4AAAjA8HGAKN4096.png

?

pYYBAGLPuxSAUWDqAAS2VhRYsg8762.png

?

???當用戶點擊 Gift Card Android 應用程序中的?壓力和海拔?開關按鈕時,禮品卡會顯示 BMP180 產(chǎn)生的壓力和海拔變量(Pa/m)。

?

poYBAGLPuxmAW4IlAADkoyeWxEI651.png

?

pYYBAGLPuzaALDxDAAifNM9Hk44805.png

?

poYBAGLPuz6AQoKTAAVUn03_Gno474.png

?

???當用戶在禮品卡 Android 應用程序中點擊?空氣質量?開關按鈕時,禮品卡顯示 MQ-135 生成的空氣質量變量從 0(正常)到 50(危險)。

?

pYYBAGLPu0GAOwXNAADYz83rvfM723.png

?

poYBAGLPu0qAOGWhAAjW6IO5xCs111.png

?

pYYBAGLPu06AGeZAAAUmISv67hk219.png

?

???當用戶點擊禮品卡 Android 應用程序中的?動畫?切換按鈕時,禮品卡會在循環(huán)中顯示帶有實心圓圈的動畫圖案,直到用戶選擇其他模式。

?

pYYBAGLPu1GAAb99AADYizHFboU611.png

?

poYBAGLPu1iAbfFQAAiRXCQcdD8961.png

?

pYYBAGLPu12AJieFAAV9zT5gtio996.png

?

項目形象

?

????用戶在 Gift Card Android 應用程序的RGB Eye微調器中選擇任何顏色選項后,禮品卡會調整其 RGB 眼睛的顏色?:

?

  • 紅色的
  • 綠色
  • 藍色的
  • 黃色
  • 紫色的
  • 青色
  • 白色的
  • 關閉(黑色)

?

pYYBAGLPvzGAF_A_AACyW_y3pBQ773.png

?

poYBAGLPvzWAV0MqAADZHOFBhrw319.png

?

poYBAGLPvzmADtvKAADfkJy3xuY257.png

?

poYBAGLPv2-AU-aTAAcbBAiED0c382.png

?

pYYBAGLPv3WAGqc8AAWkh0E7bUA254.png

?

???如果用戶單擊?Exit?按鈕,Android 應用程序會顯示?Disconnect?通知框:

?

  • 主屏幕 | 返回主屏幕 -?新年快樂 :)
  • 好的 | 關閉應用程序并斷開藍牙!

?

poYBAGLPv3eAb0rVAADMIL2nimw046.png

?

poYBAGLPv3yACaTwAADcHIIbtvQ025.png

?

pYYBAGLPv4WAAKyeAAXSW_B_91Y172.png

?

視頻和結論

?

?

完成上述所有步驟后,我將雪人禮品卡 PCB 作為裝飾品放在圣誕樹下,等待其 Android 應用程序發(fā)出命令以運行請求的模式。除了作為一種有趣的裝飾外,它還可以作為一個令人印象深刻的家庭自動化界面 :)

?

poYBAGLPv4yAQIJtAAY93GlBqd8582.png

?

poYBAGLPukuAKxT6AALmtwMZtyo841.png

?

原理圖

?

pYYBAGLPv5eAcw9QAABTXjxPKQA357.png

?

pYYBAGLPv5mAQqogAABneEcJxmQ193.png

?

poYBAGLPv5yAVRPUAABmzzrTRRQ564.png

?

poYBAGLPv5-AI3lsAACZk4-Txj0044.png

?

pYYBAGLPv6GAaNK3AACJENjo0Xc107.png

?

?

?
?

?

代碼


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費