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

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

    关注

    2550

    文章

    50937

    浏览量

    752750
  • 互联网
    +关注

    关注

    54

    文章

    11134

    浏览量

    103158
  • 树莓派
    +关注

    关注

    116

    文章

    1704

    浏览量

    105587
收藏 人收藏

    评论

    相关推荐

    树莓传感器使用方法 树莓 Raspberry Pi 4优缺点

    开发和物联网应用。以下是一些基本的树莓传感器使用方法: 1. 连接传感器 GPIO引脚 :
    的头像 发表于 12-06 10:35 242次阅读

    树莓网关:物联网应用的新标杆

    的特点是体积小巧(大约信用卡大小),但功能齐全,足以支持多种计算任务。 树莓经常被用作物联网网关,收集设备
    的头像 发表于 10-09 16:44 276次阅读
    类<b class='flag-5'>树莓</b><b class='flag-5'>派</b>网关:物<b class='flag-5'>联网</b>应用的新标杆

    传感器互联网时代的产物吗

    访问存储、处理和分析数据的能力,而不需要直接管理底层硬件。 传感器技术本身有着悠久的历史,可以追溯到19世纪甚至更早。然而,将传感器与云计算结合,形成所谓的“云传感器”系统,确实是
    的头像 发表于 09-07 11:01 566次阅读

    工业互联网系统的组成

    工业互联网系统通常由以下几个关键组成部分构成: 设备传感器:这是工业互联网的基础,包括各种机械设备、生产工具、智能
    的头像 发表于 07-28 16:42 924次阅读

    如何将多个ESP连接到一个ESP并向服务发送数据

    。 该站模式 ESP 连接传感器。所有这些站模式 esp 收集传感器数据并将数据发送到主 es
    发表于 07-19 06:49

    ESP8266无法连接到互联网是怎么回事?

    您好,我更改了路由上的频道,现在我的ESP8266无法连接到互联网。它仍然连接到本地网络,但即使将路由切换回原始频道也无法解决我的问题。
    发表于 07-16 06:14

    esp8266已连接到Wifi但无法连接到互联网,为什么?

    首先,我想说对不起,如果我的帖子在错误的线程中。在那之后,我想问一个问题,我的 esp12E 已连接到 Wifi,但它无法连接到互联网,即使 wifi 连接到
    发表于 07-09 07:11

    工业互联网数据中台是什么

    对接各种数据源,包括生产设备传感器、业务系统等。 具体来说,工业互联网数据中台的主要功能包括: 1.
    的头像 发表于 07-03 16:34 401次阅读

    工业互联网平台的功能和作用

    方面: 1. 设备连接与管理:将不同类型的设备传感器和控制系统连接到互联网上,实现
    的头像 发表于 06-07 09:33 1258次阅读

    传感器的工业互联网时代

    来源:传感器技术,谢谢 编辑:感知芯视界 Link 工业互联网 工业互联网的最早概念来自于美国,工业互联网时代,通过万物互联的方法,将生产
    的头像 发表于 05-23 09:24 323次阅读

    工业互联网与mes系统

    工业互联网(Industrial Internet of Things, IIoT)是指通过互联网将各种工业设备传感器、控制系统和软件应用连接
    的头像 发表于 05-13 09:34 390次阅读

    工业互联网和ERP的关系

    工业互联网和ERP有密切的关系。工业互联网是指将各种工业设备传感器设备连接到
    的头像 发表于 05-08 14:06 442次阅读

    ​13种值得关注的物联网传感器

    解决方案的支柱——物联网传感器。 物联网传感器:物联网解决方案的支柱 物联网
    的头像 发表于 04-13 08:42 307次阅读

    工业互联网平台是什么

    融合,以实现工业设备、系统和过程的智能化连接、管理和优化。工业互联网平台的主要功能包括设备连接数据
    的头像 发表于 03-28 15:38 1585次阅读

    无线传感器如何联网?无线传感器如何通信?

    无线传感器如何联网?无线传感器如何通信? 无线传感器联网和通信是指利用无线技术将传感器节点
    的头像 发表于 12-15 10:10 2229次阅读