esp8266连接服务器(基于mosquitto的mqtt server)
Time:2024-02-09 00:39:50
还挺兴奋的,这个项目算是我自己搭建云服务器的最后一步。
idea 起因是想要自己搭建云服务器,同时还想要利用手上已经有的esp8266开发板实现对该服务器的远程控制(开关机)。
本来打算整一个备用电源给服务器供电,奈何这台服务器是普通PC,即使配置已经很低(与现代PC比较为拉胯,但是比大多数出售的服务器例如某云2核4g更加)但功耗的保守估计已经超过70w。
于是便打算使用远程开关降低平均功耗。同时进行物联网方面知识的扫盲与学习。
过程1.前期准备 首先,在已经搭建好的mqtt服务器上创建了用户user和密码passwd,同时处于安全性考虑禁止匿名访问。配置mqtt服务器的过程)
创建好测试主题(topic)test后进行测试。多平台测试收发message没问题。
2.中期打BOSS 接下来就是攻克esp8266这边的问题了。
问题一:esp8266开发环境
由于这块esp8266开发板是我在高中时期玩的,那时候的电脑早已坏掉,这台电脑的arduinoIDE 还未配置esp8266的环境。
本来打算使 ...
模拟电子技术基础
模拟电子技术基础1.半导体器件
本征半导体:纯净,具有晶体结构的半导体
N型半导体:negative,掺入5价元素,多一个电子。
P型半导体:positive,掺入3价元素,少一个电子。
PN结:将P型半导体和N型半导体制作在同一硅片上,交界处形成PN结。
空间电荷区:PN结交接处区域的复合。也称为耗尽层。
1.PN结1.PN结的伏安特性
反向击穿
齐纳击穿:在高掺杂,耗尽层宽度窄的情况下,较低的反向电压即可击穿
雪崩击穿:在低掺杂,耗尽层宽度宽的情况下,较高的反向电压可击穿
2.PN结的电容效应
势垒电容
当PN结的反向电压变化时,空间电荷区的宽度随之变化,耗尽层电荷变化,导致等效电容变化。
2.二极管1.伏安特性
同PN结的对比
单向导电性
二极管存在半导体体电阻和引线电阻(同电压下正向电压更小)
表面漏电流(反向电流更大)。漏电流(当施加反向电压时,电流仍然流过器件)
2.不同材料二极管的对比
材料
开启电压
导通电压
反向饱和电流
硅
0.5
0.6-0.8
<0/1
锗
0.1
0.1-0.3
几十
3.温度的影响 ...
常见通信协议以及通信方式
常用的通信方式1. 串行和并行通信
串行通信优缺点
优点:
1. 占用资源少(只需一根线)
缺点:
1. 传输速率慢
并行通信优缺点
优点:
1. 传输速率快
缺点:
1. 占用资源多(多根线同时使用)
2. 同步和异步通信1.概念
同步通信
同步通信: 发送端在发送串行数据的同时,提供一个时钟信号,并按照一定的约定(例如:在时钟信号的上升沿的时候,将数据发送出去)发送数据,接收端根据发送端提供的时钟信号,以及大家的约定,接收数据。如:I2C、SPI等有时钟信号的协议,都属于这种通信方式。
异步通信
异步通信: 接收方并不知道数据什么时候会到达,收发双方可以有各自自己的时钟。发送方发送的时间间隔可以不均,接收方是在数据的起始位和停止位的帮助下实现信息同步的。这种传输通常是很小的分组,比如:一个字符为一组,数据组配备起始位和结束位。所以这种传输方式的效率是比较低的,因为额外加入了很多的辅助位作为负载,常用在低速的传输中。
2. 比较
同步通信要求接收端时钟频率和发送端时钟频率一致,发送端发送连续的比特流;异步通信时不要求接收端时钟和发送端时钟同 ...
STM32
嵌入式基本概念
嵌入式系统 嵌入式系统是一种专门设计用于执行特定任务或控制特定设备的计算机系统。它通常包括硬件和软件两个部分,被嵌入到目标设备中,以实现特定的功能。
RTOS(Real-Time OS)
一种专门设计用于嵌入式系统的操作系统。RTOS的主要特点是能够保证任务在预定的时间内得到及时处理,具有良好的实时性。
1. STM32和511. 51的优缺点1. 51 的优点
硬件层面
结构简单,8位
硬件到软件有一套按位操作系统。(进行位的操作:传送、置位、清零、测试,逻辑运算)
包含乘除法指令
软件层面
可以使用C进行编程
2. 51的缺点
硬件层面
功能少,运行速度慢
I/O高电平无输出能力
保护能力差
2.stm32的简介
由ST厂商推出的STM32系列单片机,行业的朋友都知道,这是一款性价比超高的系列单片机,应该没有之一,功能及其强大。其基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的ARM Cortex-M内核,同时具有一流的外设:1μs的双12位ADC,4兆位/秒的UART,18兆位/ ...
《霍乱时期的爱情》
在老家整理东西的时候发现了许多在高中时代写的文字,怀念的感觉油然而生。这本书是我在高二的时候看过的。那时看完之后心情久久不得平静,就撕下一页稿纸,随手写了这点东西。
想到那时的自己还是书虫,每日不读书就浑身难受。再看看现在,好像已经有几个月没有拿起一本书像过去的我一样一有时间就打开阅读了。
最近就把过去看过的书再温习一遍吧!
《奇风岁月》
这应该是我青少年时期最喜欢的一本书了,那时推荐给了很多人看。高中时很喜欢一个up主,他一边介绍高质量游戏,一边给我们推荐他觉得好看的有意思的书。这本书就是他推荐的。
也是在整理东西的时候发现的过去写的文字。
时间胶囊
高中晚自习的时候,下暴雨时有感。
高中午休时胡思乱想有感。
高中数学课有感。
高中被室友呼噜声吵失眠有感。
看完凯鲁亚克的《在路上》后有感。
《寂寞的游戏》
《寂寞的游戏》
其实,这本书我在2020年就看过一遍了,因为十分合拍的原因,还拍下了当时读书时的画面。当时就感受到了袁哲生先生的文字下的细腻,将一个敏感的青年通过笔墨绘于纸上。
那时,我刚刚升入高中,不曾想到进了高一的奥赛班,以为以我的适应能力能够立马就与同学打成一片,然而这个班的同学早已互相认识,只留少数几个像我一样对于新环境完全陌生的新人,不仅是交际上的原因,学业上也频频受挫。初中时的锐气与自信受到巨大的打击,于是便抓住文字这根救命稻草,以求在陌生而冷淡的环境汲取一丝慰藉。
文字,从未给过我失望,透过《寂寞的游戏》,我看到了一个像我一样的青年,借由他的经历,让我那时的无力感得到稍许减弱。
“ 我想,人天生就喜欢躲藏,
渴望消失,这是一点都不奇怪的事。 ”
“ 我就这样躲躲藏藏了许多年,直到有一天,捉迷藏的乐趣像一颗流星,眨眼就消失的无影无踪。 ”
这些细腻且真实的文字打动着我,让那时的我感动:我不是一个人,袁哲生先生也和我一样。
那时,图片中的有着斑马图案像条形码的马克杯还没碎。那是妈妈在外地别人家打工时,住在那里的姐姐托妈妈送给我的,杯子里还有一张写着 ...
css学习笔记
CSS简介
CSS:Cascading Style Sheet 层叠样式表,是一组样式设置的规则,用于控制页面的外观样式。
广泛用于页面外观美化,布局和定位。
CSS如何使用
嵌入HTML或者JSP
123456789<head> <meta charset="UTF-8"> <title>Document</title> <style> p{ color:blue; } </style></head>
外部导入(常用,更加方便,便于复制黏贴 :D)
123<head> <link rel="stylesheet" type="text/css" href="css/eg.css"> </head>
基本语法
选择器:要修饰的对象,例如HTML的各类标签
属性名:属于修饰对象的属性
属性值:修饰对象的属性的样式取值
...
《丧钟为谁而鸣》
这本书是Winston推荐的,其实我原本是想问问他给推荐几本简单易读的英文原著。回来一看,是一部长篇qwq,感觉读原著的话会有些吃力(英语水平有限: sigh :),于是就先读了翻译后的版本。看完以后久久不能释怀。
昨天深夜读完这本书,看看时间,恰好 2 : 00,合上眼,情节一幕幕复现在眼前,再过一个小时,皮拉尔就应该发现巴勃罗将罗伯托的起爆器和雷管偷走了。不知道如果巴勃罗没有偷走它们,又或者没有将它们扔下悬崖,罗伯托和巴塞尔默会不会能够活下去。巴塞尔默是那么热心肠,那么认真的令人尊敬的老人啊!不过死亡也许对他来说也是一种解脱吧。
在爱情上,我和罗伯托都是这样的人,在爱情上认为自己不会爱上别人,孑然一身,只是做着自己的事。然而他找到了小兔子玛利亚。在这样恐怖的栈帧中,能与她将往后余生的长相厮守浓缩为三天就已经十分幸运了不是吗?何必奢求永远。
“ 你在要求不可能的事,你在要求绝不可能的事。所以,如果你真像你说的那样深爱这姑娘,那最好的,就是好好爱她,用尽全力,用浓烈填补这段关系中必将缺乏的长度与跨度。你听到了?过去,人们用一生的时间来做这件事。而现在,当你找到它,你得到 ...
Linux Projects
以下项目都是我在已经完成之后补录的笔记,包括但不限于遇到的报错,问题。便于以后复现。实际上不能说是项目,仅仅是复现并且享受大佬的成果而已。开源不易,感谢大佬们开源!
ZeroTier 内网穿透1.简介 官网:ZeroTier
ZeroTier Client :
The ZeroTier client is used to connect to virtual networks previously created in the ZeroTier Central web-based UI. Endpoint connections are peer-to-peer and end-to-end encrypted. STUN and hole punching are used to establish direct connections between peers behind NAT. Direct connection route discovery is made with the help of a global network of root servers via ...
Linux Notes
A note about linux basic operation.
常用命令
文件查看类
more
123456789101112 : - 空白键 (space):代表向下翻一页; - Enter :代表向下翻『一行』; - / 字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字; - :f :立刻显示出档名以及目前显示的行数; - q :代表立刻离开 more ,不再显示该文件内容; - b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。- ``` less
:
- 空白键 :向下翻动一页;
- [pagedown]:向下翻动一页;
- [pageup] :向上翻动一页;
- **/ 字串 :向下搜寻『字串』的功能;**
- **? 字串 :向上搜寻『字串』的功能;**
- **n :重复前一个搜寻 (与 / 或?有关!)**
- **N :反向的重复前一个搜寻 (与 / 或?有关!)**
- q :离开 less 这个程序;
head:读取 ...
GIT basic
Git 以及github,gitee的使用git简介:
Git (/ɡɪt/) is a distributed version control system that tracks changes in any set of computer files, usually used for coordinating work among programmers who are collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different computers).
What is Git?Git is a popular version control system. It was created by Lin ...
Data Structure and Algorithm
Start树哈夫曼树(最优二叉树)
哈夫曼算法:
构造 n 棵二叉树森林,每一个都是带权值的根节点。
选择权值最小的两棵树作为左右子树,其根节点的权值为左右子树权值之和。
删除这两棵树,将新的树加入森林。
重复操作到只剩下一棵树为止。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149/** 基于结构体数组的哈曼树* C++*/#include < ...
MySql学习笔记
MySQL学习笔记(8.0) 一切只因花几十块买了一年的云服务器。刚好目前需要用 用 JDBC ,于是就把数据库部署到了服务器上面。然而这其中却遇到了难以想象的困难(后来才发现没有必要这么弄,且一般也不这么弄,安全性大打折扣)。
1.部署环境以及初始化配置
Ubuntu
1.下载安装,配置密码以root用户登录之后:
123apt updateapt upgrade #不解释apt install mysql-server -y #下载
此时你可以直接进入mysql
123456789101112mysqlmysql> use mysql;mysql> apt install mysql-server -y #(将密码置为空)mysql> quit;# 然后重启mysql,再次进入systemstl restart mysqlmysqlmysql> use mysql;mysql> ALTER USER 'root'@'localhost' (如果不用远程链接则为'localhost' ...
51单片机笔记
git test message
Information & Data sheet
Based on –AT89C51.
The Atmel AT89 series is an Intel 8051-compatible family of 8 bit microcontrollers (μCs) manufactured by the Atmel Corporation.
Based on the Intel 8051 core, the AT89 series remains very popular as general purpose microcontrollers, due to their industry standard instruction set, their low unit cost, and the availability of these chips in DIL (DIP) packages. This allows a great amount of legacy code to be reused without modific ...
微机原理与接口技术笔记
汇编语言(8086为例)—-基于《汇编语言第三版》王爽
1.基础知识
8086 CPU的简介
(1) 16位微处理器;
(2) 采用高速运算性能的 HMOS 工艺制造,芯片上集成了2.9万只晶体管;
(3) 使用单一的 +5V 电源,40 条引脚双列直插式封装;
(4) 时钟频率为 5MHz~10MHz ,基本指令执行时间为0.3ms~0.6ms ;
(5) 16根数据线和 20根地址线,可寻址的地址空间达 1MB (毕竟 16根地址线只可以寻址 64KB,太小了) ;
冯诺依曼架构
冯·诺伊曼结构(英语:Von Neumann architecture),也称范·诺伊曼模型(Von Neumann model)或普林斯顿结构(Princeton architecture),是一种将程序指令存储器和数据存储器合并在一起的电脑设计概念结构。该结构包含:运算器、控制器、存储器、输入设备、输出设备。
结构特点:
以运算单元为中心
采用存储程序原理
存储器是按地址访问、线性编址的空间
控制流由指令流产生
指令由操作码和地址码组成
数据以二进制编码
存储单元
1 KB ...
java学习笔记
JAVA学习笔记基础知识1.String
初始化
123String str1=“Java”;// 字符串常量值String str3=“Java”; // 字符串常量,并且与str1地址相同String str2=new String(“Java”);
返回长度
1str1.length() //带括号,与数组不同!!!
字符串查找
12345str1.charAt(0); // Jstr1.charAt(1); // astr1.charAt(2); // vstr1.charAt(4); // astr1.charAt(5); // 报错
返回字符出现的第一个位置下标,否则返回-1
a. 从字符串的头开始
12int index = str1.indexOf('J');System.out.println(index);// 0
b. 从下表x开始
12int index1 = str1.indexOf('a',2);System.out.println(index1); //3
返回字符串出 ...
随手记
困饿累睡不着
上课的时候随便乱写的<3,没想到我还是这么中二
续集