内容已经转出,请移步以下网址:

https://viadean.notion.site

Raspberry Pi 托管 Flask 网络服务器控制设备

 二维码 66
文章附图

让我们创建一个简单的物联网服务器来控制家里的东西

Flask之所以称为微框架,是因为它不需要特定的工具或库。 它没有数据库抽象层,表单验证或任何其他现有的第三方库提供公用功能的组件。 但是,Flask支持可以添加应用程序功能的扩展,就好像它们是在Flask本身中实现的一样。

在本教程中,我们将使用Raspberry Pi作为本地Web服务器,在这里我们将通过一个简单的网页进行控制,将其3个GPIO编程为输出(充当执行器),并监视2个GPIO编程为输入(传感器)。

上面的框图显示了我们要完成的工作

安装FLASK并设置RPi网络服务器

Flask安装

首先要做的是在Raspberry Pi上安装Flask。转到终端并输入:

sudo apt-get install python3-flask

启动新项目时最好的方法是创建一个文件夹,用于组织文件。例如:

mkdir rpiWebServer

上面的命令将创建一个名为“ Server”的文件夹。在那里,我们将保存我们的python文件(应用程序):

/home/pi/Documents/Server

在此文件夹中,我们创建另外两个子文件夹:用于CSS的静态子文件夹,以及最终用于HTML文件的JavaScript文件和模板(或更准确地说,是Jinja2模板。但不要担心)。转到新创建的文件夹:

cd rpiWebServer

并创建2个新的子文件夹:

mkdir static

mkdir templates

最终的文件夹“ tree”如下所示:

/rpiWebServer
   
/static
   
/templates

Python 网络服务器应用程序

现在,让我们用Flask创建第一个python网络服务器:

  • 打开您的Python3 IDE,Thonny或Geany
  • 将下面的“ Hello Word”代码复制到您的IDE上,并将其保存为例如helloWorld.py

from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
   
return 'Hello world'
if __name__ == '__main__':
    app.run(debug=
True, port=80, host='0.0.0.0')

创建服务器网页

硬件原理图

读取GPIO状态

Python脚本

控制GPIO

Python脚本

集成传感器和执行器

使用模板

完整源代码

阅读完整文档