这是一个基于Flask的Web应用,用于远程控制ESP8266继电器,并包含用户认证功能。
- 🔐 用户登录认证
- 🎛️ 继电器远程控制(开启/关闭)
- 📊 实时状态监控
- 📱 响应式Web界面
- 🔒 会话管理
pip install -r requirements.txtpython app.py应用将在 http://localhost:25556 启动。
- 用户名:
admin - 密码:
admin123
- 访问
http://localhost:25556 - 系统会自动跳转到登录页面
- 使用默认凭据登录
- 登录后可以控制继电器和查看状态
在 config.json 文件中修改 esp_url 字段:
{
"esp_url": "http://你的ESP8266的IP地址:端口"
}用户信息现在存储在 config.json 配置文件中,而不是硬编码在程序中。你可以使用提供的用户管理脚本来管理用户:
# 交互模式
python user_manager.py
# 命令行模式
python user_manager.py add <用户名> <密码> [显示名]
python user_manager.py delete <用户名>
python user_manager.py password <用户名> <新密码>
python user_manager.py list你也可以直接编辑 config.json 文件:
{
"users": {
"admin": {
"password": "240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9",
"name": "管理员"
},
"user1": {
"password": "ef92b778bafe771e89245b89ecbc08a44a4e166c06659911881f383d4473e94f",
"name": "用户1"
}
},
"esp_url": "http://192.168.10.21:25555"
}注意: 密码字段是SHA256哈希值,不是明文密码。
- 密码使用SHA256哈希存储
- 所有控制接口都需要登录验证
- 会话使用随机密钥加密
GET /- 主控制页面(需要登录)GET /login- 登录页面POST /login- 登录处理GET /logout- 登出GET /control/<cmd>- 控制继电器(需要登录)GET /status- 获取状态(需要登录)
- 确保ESP8266设备在指定IP地址上运行
- 网络连接稳定以确保正常通信
- 建议在生产环境中使用数据库存储用户信息
本项目包含ESP8266硬件控制器,详细说明请参考:
- ESP8266_README.md - ESP8266硬件配置和使用说明
- 按照 ESP8266_README.md 配置硬件
- 上传
esp8266_http.ino到ESP8266 - 记录ESP8266的IP地址
- 在
config.json中配置ESP8266地址 - 运行Flask应用进行控制