0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用树莓派创建连接到互联网的设备并从传感器收集数据

454398 来源:网络整理 作者:网络整理 2019-11-25 16:09 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2577

    文章

    55445

    浏览量

    793725
  • 互联网
    +关注

    关注

    55

    文章

    11350

    浏览量

    110431
  • 树莓派
    +关注

    关注

    122

    文章

    2081

    浏览量

    110749
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索XENSIV™ 连接传感器套件:开启快速物联网体验

    详细了解一下这个套件。 文件下载: Infineon Technologies XENSIV™ BGT60TR13C联网传感器套件.pdf 套件概述 XENSIV™ 连接传感器套件旨在
    的头像 发表于 12-20 16:20 1246次阅读

    工业互联网平台与工业物联网平台有什么区别

    ): 聚焦于工业设备传感器等物理对象的数字化连接数据采集,通过物联网技术实现设备状态监测、远
    的头像 发表于 09-24 11:47 771次阅读

    基于树莓(RaspberryPi)构建高效实时监控系统

    由于树莓体积小、可开发性强等特性,常被用于视频监控场景中,结合 ZeroNews,可实现用户在任意位置都能实时安全得访问视频监控系统。 先决条件:树莓正常
    的头像 发表于 09-22 15:14 1591次阅读
    基于<b class='flag-5'>树莓</b><b class='flag-5'>派</b>(RaspberryPi)构建高效实时监控系统

    如何搭建高效的树莓NAS?完整安装与配置指南!

    树莓网络附属存储网络附属存储(NAS)是一种专用设备或系统,它为网络内的数据存储和管理提供了一个集中位置。与传统通常直接连接到单台计算机的
    的头像 发表于 08-13 17:45 2161次阅读
    如何搭建高效的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>NAS?完整安装与配置指南!

    树莓5上,如何使用毫米波雷达检测和追踪人类?

    在本指南中,我们将学习如何将RD-03D雷达传感器添加到树莓单板计算机上,以便实时检测和追踪人类。我们将了解该传感器的工作原理及可获取的数据
    的头像 发表于 07-24 15:32 2650次阅读
    在<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5上,如何使用毫米波雷达检测和追踪人类?

    树莓WiFi设置终极指南:分步方法与故障排除技巧!

    树莓主板的一大关键特性是其能够连接无线网络,这使得无需物理网线即可实现远程访问、数据传输和互联网连接
    的头像 发表于 07-10 16:18 2320次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>WiFi设置终极指南:分步方法与故障排除技巧!

    树莓微型摄像头模块3传感器组件发布!封装再瘦身助力工业设备微型化视觉集成!

    更小的设备中。为满足这些客户需求,树莓摄像头模块3传感器组件现已作为独立产品上市,起售价仅为$15。树莓
    的头像 发表于 07-08 12:10 1675次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>微型摄像头模块3<b class='flag-5'>传感器</b>组件发布!封装再瘦身助力工业<b class='flag-5'>设备</b>微型化视觉集成!

    你真的懂树莓5嘛?树莓5引脚图全面指南:理解GPIO引脚及其功能!

    树莓5上的GPIO通用输入/输出(GPIO)引脚是树莓派上的物理连接器,允许树莓
    的头像 发表于 07-04 15:27 3802次阅读
    你真的懂<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5嘛?<b class='flag-5'>树莓</b><b class='flag-5'>派</b>5引脚图全面指南:理解GPIO引脚及其功能!

    精通远程控制:借助树莓释放 SSH 的强大功能!

    什么是SSH?我们如何利用SSH连接到树莓、对其进行监控并执行其他任务?注意:文章链接可能需要科学上网。通过SSH连接到树莓
    的头像 发表于 06-27 15:26 1174次阅读
    精通远程控制:借助<b class='flag-5'>树莓</b><b class='flag-5'>派</b>释放 SSH 的强大功能!

    树莓小技巧:无需键盘或显示,如何通过WiFi设置树莓

    树莓是一款小巧便携的USB供电计算机,可以隐藏起来用于小型项目,如网络服务或家庭自动化。通常,设置树莓需要键盘和显示
    的头像 发表于 06-26 15:41 1818次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>小技巧:无需键盘或显示<b class='flag-5'>器</b>,如何通过WiFi设置<b class='flag-5'>树莓</b><b class='flag-5'>派</b>?

    树莓实现自动感应照明:PIR传感器教程!

    一个快速项目,将PIR传感器树莓进行接口连接。本项目所用组件硬件组件树莓2x1被动红外(P
    的头像 发表于 06-21 20:32 1660次阅读
    用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>实现自动感应照明:PIR<b class='flag-5'>传感器</b>教程!

    联网的应用范围有哪些?

    与及时维护,提高医院的运营效率。 农业生产:智慧农业利用物联网实现精准种植与养殖。在农业种植中,传感器收集土壤湿度、养分含量、气象等数据,帮助农民科学灌溉、施肥,提高农作物产量与质量。
    发表于 06-16 16:01

    树莓分类:用树莓识别不同型号的树莓

    在本教程系列的第一部分中,您将学习如何使用树莓AI摄像头来检测不同的树莓型号。本系列由DavidPlowman创建,他是
    的头像 发表于 06-13 16:39 1511次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b>分类<b class='flag-5'>器</b>:用<b class='flag-5'>树莓</b><b class='flag-5'>派</b>识别不同型号的<b class='flag-5'>树莓</b><b class='flag-5'>派</b>!

    树莓 VPN 服务搭建指南(2025版):守护您的在线隐私!

    VPN服务(虚拟专用网络服务)是一种系统,允许设备通过互联网安全地连接到私有网络。它在客户端(如您的笔记本电脑或手机)与服务
    的头像 发表于 05-16 15:31 4746次阅读
    <b class='flag-5'>树莓</b><b class='flag-5'>派</b> VPN 服务<b class='flag-5'>器</b>搭建指南(2025版):守护您的在线隐私!

    解锁树莓集群:一步步打造你的超级计算阵列!

    树莓集群简介树莓集群是由多台联网树莓计算机组
    的头像 发表于 04-25 16:17 2938次阅读
    解锁<b class='flag-5'>树莓</b><b class='flag-5'>派</b>集群:一步步打造你的超级计算阵列!