第1步:耗材
DS18B20溫度傳感器
DS18B20是一款測量溫度的單線傳感器,由Maxim Integrated制造。有兩種DS18B20傳感器,僅限組件(我使用的是)和防水版本,它更大,但這不是我的項目所需,所以我只使用了該組件。該傳感器可在-55°C至+ 125°C(-67°F至+ 257°F)的溫度范圍內測量溫度,在-10°C至+ 85°C范圍內的精度為0.5°C。它還具有從9位到12位的可編程分辨率。
電位計傳感器
電位器是帶三個端子的電阻器,只需旋轉傳感器的上部即可手動調節。上部的位置決定了電位器的輸出電壓。
LSM303加速度計+羅盤突破
LSM303分線板是三合一的組合 - 軸加速度計和磁力計/指南針,由Adafruit制造。它與Raspberry Pi的I2C接口一起使用。
MCP3008
要從我的電位器讀取數據,我使用的是MCP3008,這是一個帶有SPI接口的8通道10位模數轉換器,非常易于編程。
揚聲器 - 3“直徑 - 8歐姆1瓦
這是我在計算出它需要的電壓和安培后選擇的揚聲器錐體,這是非常適合我的Adpruit制造的Raspberry Pi項目。
MAX98357 I2S D類單聲道放大器
這是放大器揚聲器附帶的不僅是放大器,它還是I2S數模轉換器,因此它也非常適合我的揚聲器和音頻系統。
Arduino Uno
Arduino Uno是一款開源微控制器板,基于由Arduino.cc制造的Microchip ATmega328P微控制器。 Uno板有14個數字引腳,6個模擬引腳,可通過Arduino IDE軟件完全編程
Levelshifter
這是一塊小板,負責Arduino Uno和Raspberry Pi之間的通信以及不同的電壓,Arduino:5V和Raspberry Pi:3.3V。這是必需的,因為NeoPixel環連接到Arduino并在那里運行,而所有其他東西都在Raspberry Pi上運行。
RGB NeoPixel Ring
這是一個裝有12個RGB LED的小環(如果你愿意的話,你可以買更多帶有更多RGB LED的環)。在我的情況下連接到Arduino Uno,但也可以連接到許多其他設備,并且使用起來非常簡單。
LCD顯示器16x2
我使用基本的LCD顯示器來打印我的溫度,音量和IP地址。
Raspberry Pi 3B +和16GB SD卡
我的整個項目在我的Raspberry Pi上運行3B +帶有配置的圖像,我將幫助您稍后在我的instructable中進行配置。
GPIO T-Part,2個面包板和許多跳線
為了連接我需要面包板和跳線的所有東西,我使用了GPIO T-part,因此我有更多的空間,很清楚哪個引腳是哪個。
第2步:原理圖和接線
對于我的原理圖,我使用了Fritzing,這是一個可以安裝的程序,可以讓你創建一個原理圖在各種視圖中都很簡單。
確保以正確的方式連接所有內容!在我的例子中,電線的顏色與原理圖上的顏色不同。
第3步:數據庫設計
《我們正在從連接的3個傳感器中收集大量數據,因此我們需要一個數據庫來存儲數據和傳感器。稍后我們將看到如何在Raspberry Pi上配置數據庫以及如何向其中添加數據。但首先必須制作數據庫設計或ERD(實體關系圖),并使用3NF對我的規范化進行規范化。這就是為什么我們將傳感器分成另一個表并與ID一起使用。
總的來說,這是一個非常基本且簡單的數據庫設計,可以進一步使用。
步驟4 :準備Raspberry Pi!
現在我們已經完成了項目的一些基礎知識。讓我們開始使用Raspberry Pi!
SD卡配置
首先,您需要一個可以放置圖像的16GB SD卡和一個將開始圖像上傳到SD的程序軟件
所以下載后:
將SD卡放入電腦。
打開剛剛下載的Win32。
選擇剛剛下載的Raspbian圖像文件。
點擊“寫入”SD卡的位置。
這可能需要一些時間,具體取決于您的硬件。一旦完成,我們就可以在將圖像放入RPi之前進行一些最終調整。
轉到SD卡的目錄,搜索名為“cmdline.txt”的文件并打開它。
現在在同一行添加‘ip = 169.254.10.1’。
保存文件。
創建一個名為‘ssh’的文件,不帶擴展名或內容。
現在您可以安全地從計算機中彈出SD卡并將其放入Raspberry Pi中。一旦SD卡進入RPI,將LAN電纜從計算機連接到RPi LAN端口,一旦連接,就可以將電源連接到RPi。
現在我們要控制我們的Raspberry Pi ,這是通過Putty完成的。
一旦下載,打開Putty并插入IP‘169.254.10.1’和端口‘22’和連接類型:SSH。現在我們終于可以打開命令行界面并使用入門登錄信息登錄 - 》用戶:pi和密碼:raspberry。
Raspi-config
sudo raspi-config
這個項目真正重要的是接口部分,我們必須啟用許多不同的接口,啟用以下所有接口:
單線
SPI
I2C
串行
現在我們已經完成了使用raspi-config,讓我們嘗試與互聯網建立聯系。
Wi-Fi連接
首先,您必須是以下命令的root用戶
sudo -i
一旦你是root用戶,請使用以下命令。 SSID是您的網絡名稱,密碼顯然是密碼。
wpa_passphrase “ssid” “password” 》》 /etc/wpa_supplicant/wpa_supplicant.conf
如果您輸入了錯誤,只需輸入該文件即可檢查,更新或刪除此網絡:
nano /etc/wpa_supplicant/wpa_supplicant.conf
因此,在我們進入網絡后,讓我們進入WPA客戶端界面
wpa_cli
選擇您的界面
interface wlan0
重新加載文件
reconfigure
最后,您可以看到您是否連接良好:
ip a
更新和升級
現在我們已連接到互聯網,更新已安裝的軟件包將是一個聰明的舉措,所以讓我們先安裝其他軟件包。
sudo apt-get update
sudo apt-get upgrade
MariaDB數據庫
安裝MariaDB數據庫服務器:
sudo apt-get install mariadb-server
Apache2 Web服務器
安裝Apache2網絡服務器:
sudo apt install apache2
安裝Python:
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Python包
您必須安裝所有這些軟件包才能使后端完美運行:
Flask
Flask-Cors
Flask-MySql
Flask-SocketIO
PyMySQL
請求
Python-socketio
RPi.GPIO
Gevent
Gevent-websocket
Ujson
Wsaccel
揚聲器庫
從Adafruit安裝揚聲器庫:
curl -sS https://raw.githubusercontent.com/adafruit/Raspbe.。. | bash
重新啟動的時間!
sudo reboot
步驟5:將我們的數據庫轉發到RPi!
現在我們已經安裝了所需的一切,讓我們將我們設計的數據庫放在Raspberry Pi上!
首先我們需要在MySql工作臺中設計我們的數據庫,同時這樣做,復制完整的數據庫代碼并刪除其中的所有“可見”單詞。所以一旦復制,再次打開putty,登錄并輸入:
sudo mysql
現在你進入mysql界面,將數據庫代碼復制到其中并按回車。
現在我們只需要創建一個用戶
CREATE USER ‘user’ IDENTIFIED BY ‘user’;
GRANT ALL PRIVILEGES ON *.* TO ‘user’;
現在重新啟動。
所以現在應該設置所有內容,你也可以建立一個連接Pi和MySql Workbench,因此更容易檢查表中的所有數據。
步驟6:在我們的RPi上配置藍牙
我們正在創建藍牙揚聲器,這意味著媒體正從我們的源發送到Raspberry Pi和這可以很容易地完成,讓我們直接進入它!
刪除已經運行的bluealsa。
sudo rm /var/run/bluealsa/*
添加A2DP配置文件接收器角色。
sudo bluealsa -p a2dp-sink &
打開藍牙接口并為您的電源供電藍牙開啟。
bluetoothctl
power on
設置配對代理。
agent on
default-agent
制作你的RPi可發現
discoverable on
現在,從您的藍牙設備,搜索RPi并與之連接。
確認兩臺設備上的配對,在您的膩子中輸入“是”。
授權A2DP服務,再次輸入“是”。
一旦完成,我們就可以信任我們的設備,所以每次我們想連接時都不需要全面了解
trust XX:XX:XX:XX:XX:XX (Your bluetooth mac address from our source device)
如果您希望您的RPi繼續被發現,那么這是您自己的選擇,但我更愿意再次關閉它,以便人們無法嘗試連接您的盒子。
discoverable off
然后我們可以退出我們的藍牙接口
exit
最后我們的音頻路由:我們的源設備轉發到我們的RPi
bluealsa-aplay 00:00:00:00:00:00
現在我們的設備已完全連接到我們的Raspberry,您應該可以在Pi揚聲器上播放源設備中的媒體。
第7步:編寫完整的后端
現在設置已經完成,我們終于可以開始編寫后端程序了!
我使用PyCharm作為我的整個后端,你只需要確保你的PyCharm項目連接到你的Raspberry Pi,這意味著你的部署路徑在你的設置中設置,你安裝了我們需要的所有軟件包,應該是alr在第4步中完成了。
我使用了自己的類,這些也都包含在我的GitHub中。如果您錯過了鏈接就在介紹中;)
在我的后端文件中,我使用了線程類,因此所有內容都可以同時運行,并且不會互相中斷。在底部,您可以獲得所有路徑,以便我們可以輕松地在前端獲取數據。
步驟8:編寫前端(HTML,CSS和JavaScript)
現在后端已經完成,我們可以開始編寫完整的前端了。
HTML和CSS很容易完成,盡可能地嘗試使用移動設備,因為我們大部分時間都是這樣通過移動設備連接藍牙,可以更輕松地從移動儀表板進行控制。
您可以以任何方式設計儀表板,我只需將代碼和設計留在此處,可以做任何你喜歡的事情!
并且Javascript并不那么難,與我的后端路線中的一些GET一起使用,大量的事件監聽器和一些socketio結構。
第9步:構建我的案例并將它們放在一起
我首先介紹了一些我希望案例看起來的草圖,重要的是它必須足夠大才能讓一切都適合因為我們有一個很大的電路來裝箱子。
我用木頭做了這個案子,我認為當你沒有那么多的建筑案例經驗時,這是最容易的。你也可以用它做很多事情。
我從葡萄酒瓶的案例開始,剛剛開始鋸木頭。一旦我拿到了我的基本情況,我就不得不在它上面鉆孔(在表殼前面有很多,正如你在圖片上看到的那樣:P)并在其中放入一些釘子,這是一個非常基本的案例,但它看起來非常酷,非常適合完美。
一旦案件完成,現在是時候把它們放在一起,正如你在最后一張照片上看到的那樣!盒子里面有點混亂,但一切正常,我沒有那么多空間,所以如果你要重新創建我的項目,我建議你創建一個更大的案例。
第10步:我在創建Slimbox揚聲器的道路上遇到的一些問題。..
藍牙和藍色錯誤
每次我想要播放音樂或連接藍牙,我收到藍牙和bluealsa的錯誤。我做了一些研究,這是我的問題的解決方案。所以出于某種原因,我的藍牙是軟封裝的,不確定這是否是標準的軟封鎖。您可以通過在Putty中鍵入以下命令來查看是否存在。
rfkill list
因此,如果它是軟塊,只需使用它:
rfkill unblock bluetooth
串行連接問題
所以我遇到的另一個大問題是我無法通過levelshifter與我的Arduino建立任何聯系,經過一些搜索我發現我的‘/dev/ttyS0’已經消失了,這可能是因為你的RPi更新了。還找到了解決方案
您必須使用raspi-config重新啟用串行控制臺,重新啟動,然后從‘/boot/cmdline手動刪除“console = serial0,115200”位。 txt’。確認“enable_uart = 1”在‘/boot/config.txt’中,然后重新啟動。這應該得到你的ttyS0端口,以及‘/dev/serial0’軟鏈接。
-
揚聲器
+關注
關注
29文章
1341瀏覽量
64136
發布評論請先 登錄
揚聲器的運作原理與技術規格

歌爾股份發布新一代揚聲器 DPS-F和大音-F揚聲器
壓電揚聲器產品參考說明書
內置揚聲器和麥克風的顯示器區別
使用TPA3113作為揚聲器放大,開機時SD信號為高電平的瞬間揚聲器會有彭一聲響,為什么?
想使用DRV2700EVM作為一個壓電揚聲器驅動裝置,怎么操作?
物聯網系統中音頻方案的“嘴巴”_揚聲器

評論