步骤1:收集零件
在实际创建任何东西之前,我对要使用的零件,如何进行连接进行了大量研究。 ,用Python等编写软件类。
零件清单将作为文件包含在内,以便您可以轻松地搜索所需的零件。
我决定在Raspberry Pi旁边使用Arduino Uno,这样我就可以有效地读取我的传感器而不会给Raspberry Pi造成压力。我还选择了Uno,因为它具有不错的时钟速度,并且因为有模拟引脚。我本可以为Raspberry Pi使用ADC(例如MCP3008),但我将需要更多的电线,这将更加昂贵,并且我的Pi必须更加努力地工作。
然后,我开始检查破碎的机器人真空吸尘器中可用的零件。内部电子设备损坏了,但这没问题,因为无论如何我都会完全替换掉。幸运的是,直流电动机仍在工作,因此无需更换。
零件清单:
Raspberry Pi 3至少具有8GB MicroSD class 10和一个保护套;
Raspberry Pi T型补鞋匠和面包板;
Arduino Uno或类似产品(最好是非中文版本,带有不错的ADC,有些中国人有AREF问题);
以太网电缆;
一个(破碎的)机器人真空吸尘器;
3个HC-SR04超声波模块;
1x霍尔传感器模块;
几个不同值的电阻器;
一个LDR;
6x 18650锂离子电池+ 3v电池座,适用于12v(最好您使用新电池,甚至更好地使用LiPo电池,这些电池最后的时间会更长 );
18650(或使用任何类型的电池)12v 3节充电pcb;
一些PCB DIY板可焊接您的组件;
一片聚氨酯塑料;
一台笔记本电脑/台式计算机。
l列表:
带有多个钻头的钻头;
角向磨光机(如果您没有经验,请不要使用它)或类似Dremel的东西;
一张砂纸;
几把螺丝刀;
强力胶,安装胶水,。..;
烙铁(使用油脂更容易焊接);
一对剪钳和剥线工具。
软件列表(可选):
Adobe XD:线框图和创建原型;
装饰:创建电气方案;
PyCharm Professional:具有使用部署和远程解释器的功能的Python IDE;
Putty:与Pi进行快速便捷的ssh连接;
Etcher.io:简便的工具将Raspbian映像刷新到SD卡;
Win32DiskImager:从现有Raspbian设置创建映像的简便工具;
程序员记事本:可用于安全编辑/boot/cmdline.txt文件。
第2步:喷涂和设计界面
在开始之前在创建设计时,我对外部喷涂了油漆,因为我根本不喜欢颜色。我去商店买了一个塑料底漆,一罐白色和一罐绿松石来重新喷涂顶盒。
让喷漆干燥后,我查找了确切的十六进制颜色代码我使用的油漆,以便我可以将Web界面与设备完美匹配。找到此十六进制代码非常容易,因为我使用了蒙大拿州94涂鸦,并且十六进制和RGB代码在他们的网站上。
我为网站的每一页创建了高保真线框,因此我知道很好,我打算如何创建此界面。向老师展示我的界面后,我得到了建议,使背景稍微偏灰,按钮变为白色,我认为效果很好。
步骤3:创建数据库
下一个逻辑步骤是开始考虑我要在MySQL数据库中存储哪些数据。没有太多人喜欢知道它们的真空度,因此我使用了用户表和他们的登录数据,以及传感器表(电池,距离和灰尘容器)。
图像向您显示了在MySQL Workbench中绘制的表的布局以及表之间的所有关系。
对于我的用户,我想跟踪他们的姓名和姓氏,以个性化界面和电子邮件。当然要发送电子邮件,我也需要他们的电子邮件地址。我还添加了一个表格来跟踪用户的电子邮件首选项(无论他们是否愿意接收电子邮件)。我要存储的关于用户的最后一件事是用户在设备中的角色。我将用户分为管理员和普通用户。管理员有权在系统中添加,删除和管理用户,而普通用户则不能访问这些工具。
下表包含“ deviceruns”,它们是设备实际执行的操作。设备运行由某个用户(开始运行的人员)拥有,并具有开始时间和结束时间来计算运行时间。
另一个表用于将sensordata链接到每个设备运行。传感器本身存储在另一个表中,其中包含它们的ID,名称和描述。
步骤4:将零件连接在一起
创建数据库方案后,我开始使用面包板和布线将所有零件连接在一起,并成为一个可用的原型。
第5步:设置Raspberry Pi
要下载Raspbian的最新图像,请访问Raspbian网站。在这里,您可以选择要下载的发行版。为了更快地操作,您可以下载无头发行版,以减少RAM使用量,或者如果您更喜欢图形用户界面,则可以使用GUI下载桌面。
要安装操作系统,只需下载Etcher,它是一个GUI。
要启用无头模式,以便可以访问pi,则需要在计算机上安装Putty。下一步是转到由Etcher创建的Boot文件夹,并使用您喜欢的文本编辑器(例如Programmers Notepad)打开文件cmdline.txt。将此文本添加到文件末尾:
ip=169.254.10.1
只需确保不创建新行,将此文本添加到该行末尾即可!
接下来,返回到Boot文件夹的根目录,并创建一个名为 ssh 的文件。请勿添加任何扩展,这将确保每次启动Pi时都启动SSH服务器。现在,只需将SD卡放入Pi中,为Pi连接足够的电源,并在Pi和计算机之间添加以太网电缆即可。
打开腻子,然后输入IP地址:169.254.10.1 。现在,单击“是”并登录,默认用户名是 pi ,密码是 raspberry。
下一步,执行以下命令以获取最新信息。 -date:
sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y
最后一步是在Raspberry Pi上创建虚拟Python解释器,这将执行您的代码。为此,只需打开腻子并键入以下内容:
sudo mkdir project1
cd project1
python3 -m pip install --upgrade pip setuptools wheel virtualenv
python3 -m venv --system-site-packages venv
步骤6:编写Web应用程序
连接每个部分并设置Raspberry Pi之后,我开始使用Flask和Jinja2编写主要的Web应用程序。 Flask是用于Python的易于使用的后端框架,而Jinja2是我使用的模板语言。借助Jinja,您可以使用for循环,if结构等创建普通的HTML文件。
在编码后端时,我还为应用程序编写了前端,包括一些HTML,CSS和JavaScript元素。我在样式表中使用了ITCSS方法和BEM表示法。
除了主要的Web应用程序之外,我还创建了另外两个主要程序。编写一个将设备的IP地址发送给列表中的用户。每个已接受接收电子邮件的注册用户,都会收到一封带有启动Web界面链接的邮件。该程序作为systemd服务运行。
另一个主文件用于实际设备。可通过我的Flask应用程序调用该主管道,以启动和停止设备并收集数据。收集的数据也通过该主接口上传到设备的数据库。然后可以在Web应用程序中查看此数据。
Web应用程序通过Python Threading连接到主运行设备。当用户单击开始按钮时,将生成一个线程以在后台运行设备。同时,用户可以完美浏览该应用程序。单击“停止”时,该线程将停止,因此设备也将停止。
步骤7:创建零件以完成套管
在编写了应用程序的大部分内容之后,我开始修改设备外壳,这样我的传感器和其他零件就可以实际安装了。为此,我在当地的DIY商店买了一块聚氨酯,然后开始切割2个支架。我使用了这种聚氨酯薄片,因为它在切割时不易碎成碎片,并且因为它相当柔韧性,因为我的机器人是圆形的,所以非常完美。
第一个托架被制成可以填充顶部有个孔,以前的显示器可以放在这里。我用一个开/关开关替换了显示器,以便可以实际上关闭电池。
另一个支架是我的HC的支撑架。 -SR04超声波传感器位于设备的前面。
剩下要做的最后一件事是在一个车轮的加强件上切出一个孔,并插入一块磁铁,以便我可以监视车轮的旋转。
完成这些支架之后,我还用剩下的油漆对其进行了喷涂,以使其适合设计。
第8步:代码
要安装该程序,请下载文件code.zip,然后将其解压缩到project1目录中。
下一步,在Raspbian或Putty上的终端:
sudo cp project1/conf/project-1* /etc/systemd/system/
sudo cp project1/conf/project1-* /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable project-1*
sudo systemctl enable project1*
sudo systemctl restart nginx
责任编辑:wv
-
传感器
+关注
关注
2550文章
50937浏览量
752750 -
互联网
+关注
关注
54文章
11134浏览量
103158 -
树莓派
+关注
关注
116文章
1704浏览量
105587
发布评论请先 登录
相关推荐
评论