一个小台灯

news2025/8/12 16:02:58

22年11月填旧坑

项目地址:myhome: 服务器终端和微信小程序 (gitee.com)

物联网台灯小项目——ILamp

1、主要硬件,STM32,ESP8266;

2、3D打印的外壳,淘宝金属灯杆、灯罩、配重块;

3、喷涂了白色油漆外观,颜值8/10;

4、小程序+web后台。

5、台灯mqtt连接到服务器。服务器使用mosquitto,搭配python的django转发台灯的状态和控制给微信小程序。用户使用微信小程序和台灯交互;

6、一个电容触摸开关;

7、提供三个USB接口的USB HUB;

8、共3块PCB;

9、添加protobuf协议;

10、提供一个光敏电阻,还未开发;

在这里插入图片描述

在这里插入图片描述

硬件

主控:STM32F042F4P6

联网:ESP-12S

稳压:RT9013-33GB

DC:LM2596S-3.3

灯珠:80~90Lm LED 冷暖光两种

日志——22.11.18

目前进度:

1、解决台灯触摸误触问题;

2、台灯联网运行一段时间后MQTT连接数据异常问题;

3、微信小程序实现用户注册、设备联网、引导添加设备、不同设备的不同控制协议;

4、后台需要实现用户数据库(用户信息,设备信息)、web前端、后台管理;

日志——22.11.18 微信你小程序绑定用户和设备

问题:设备初始化时需要联网,需要知道自己和哪一个用户ID绑定

拓展:可以使用ESP8266的AP模式,即ESP8266模拟一个WIFI,手机连接到WIFI后使用TCP Scoket进行通信。

参考:3、ESP8266入门(AT模式)——手机与ESP8266通信(AP模式)_haichuangdianzi的博客-CSDN博客_esp8266与手机通信

1、用户首次开机,单片机查找flash标志位,是初次使用,进入激活程序;

2、激活程序下面将ESP8266设置成AP模式,开放wifi和192.168.4.1的5050端口;

3、手机打开wifi连接到esp8266,然后使用微信提供的tcp接口连接到指定的IP端口,实现通信;

参考:TCPSocket | 微信开放文档 (qq.com) 以及 微信小程序创建tcp连接 - 简书 (jianshu.com)

4、通信时,不可以退出微信小程序,使用离线下的模式来将数据发送给ESP8266完成激活;

5、如果防呆模式激活,用户不需要操作数据,一键激活。

日志——22.11.18 后端记录用户数据

问题:解决用户注册登录,Django需要将用户数据存储起来并且将设备和用户绑定起来

1、这里可以使用Django自带的数据库即可,不需要多复杂;Django自带的数据是sqlite3;

在Django的setting.py文件中已经做好了设置:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

参考以前的文章:使用python建立一个网站:笔记4 操作django自带的数据库sqlite_田小呱的博客-CSDN博客

日志——22.11.18 protobuf数据传输和存储

问题:单片机的用户数据等信息保存在flash上,保存数据的格式使用protobuf,传输数据的结构也使用protobuf格式

参考:

python中使用 protocol buffer(Protobuf)_whatday的博客-CSDN博客

————未完待续

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pytorch深度学习实战lesson20

第二十课 卷积层的多输入和多输出通道 目录 理论部分 多输入通道 多输出通道 实践部分 理论部分 多输入通道 假设图片大小是200*200的话,那么用张量表示这个图片的话就是200*200*3,因为彩色图片是由红、绿、蓝三个通道构成的,因此表示一…

看完这套Java笔记,才明白笔者同时斩获7份大厂offer是有原因的!

不知道各位程序员朋友有没有做笔记的习惯?不过,我觉得大家还是蛮喜欢收藏笔记的,嘿嘿,我也是。 前几天恰好看到一篇文章,里面详细罗列了关于Java的所有知识点。看目录,是从Jvm开始,再讲集合、多…

PHP使用阿里云对象存储oss

目录 1.使用composer安装依赖 2.编写代码 3.调用 4.遇到问题 (1) 上传成功 访问发现没有权限 (2) 接着访问,发现直接下载 (3) 上传文件 发现文件内容是空 5.自定义域名上传文件 (1) 配置: (2) 代码修改 1.使用composer安装依赖 composer requ…

技术笔记Android应用MediaPipe(一):Windows安装MediaPipe

一、MediaPipe概述 MediaPipe提供跨平台,为实时流媒体提供自定义的机器学习解决方案的应用框架。MediaPipe的主要特点: (1)端对端的加速:内置快速机器学习推理和处理,使得在普通硬件中也能加速使用。 &…

电瓶车、汽车智慧充电站可提高运营利润,缩短投资回收周期!

安科瑞 李可欣 具体可咨询:Acrel_lkx 需求分析 传统充电站现状 充电站用户需求 建设智慧充电站,解决传统充电站痛点 安科瑞充电站解决方案 保障配电可靠,解决运维难的问题,降低人力成本 确保用电安全,及时切除隐患…

数云融合丨重构传统商贸数字化解决方案

随着5G技术的高速发展,我们迎来了数字化的新阶段,中国也正在加快步入新的消费时代。 数字化的发展带来的多元下消费力的提升,让传统商贸行业迎来数字化产业升级的十字路口,今天我们就来聊一聊数字化对传统商贸的重构。 传统商贸面…

LQ0204 振兴中华【递归】

题目来源:蓝桥杯2013初赛 C A组C题 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小明参加了学校的趣味运动会,其中的一个项目是:跳格子。 地上画着一些格子,每个…

这些编程语言你需要了解一下

2022 年最受欢迎的语言 1、Python Python 位居 2022 年最受欢迎的语言榜首,并且鉴于多种原因成为最适合学习的编程语言之一。Python 是一种通用的服务器端编程语言,可用于从简单的脚本和自动化到复杂的 Web 应用程序和人工智能的许多方面。此外&#xf…

电科大离散数学-3-谓词逻辑-1

目录 3.1 谓词的引入 3.1.1 个体词 3.1.2 谓词 3.1.3 复合命题的谓词符号化 3.2 量词的引入 3.2.1 量词 3.2.2 谓词逻辑符号化的两条规则 3.2.3 量词相关的真值确定 3.2.4 谓词翻译和真值 3.2.5 个体域有限的情况 3.3 谓词符号化举例 3.3.1 谓词逻辑符号化示例一 …

gdb调试的插件安装——gef插件

以下博客中的链接都是大佬们提供的链接 gef插件源地址:https://github.com/hugsy/ 根据要求: gdb必须得8.0以上,python得3.6以上,但是一般裸机的gdb都是7.2,python是2.7。我们需要下载更高版本的gdb和python 先将系统…

15、volume

Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留。本质上,Kubernetes Volume 是一个目录。当Volume被mount到Pod,Pod中的所有容器都可以访问这个Volume。Kubernetes Volume 也支持多种 backend 类型…

菊风入选2022·爱分析保险科技厂商报告,为保险行业数智化转型赋能

随着数字化转型加速及大数据、人工智能等技术的日益精进,保险公司纷纷布局互联网赛道,采取“保险”与“科技”相结合的双引擎战略,赋予客户更快“速度”更暖“温度”的服务体验。可以说,保险科技作为保险和科技融合创新的成果与生…

如何给视频加水印标记?分享三个好用方法给你

现在给视频加水印已经不再单单是起到一个防盗的作用了,还可以是标明视频的出处或者著作权,甚至是打广告等作用,尤其是要上传到一些视频网站的视频,更应该打上自己专属的水印。那你们知道怎么给视频加水印吗?还不知道的…

Git commit校验工具commitlint的配置与使用

前端环境要求 node: 16.x npm: 8.x Tip:npm版本须大于等于 7.24.2,过低的话可能会导致下面有的命令无法使用,需要手动在 package.json 中自行设置。 工具 husky 操作 git 钩子的工具 commitlint commit 信息校验工…

[附源码]java毕业设计农贸产品交易系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【freeRTOS】操作系统之六-低功耗模式

六,低功耗模式 本章节为大家讲解 FreeRTOS 本身支持的低功耗模式 tickless 实现方法,tickless 低功耗机制是当前小型 RTOS 所采用的通用低功耗方法,比如 embOS,RTX 和 uCOS-III(类似方法)都有这种机制。ti…

深度学习 Day 19——数据增强

深度学习 Day 19——数据增强 文章目录深度学习 Day 19——数据增强一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、加载数据3、配置数据集并进行归一化处理4、可视化数据四、数据增强五、数据增强方式1、将其签入model中2、在Dataset数据集中进行数据增强六、编译…

【金融】经济崛起之中的东南亚

由于全球范围内的重大危机事件,经济贸易摩擦加剧,地区局势动荡不安,全世界主要经济体的经济发展都受到了极大的冲击,但东南亚地区却在这一全球衰退的背景之下给出了即为亮眼的经济表现。东盟国家近年来保持着较高的经济增速&#…

792. 匹配子序列的单词数 : 常规预处理优化匹配过程

题目描述 这是 LeetCode 上的 792. 匹配子序列的单词数 ,难度为 中等。 Tag : 「二分」、「哈希表」 给定字符串 s 和字符串数组 words, 返回 words[i] 中是 s 的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串,可以从中删去…

初学者设计PCB,如何检查光绘文件的断头线

设计一款完整的PCB线路板,需要经过很多个繁琐而且复杂的工序。一般主要包括明确产品需求、硬件系统设计、器件选型、PCB绘制、PCB生产打样、焊接调试等步骤。 一般设计师都会有自己积累的设计质量检查清单,其中的条目部分来源于公司或部门的规范、另一部…