第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文章
1214浏览量
60178
发布评论请先 登录
相关推荐
评论