亚图跨际
国际版https://viadean.notion.site

Raspberry Pi 托管 Flask 网络服务器使用SQLite存储数据和Matplotlib绘制图形

 二维码 96

背景知识视频教程

捕获真实数据(RPi / DHT22),将它们保存在数据库(SQLite)中,创建图形(Matplotlib)并将其显示在网页上(Flask)。

使用Flask在Raspberry Pi上构建物联网服务器,我们学习了如何使用Flask构建的Web前端页面与物理世界进行交互。 因此,下一个自然是从现实世界中收集数据,并在网页上将其提供给我们。 很简单! 但是,如果我们想知道前一天的情况会怎样? 怎么用这些数据进行某种分析? 在这种情况下,我们必须将数据也存储在数据库中。

简而言之,在这个新教程中,我们将

  • 使用DHT22传感器捕获实际数据(气温和相对湿度)
  • 将这些数据加载到使用SQLite构建的本地数据库中
  • 使用Matplotlib创建历史数据图形
  • 用JustGage创建的动画“量具”显示数据
  • 通过使用Python和Flask创建的本地网络服务器在线提供所有内容

框图使我们对整个项目有一个了解

安装SQLite

通常的想法是从传感器收集数据并将其存储在数据库中。

但是应该使用哪种数据库“引擎”?

市场上有很多选择,并且与Raspberry Pi和传感器一起使用最多的2种是MySQL和SQLite。 MySQL是众所周知的,但是在基于简单Raspberry的项目中使用时有点“繁重”。 在这里,SQLite可能是最合适的选择,因为它是无服务器的,轻量级的,开源的并且支持大多数SQL代码(其许可证是“公共域”)。 另一个方便的事情是,SQLite将数据存储在单个文件中,该文件可以存储在任何地方。

但是,什么是SQLite?

SQLite是C编程库中包含的关系数据库管理系统。与许多其他数据库管理系统相比,SQLite不是客户端服务器数据库引擎。而是将其嵌入到最终程序中。

SQLite是一种流行的公共领域选择,它是用于在Web浏览器等应用程序软件中本地/客户端存储的嵌入式数据库软件。 可以说,它是部署最广泛的数据库引擎,因为当今它被数个广泛的浏览器,操作系统和嵌入式系统(例如移动电话)使用。 SQLite绑定了许多编程语言,例如Python,这是我们项目中使用的一种编程语言。

安装

请按照以下步骤创建数据库。

创建并填充表

为了将DHT传感器测得的数据记录在数据库中,我们必须创建一个表(一个数据库可以包含多个表)。 我们的表将被命名为“ DHT_data”,并将有3列,我们将在其中记录收集的数据:日期和时间(列名称:时间戳),温度(列名称:temp)和湿度(列名称:hum)。

创建表

要创建表,可以做到:

  • 直接在SQLite Shell上,或
  • 使用Python程序

使用Shell

使用Python

在表上插入数据

使用Python插入和验证数据

DHT22温湿度传感器

安装DHT库

捕捉真实数据

自动捕捉数据

询问数据库

在表上输入的最后数据

Web前端数据可视化

创建Web服务器环境

Python网络服务器应用程序

制作前端显示

完整处理过程

图形化历史数据

历史网页上包括量具

按时间检索数据

阅读完整文档