一行代码搭建私有云(基于docker NextCloud)
一行代码搭建私有云(基于docker NextCloud)简介 老早以前就很想有一朵属于自己的云了,机缘巧合发现了NextCloud 这个项目,使用Docker一键部署简直不要太简单!
项目地址: NextCloud repo on github 搭完以后再也没有用过文件传输助手,多平台文件传输秒传。太厉害了。 开源不易,感谢大佬
一行代码1docker run -d -p 8080:80 nextcloud
然后直接IP:8080就访问到了
0.96OLED玩法
基于0.96寸OLED,主控ssd1306
显示原理基于数据手册
硬件特性每个像素点独立控制,通过写入现存的二进制数据进行每个像素的熄灭和点亮
像素
128*64
名词定义123456789# 0.96 OLED'''|********************************||********************************||********************************||********************************||********************************|'''# 模拟图
SEG
相当于一列:一列64个像素
COLOMN
相当于一行:一行128个像素
COMMON
相当于一行:一行128个像素
PAGE
相当于8行:128*8个像素
显示方式(ssd1306)
There are 3 different memory addressing mode in SSD1306: page addressing ...
C/C++大型项目编程注意事项
C/C++大型项目编程规范
最近在参与(或者说使用)某些项目的代码时,感觉其代码之简洁精炼,语言习惯之规范,外观之整洁,可读性之高令人赏心悦目。
在其基础上进行增删改查后总是觉得自己的代码不够优雅,就好像一篇书法作品中掺杂几行我写的字。
于是打算学习C/C++项目编程规范,不求优雅,只求规整可读,结构合理。
基于华为C语言编程规范 在线wiki文档
代码总体原则1、清晰第一代码的可阅读性高于性能,只有确定性能是瓶颈时,才应该主动优化
优秀的代码可以自我解释(以我的水平可能做到比较难)
常写注释,并且注释写的清晰
2、简洁为美写的代码越多,意味着出错的地方越多,也就意味着代码的可靠性越低。
术语
原则:编程时必须坚持的指导思想。
规则:编程时强制必须遵守的约定。
建议:编程时必须加以考虑的约定。
说明:对此原则/规则/建议进行必要的解释。
示例:对此原则/规则/建议从正、反两个方面给出例子。
延伸阅读材料:建议进一步阅读的参考材料。
头文件原则不合理的头文件布局是编译时间过长的根因,不合理的头文件实际上 ...
STM32_Menu_frameV1.0
Record project STM32_Menu_frame
[STM32_Menu_frame](to be added)
Requirement AnalysisVersion 1
实现单级菜单
按键选择
SPI或IIC的oled屏显示
Version 2based on Version 1
多级菜单
UI美化
大创项目《自动化农业无人机》记录
记录一下大创项目《自动化农业无人机》。实现项目转化知识成果
硬件选型
实现思路PID算法三轴陀螺仪的使用(以mpu6050为例)[MPU6050 basic with Arduino](link to be added)
PID算法数据传输mqtt协议简介esp8266连接服务器(基于mosquitto的mqtt server) | Regen (regenm.github.io)
mqtt服务器搭建MQTT服务器搭建(mosquitto) | Regen (regenm.github.io)
传输系统1. 数据传输mqtt协议基于代理,订阅和发布。
因此在服务器里创建一个频道/topic/dataFromSensors用于各类传感器的数据传输
高度传感器
二氧化碳传感器
温湿度传感器
电池消耗
2. 命令传输在服务器里创建一个频道/topic/commandToDrone用于各类命令的传输
UP
DOWM
LEFT
RIGHT
SPIN
因为基于mqtt协议,因此自动化控制很简单,上位机很好写,也可以不用上位机,在服务器上写的shell脚本就能很好的完成自动化功能。
m ...
STM32 IIC with 0.96 OLED
IIC 通信原理基本介绍点击跳转
原理介绍Init硬件层 需要接上拉电阻(保证传输稳定性)
代码1234void IIC_Init(){ IIC_SCL=1; IIC_SDA=1;}
Start物理层 IIC总线的SCL保持高电平,SDA由高电平变为低电平后,延时(>4.7us),SCL变为低电平。
步骤
SCL 高
SDA 高->低 + 延时(>4.7us)
SCL 高->低
代码123456789void IIC_Start(){ IIC_SCL=1; IIC_SDA=1; delay_us(5); IIC_SDA=0; delay_us(5); IIC_SCL=0; }
Tramsmit Data物理层 传输时,SDA的宽度应该大于SCL的宽度,在SCL为高时读取SDA,SCL为低时改变SDA的电平。
==注意:==传输数据过程总不允许SDA变化(否则会被视为开始或停止信号)
步骤
拉低SCL进行数据传输
SDA传送高低电平(0或1)
SCL在高电平时期读取SDA的数据 ...
mqttSender
用于记录项目mqttSender
regenm/mqttSender
MqttSenderdescriptionA Software For me to send message to my mqtt serverSo that I can contral my devices such as esp32 ,esp8266.
Another purpose is to learn python tkinter(GUI lib)
Technique
python tkinter
python pyinstaller
python mqtt
requirements analization v1.0GUIversion1.0
conponents
1 text call box(for output)
1 entry box (for input)
a send button()
features(or limits? qwq )
simple
change server(ip address, password , topics) by editing sourc ...
《爱你就像爱生命》
《爱你就像爱生命》王小波
你相信吗?什么样的灵魂就要什么样的养料。……没有像样的精神生活就没有一代英俊的新人。
我非常憎恨那些浅薄的人和自甘堕落的人,他们要把世界弄到只适合他们生存。因此我“愤懑”,看不起他们,不想这样却毒害了自己,因为人不能总为自己活着啊。我应该爱他们。如果人们不懂友爱,爱正义,爱真正美的生活,他们就是畸形的人,也不会有太崇高的智慧,我们的国家也就不会太兴盛,连一个渺小的我也在劫难逃要去当生活的奴隶。如果我不爱他们,不为他们变得美好做一点事情的话。这就是我的忏悔。你宽恕我吗,我的牧师?
我真的不知怎么才能和你亲近起来,你好像是一个可望而不可及的目标,我捉摸不透,追也追不上,就坐下哭了起来。
人是轻易不能知道自己的,因为人的感官全是向外的,比方说人能看见别人,却不能看见自己;人可以对别人有最细微的感觉,对自己就迟钝得多。
一个像你这样的灵魂可以给人多么大的助力,给人多少温暖啊!你把你灵魂的大门开开,放我进去吧!
以后少写信多见面好不好?写信我爱瞎说,见面就敬重了。我愿意敬重你,再说我的字写得多寒碜哪!再见!
今天我过生日,徒长一岁何乐 ...
《人间天堂》
《人间天堂》菲茨杰拉德 我说不出为什么,其实比起来那本《了不起的盖茨比》,我更喜欢这本《人间天堂》。我也先是读完了《人间天堂》再去读的《了不起的盖茨比》。
这本书给我带来了太多的共鸣,即使我和Amory是两个来自截然不同世界的人。
电子笔记中的译文质量实在不如我纸质笔记本摘抄的高。下次再换个版本吧。(真的有下次吗?)
他所知道的那个迪克·亨博德,那个记忆中富有魅力、有着独特个性的人,以及能唤起对他记忆的一切——噢,这一切现在都变得让人恐惧,绝无半点高贵气质,都已被碾作尘土。所有的悲剧都带给人离奇怪诞又肮脏作呕的紧张情绪——如此毫无价值,不值一提……像动物一样死去……艾默里记起了他童年时代在某个巷子里看到的那只被碾轧在地的血肉模糊、惨不忍睹的猫。
她能够胜任大多数乏味的家务(尽管她足够聪明,
从不会让诸如编织和刺绣这些“闺阁女红”把自己困住),然而,在料
理完家务之后,她立刻就可以拿起一本书,让自己的思绪如同空中变
幻莫测的云朵一样随风漫步。她个性中最为深沉的底色是她由内而外
散发出的夺目的金色光彩,正如黑暗房间中的一团明火,可以用浪漫
和温情照亮围绕在周围的安静面孔, ...
STM32 PROJECT keyboard
之前就有使用别烧好的MCU来进行键盘客制化,始终觉得不得劲。仅仅只是设计了键位PCB和外观,虽然也学到了点东西,但是我就是不爽啊。有一种核心技术自己没掌握的感觉。
新坑_STM32_KEYBOARD 开始!
二话不说就弃坑了一段时间。。。
直接上手STM32有些难了点,先用了别人的方案试试先。基于 sayo monkey board的键盘
Layout基于网站[keyboard-layout-editor](Keyboard Layout Editor (keyboard-layout-editor.com))设计,同时使用Plate & Case Builder - swillkb)导出DXF。
PCB设计 其实很简单,就是模块套模块,画一下 板子的封装即可。
外壳设计 只是简单的用亚克力打的,CAD还不是很会用。
RUST basic
RUST简介优点内存安全性:
Rust 提供了内存安全的保证,通过所有权系统、借用检查器和生命周期检查器,可以在编译时捕获大多数常见的内存安全问题,如空指针解引用、数据竞争等。
并发安全性:
Rust 的所有权和借用系统使得编写并发程序更加容易和安全。它通过编译时检查来避免数据竞争和多线程错误,使得编写并行代码更加可靠。
性能:
Rust 允许开发者获得接近底层语言(如 C 和 C++)的性能,因为它提供了对内存和并发的细粒度控制,同时不需要牺牲安全性和抽象性。
表达能力:
Rust 具有功能强大的类型系统和模式匹配功能,使得开发者可以以一种清晰、灵活的方式表达复杂的数据结构和逻辑。
资源管理:
Rust 的所有权模型允许开发者在编写代码时显式地管理资源,避免了像内存泄漏和使用后释放的问题。它还通过 RAII(资源获取即初始化)模式自动管理资源生命周期。
生态系统:
虽然相对较年轻,但 Rust 生态系统不断壮大,拥有丰富的库和工具,支持各种应用场景,从嵌入式系统到网络服务都有涉及。
跨平台性:
Rust 具有良好的跨平台支持,可以轻松地在各种操 ...
Raspberry Pi
嘿嘿开新坑!(目前基于python) 早就久仰树莓派大名,奈何前两年芯片减产导致树莓派价格居高不下,甚至翻倍。现在终于降下来了,于是斥巨资买了一块3B前来学习。本篇Blog用于记录我的探索历程。
目前打算先使用python进行学习,待到有一定理解之后再使用C。
1. 装系统! 要什么桌面环境,直接上命令行!
2.联网-WIFI
方法一:使用系统工具
1sudo raspi-config
选择系统选项,地区之后就可以通过ssid和pask进行联网
再使用ifconfig查看是否连接成功(会分配新的 ip 地址)
方法二:使用系统配置/etc/
12345678910# 一开始没有VIMsudo nano /etc/wpa_supplicant/wpa_supplicant.conf# add network={ ssid="ssid_name" key_mgmt=WPA-PSK psk="password"}
3. 创建新用户并授权 总不能一直用root吧,qwq ...
PCB Technique
PCB Technique 本篇课程基于B站UP主Expert电子实验室的教学视频,同时加上本人思考与总结汇总而成。
零基础入门PCB设计保姆级教学
Expert电子实验室
本部分笔记为扫盲篇(基础篇)
==进阶需实战,纸上得来终觉浅,绝知此事要躬行。==
1. 电路设计1.1 原理图四要素
元件符号
连接线
结点
注释
1.2 基本原件介绍1.2.1 电阻
对于贴片电阻的读数
1)3位读数:前2位为有效数字,第3位表示10的n次幂(也可以理解为0的个数)。精度为±5%
2)4位读数:前3位为有效数字,第4位表示10的n次幂(也可以理解为0的个数)。读法和3位的原理一样,精度为±1%
3)阻值小于10的读数:通常在两个数之间插入一个字母R,用字母R来代替小数点
1.2.2 电容
主要功能:储能和滤波
单位计算
1uF=1000nF;1nF=1000pF
分类
读数以及含义
1.2.3 电感 Inductor,
单位换算
1H=1000mH;1mH=1000uH;
主要功能:滤波,扼流, ...
Operating System Principles
==操作系统原理==
1.操作系统概论2.操作系统接口用户与操作系统接口的分类
用户接口 提供给用户使用,通过该接口取得操作系统的服务。
程序接口 提供给程序员使用,用户程序使用系统服务的唯一途径
用户接口(操作接口)
联机用户接口(交互式)
脱机用户接口(批处理 )
联机用户接口(交互式)
字符显示式联机用户接口
命令行方式:shell 语言
批命令方式:.sh
图形化联机用户接口
GUI :包括窗口,图标,菜单,鼠标和面向对象技术
脱机用户接口(批处理 )由一组作业控制语言组成。
作业:一次应用业务处理中,从输入开始到输入结束。用户要求计算机所做工作的集合。
作业步:作业加工处理的技术
作业分类:脱机作业,联机作业。
作业I/O方式:联机IO,脱机IO,SpooLing方式
系统调用系统调用(System Call),提供了用户程序和操作系统之间的接口。用户不能直接调用,但是用户程序可以。
作业
作业:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做工作的集合。
作业步:作业加工处理的步 ...
Computer Composition Principle
计算机组成原理
==HIghLIght ==
计算机系统概论计算机基本组成冯诺依曼计算机
特点
五大部件:运算器(ALU),控制器(CU),存储器(MEM),输入输出(I/O)
指令与数据同等地位存储与存储器
使用二进制
指令由操作码和地址码组成
指令在存储器内顺序存放
以运算器为中心(现代计算以存储器为中心)
计算机工作过程存储器的基本组成
存储体:由存储单元组成(存储单元由存储原件组成,存储原件存储0和1)
存储字:存储单元中的二进制代码组合(?)
存储字长:
MAR:存储器的地址寄存器
MDR:存储器的数据寄存器
运算器的基本组成以及操作过程
ACC: 被加数,被减数,乘积高位,被除数,余数
ALU(算术逻辑单元):
MQ: 乘数,乘积低位
控制器的基本组成
CU:控制单元
IR:指令寄存器
PC:程序计数器
计算机硬件的主要技术指标
机器字长 CPU一次能处理的数据位数与ALU中的寄存器位数有关
运算速度
MIP(Million Instructions Per Second)
表示每 ...
Database Principles
数据库原理1.数据库概论数据库以及相关概念
数据(data):信息的表现形式和载体。
数据库(database):长期存储在计算机内,有组织的,统一管理的相关数据的集合。
数据库管理系统(DBMS):位于用户与操作系统逐之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立,查询,更新及各种数据控制。
数据库系统(DBS):采用数据库技术的计算机系统。
数据库技术:研究数据库结构,存储设计管理和使用的一门软件学科。
高级数据库阶段对象数据库技术
面向对象与数据库技术结合的产物
主要特征
可以完整的描述现实数据结构,以及数据之间嵌套递归的联系。
具有封装性和继承性,提高了软件的可重用性
分布式数据库系统
主要特征:
数据物理上分布在不同场地,逻辑上是一个整体 。
每个场地可以执行局部应用,也可以执行全部应用3.。 各地计算机由数据通信网络联系,本地计算机不能完成的任务可以通过通信网络获取其他场地支持。
开放数据库互联技术
用于单个应用程序访问不同的数据库
XML数据库技术
灵活
现代信息集成技术
数据仓库
连及分析处理技术
数据挖掘
数 ...
PHOTO
说走就走(南昌) 去完南昌回来之后几天。想了想,果然还是想记下来当时间胶囊。
回家那一刻我就知道了2024的寒假注定是灰色的,看到最近天气15日阴天,以及温度逐渐下降甚至出现下雪的时候,我心情是复杂的。
上学期因荒废暑假后在学期中越想越痛,于是就发誓要好好利用寒假出去逛一逛,看看不同城市的风景。看到这天气后就有点挫伤。
于是就怀着这越来越渺茫的希望,打了把又一把游戏。
时机已到!那天下午,澡后我感到十分清爽,应该是内啡肽的作用。恰巧温度回升,下午的太阳也很舒服,就是现在!出发!
然而刚到市里就开始下雨了。。。。。。我还没带伞,包里就一个没电的相机和一本书。(《杀死一只知更鸟》英文原著)
好在火车上比较舒服,看看书,打了个盹就到了。刚好看完前半部分。看到了高中时期最喜欢的一段。
我想让你见识一下什么是真正的勇敢,而不要错误地认为一个人手握枪支就是勇敢。勇敢是:当你还未开始就已知道自己会输,可你依然要去做,而且无论如何都要把它坚持到底。你很少能贏,但有时也会。杜博斯太太赢了,用她那仅仅九十八磅重的身躯。按照她的观点,她死得无怨无悔,不欠任何人,也不依赖任何东 ...