1. 项目概述与环境搭建:了解温室监控项目需求,安装Python与必要的库

各位同学,咱们今天正式开始这门课。说实话,每次带新项目,我最怕的就是一上来就敲代码。你连项目要干啥都没搞清楚,写出来的代码十有八九要返工。所以,咱们先花点时间,把温室监控这个项目彻底聊透。

1.1 这个项目到底要做什么?

想象一下,你是一个温室管理员。你关心什么?

  • 温度别太高,也别太低——作物会死
  • 湿度要合适——太干太湿都不行
  • 光照得够——植物要光合作用
  • 土壤别太干——根会渴死

嗯,说白了,就是四个核心指标:温度、湿度、光照强度、土壤湿度

那咱们这个项目要干啥?

  • 实时显示:在网页上看到当前的数据,比如“现在温度28.5°C”
  • 历史记录:过去24小时、一周的数据都能查
  • 数据可视化:画个折线图,一眼看出趋势
  • 报警功能:温度超过35°C,系统得提醒你

我个人习惯,做项目前先画个简单的功能脑图。你想想看,如果连需求都没理清,后面改代码改到崩溃是常有的事。

项目核心功能一览:
✅ 传感器数据采集(模拟数据)
✅ 数据存储(SQLite数据库)
✅ Web实时显示(Flask框架)
✅ 历史数据查询(按时间筛选)
✅ 数据可视化(Matplotlib生成图表)
✅ 阈值报警(超限提醒)

1.2 为什么选这些工具?

你可能要问:老师,为啥用Flask不用Django?为啥用SQLite不用MySQL?

我跟你讲,选工具要看场景。咱们这个项目,说白了就是个轻量级的监控系统,不需要复杂的用户权限管理,也不需要高并发。Flask就够用了,轻巧灵活。我在项目中遇到过用Django做小项目的情况,配置起来那叫一个繁琐,杀鸡用牛刀了属于是。

至于SQLite,它就是个文件数据库,不需要单独安装数据库服务。你想想看,温室里可能就一台树莓派或者旧电脑在跑,装个MySQL多费劲。SQLite直接读写文件,简单粗暴,够用。

Matplotlib呢,是Python里最成熟的绘图库。虽然有人说它丑,但功能是真的强。咱们后面会用它画温度曲线、湿度柱状图,效果还不错。

1.3 环境搭建:一步一步来

好,理论说完了,咱们动手。先把Python装上。

第一步:安装Python

我建议你用Python 3.8以上版本。为什么?因为3.8以下有些库的兼容性不太好,我踩过这个坑。

  • Windows用户:去python.org下载安装包,记得勾选“Add Python to PATH”
  • Mac用户:用Homebrew安装,命令是 brew install python3
  • Linux用户:sudo apt install python3 python3-pip

装完之后,打开终端(Windows叫命令提示符),输入:

python --version

如果看到类似 Python 3.9.7 这样的输出,说明装好了。

💡 小技巧: 我习惯用虚拟环境来隔离项目。每个项目一个独立环境,互不干扰。命令是:
python -m venv venv
然后激活:Windows用 venv\Scripts\activate,Mac/Linux用 source venv/bin/activate

第二步:安装必要的库

咱们需要三个核心库:Flask、SQLite(Python自带)、Matplotlib。

SQLite不用装,Python标准库自带。你只需要装Flask和Matplotlib:

pip install flask
pip install matplotlib

如果你用的是虚拟环境,记得先激活再安装。

装完之后,验证一下:

python -c "import flask; print(flask.__version__)"
python -c "import matplotlib; print(matplotlib.__version__)"

没有报错,就说明装好了。

⚠️ 注意: 我曾经遇到过pip安装超时的问题,尤其是Matplotlib比较大。解决方案有两个:
1. 换国内镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib
2. 或者用梯子,你懂的。

1.4 项目目录结构

嗯,这里要强调一下。很多新手喜欢把所有文件堆在一个文件夹里,看着就头疼。我建议你从一开始就建立清晰的目录结构:

greenhouse_monitor/
├── app.py              # Flask主程序
├── database.py         # 数据库操作
├── sensor.py           # 模拟传感器数据
├── templates/          # HTML模板文件夹
│   └── index.html      # 主页面
├── static/             # 静态文件
│   └── style.css       # 样式文件
└── data/               # 数据库文件存放
    └── greenhouse.db   # SQLite数据库文件

你想想看,这样分门别类,以后找文件多方便。我在项目中见过那种几千行代码写在一个文件里的,维护起来简直是噩梦。

1.5 第一个测试:跑通Flask

咱们先写个最简单的Flask应用,验证环境没问题。

新建一个文件叫 app.py,输入以下代码:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return "温室监控系统启动成功!"

if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=5000)

然后在终端运行:

python app.py

打开浏览器,访问 http://127.0.0.1:5000,如果看到“温室监控系统启动成功!”,恭喜你,环境搭建完成!

💡 解释一下:
debug=True 表示调试模式,代码改了自动重启,省得你手动刷新。
host='0.0.0.0' 表示允许局域网内其他设备访问,方便你用手机测试。
port=5000 是端口号,你可以改成别的,比如8080。

1.6 避坑指南

最后,分享几个我踩过的坑:

  • 端口被占用:有时候5000端口被其他程序占了,换个端口就行,比如5001
  • 中文乱码:Python文件头部加上 # -*- coding: utf-8 -*-
  • Matplotlib中文显示问题:默认字体不支持中文,后面我会教你怎么设置
  • 虚拟环境忘激活:装了库但导入报错,八成是没激活虚拟环境

好了,环境搭建就到这里。下一章咱们开始写传感器数据模拟和数据库操作。记住,基础打牢了,后面才能跑得快。