- 博客(13)
- 收藏
- 关注
原创 IOT终端设备-门磁传感器设计
选择门磁传感器作为智能家居系统的第一款设备,主要有以下几个方面的考虑.功能简单:目前主要构想通过门磁传感器来检测冰箱门是否长时间未关闭 而产生警报物料简单:目前市面上可以各种门磁提供选择开发简单:目前门磁传感器主要可以通过IO来接入,不需要协议上的对接,这样可以大程度上减少前期的开发时间。
2024-04-19 11:17:22
404
2
原创 ESP8266开发中遇到坑汇总
目前想要自己搭建一套智能家具系统,在终端设备的数据上报以及控制下发的需求中,选中了使用ESP8266作为终端设备传输数据和实现逻辑的芯片.主要的考量是:ESP8266是WIFI芯片,可以比较简单的接入到自己部署的服务器中,来进行数据传输.如果使用蓝牙或其他无线信号获取数据传输接口,则需要额外采用网关(数据转网络数据)传输,使得开发的工作量增加.所以选择了ESP8266开发环境:操作系统:Ubuntu22.04编辑软件:Vscode编译烧录工具:官方工具链。
2024-04-19 10:40:07
804
原创 智能家居网关总体架构
本架构设计采用多进程,功能解耦的模块化架构,每个模块是一个可运行的二进制执行文件(bin),基于C++语言进行开发,模块化的好处是工程师可以根据接口定义进行独立/协同开发,模块之间通过长连接进行通信,降低甚至不使用第三方库的依赖,以达到程序的通用型和安全性,支持部署到包含AR502 lxc容器/自研网关和任何运行linux的其他网关,也支持跨网关分布式组网部署;Redis是开源内存数据库组件,采用C语言编写,运行速度快,可提供订阅发布的消息机制,且redis作为内存数据库,可以提供临时数据存储功能。
2024-04-18 14:40:26
1119
1
原创 Ubuntu22.10 英文环境安装中文输入法
选择输入法框架fcitx,然后单击Close,重启系统。打开一个终端或者文本编辑器,按“CTRL+空格”键,在中文/英文输入法之间切换;按“CTRL+SHIFT”键,在fcitx框架中的多种中文输入法之间切换。如果安装不成功,可以先把Ubuntu使用的软件源换成国内的,比如:阿里源、清华源等。之外,还会安装其他的一些输入法,比如:五笔、五笔拼音等等。时,会自动安装拼音输入法。
2024-01-02 14:04:51
971
原创 I2C基本概念讲解(时序,架构,速率)
I2C是一种同步串口总线的协议,由NXP公司设计。使用一主多从的设计框架,本文从基础出发,主要讲解I2C基本概念讲解(时序,架构,速率),分析IIC的时序图,以及拆分讲解IIC时序的各个部分内容
2023-06-07 11:03:40
4991
1
原创 串口的基本定义以及RS232,RS485和UART,USAT,SPI的联系和区别
一种串口通讯由两部分组成,物理电气层(RS232,RS485)以及协议层(UART,MODBUS)。物理电气层规定0以及1的电压范围,接线方式以及电气层面的内容。协议层是从电气层获取01组成的数据进行获取,校验,组合等一系列处理。最终的目的是获取到一个正确的有效的数据。
2023-05-25 13:55:44
2007
1
原创 定时器的基本原理概念以及应用
单片机定时器是嵌入式系统中常见的关键模块,用于实现精确的时间控制和事件触发。本文将介绍单片机定时器的基本概念、分类以及常见的使用场景,旨在帮助读者理解和应用定时器在嵌入式系统中的重要性和灵活性
2023-05-23 14:43:06
4804
1
原创 STM32寄存器开发以及库函数开发的区别,库函数基础工程创建以及源文件和头文件的作用,手把手教你创建第一个STM32的LL库开发的工程
什么是寄存STM32器开发和库函数开发,库函数开发的优点是什么?为什么现在库函数开发是目前的主流?怎么从零开始构建一个库函数开发的工程文件架构,以及工程中每个文件的作用以及意义,如何使用LL库去点亮自己的第一个LED。
2022-12-25 16:13:39
4659
原创 FreeRTOS内核 基于stm32 学习个人理解笔记(1)
最直接的做法就是取出B函数的指针,跳转到B函数的地址区域执行。那从切换前,需要把当前的执行的位置以及状态(临时变量、寄存器的值、执行位置)记录下来,以便于下次从这个断点执行。这个和普通函数不一样的地方是TCB函数会有两部分,第一部分恢复上次断点的数据,第二部分就是从上一次断点的地方执行(在属于这个任务的时间内)。如果要实现这种操作的话,除了函数指针,还需要栈的初始地址(栈底),以及栈顶(栈底的相对偏移量),如果要实现优先级的话还需要记录该任务的优先级的任务节点,以及这个任务的名称(用于调试)。...
2022-07-23 00:16:36
223
原创 获取网页的html文本(用selenium+chrome headless进行js异步加载内容),返回BeautifulSoup的soup对象
import requestsfrom bs4 import BeautifulSoupfrom selenium import webdriverdef gethtml(url,js=False): if(js==False): return gethtml1(url) elif (js==True): return gethtml2(ur...
2018-06-08 19:12:00
1565
原创 获取屏幕指定像素截图(PIL)
import pyautoguifrom PIL import Image from PIL import ImageGrabinput('请把鼠标放到第一个坐标,按下回车')x,y=pyautogui.position()input('请把鼠标放到第二个坐标,按下回车')n,m=pyautogui.position()boxx=(x,y,n,m)img = ImageGrab...
2018-06-07 20:36:25
3899
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人