- 博客(35)
- 收藏
- 关注
原创 树莓派使用frp实现内网穿透
通过frp开源代码进行内网穿透,需要准备一台带宽高有官网IP的服务器下载地址:https://github.com/fatedier/frp/releases服务端下载frp_0.40.0_linux_amd64.tar.gz,可以通过命令行,也可以直接在github下载# 下载frpwget https://github.com/fatedier/frp/releases/download/v0.40.0/frp_0.40.0_linux_amd64.tar.gz# 解压tar -zvxf
2022-03-30 01:22:34 474
原创 linux常用命令手册
关机/重启/注销常用命令作用shutdown -h now即刻关机shutdown -h 1010分钟后关机shutdown -h 11:0011:00关机shutdown -h +10预定时间关机(10分钟后)shutdown -c取消指定时间关机shutdown -r now重启shutdown -r 1010分钟之后重启shutdown -r 11:00定时重启reboot重启init 6重启init
2021-12-12 21:40:37 603
原创 路由器刷机突破校园网限制
免责声明本教程大部分内容来自 github 上 drcom-generic 开源项目,以及网络上各大牛的帖子与文章,大牛众多且出名,就不一一感谢与强调其版权。只进行了测试与整理以及部分错误的修正针对小白更友好一点,由阅读者实操所产生的一切后果,一概不负责。仅供学习与交流,请勿用于商业用途!在根据本教程进行实际操作时,如因您操作失误导致出现的一切意外,包括但不限于路由器变砖、故障、数据丢失等情况,概不负责;该技术仅供学习交流,请勿将此技术应用于任何商业行为,所产生的法律责任由您自行承担;部分学校明
2021-12-01 17:56:18 24765 6
原创 嵌入式linux系统下如何通过drcom突破校园网限制(以长沙大学为例)
drcom(俗称小地球)广泛用于各大高校的宽带认证,常见包括三个版本,5.2.0 的P、D、X版。P版就是在普通的PPPOE拨号的基础上添加了一个客户端与服务器通信认证的过程。D版直接通过客户端的接口与服务器建立连接。X版复杂许多,一般会先有802.1x认证再进行端口通讯认证。本教程能够解决大部分的P、D版本。说明本教程大部分内容来自 github 上 drcom-generic 开源项目,以及网络上各大牛的帖子与文章,大牛众多且出名,就不一一感谢与强调其版权。只进行了测试与整理以及部分错误的修
2021-12-01 17:08:32 4248 1
原创 ESP8266介绍与连接第三方物联网平台
一、ESP8266连线方式1、ESP8266引脚定义2、ESP8266通过串口连接电脑3、ESP8266烧录连线图4、ESP8266连接单片机二、ESP8266的三种模式1、Station 模式:ESP8266 模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制。AT+CWMODE=1 //1是Station模式AT+RST //重新启动wifi模块AT+CWJAP="所要连接的局域
2021-11-30 14:24:13 13746 3
原创 蓝桥杯静态数码管、独立键盘、矩阵键盘
一、静态数码管#include <stc15f2k60s2.h>sbit relay=P0^4; //sbit是定义特殊功能寄存器的位变量sbit buzzer=P0^6;void SysInit(){ P2=(P2&0x1f)|0x80;P0=0xff;P2&=0x1f; P2=(P2&0x1f)|0xa0;relay=0;buzzer=0;P2&=0x1f; P2=(P2&0x1f)|0xe0;P0=0xff;P2&=0x1f
2021-06-22 23:30:25 596
原创 常见的求最大公约数的方法
三.最大公约数最大公约数和最小公倍数求解,常用的方法是短除法进行因式分解,然后最大公约数是所有公共因子的乘积,最小公倍数是所有因子的乘积。[外链图片转存中…(img-94AfcQy3-1622980183622)]本质上求最小公倍数就是求最大公倍数:x=m*a, y=m*b;m是最大公约数,那最小公倍数就是m*a*b。所以可以得到最大公约数与最小公倍数的关系:LCM(A,B)×GCD(A,B)=A×BLCM(A,B)×GCD(A,B)=A×B其中LCM是最小公倍数,GCD是最大公约数用代码来
2021-06-06 19:51:47 21632
原创 ZigBee单播通信
一、单播通信理论(1)Zigbee网络通信方式有4种:单播,广播,组播,绑定(MAC)。(2)单播通信的特点:在Zigbee网络里,模块之间要进行通信,发射模块要明确知道接收模块的网络地址。(3)Zigbee模块的地址特点:模块在加入网络的时候,父节点随机分配网络地址给子节点。但是协调器模块在)网络里的地址永远都是0x00。单播发送数据需要明确的信息:(1)目标地址(2)目标端点与簇(3)要发送的数据大小应用任务层数据发送函数该函数在GenericApp.c里的GenericApp_Se
2021-05-29 09:43:49 1672 1
原创 ZigBee的无线通信与网络组建
一、 无线通信理论Zigbee无线通信,需要高频的载波来提供发射频率,Zigbee模块之间要可以正常通信,接收模块和发送模块的频率要一致。 Zigbee有27个载波可以进行通信,载波又叫做信道。这些载波的频率落在某些频率区段,我们把这些区段叫做频段。 2.4G频段 16个信道 915M频段 896M频段 11个信道 但TI的所有支持Zigbee底层协议的芯片只能在2.4G频段的16个信道里进行通信。即1126信道(010信道在9
2021-05-29 09:41:21 5128
原创 newwifi2刷潘多拉固件
一、刷入固件先刷入不死鸟控制台,再通过不死鸟控制台刷入固件,避免因操作失误造成路由器变砖请严格按照先后顺序操作用网线让路由器的LAN口与电脑的网口相连接;PC设置为自动获取IP(一般默认自动获取IP);路由器断电(就是拔插头);首先按住reset不放!,确保没有松开reset键后,然后,插入路由器电源;保持按住reset 3-4秒左右,路由器灯开始一闪一闪的时候,松开reset;PC网卡获取到192.168.1.x的地址 (如未获取到手工设置),一般是192.168.1.1 ;浏览器访问
2021-05-27 19:09:35 3676
原创 ZigBee Zstack协议栈
一、Zstack协议栈概述什么是Zstack协议栈为了使Zigbee的开发更加简单高效,TI公司推出了基于cc2530芯片的协议栈Z-STACK.协议栈的实质就是能实现各个功能的实例框架代码,我们想要实现自己的功能程序,只需要在协议栈的基础上修改或添加即可。 Z-STACK的发展 由0.01版本 到 1.5.1a… mesh: 之前的升级版本 HA: 家庭自动化(智能家居) SE: 智能能源 …他们的区别是应用部分不同(初学者建议用早期的版本)二、Zstack协议栈结构
2021-05-27 18:54:58 8939
原创 ZigBee连接DHT11传感器
一、DHT11传感器概述DHT11传感器概述 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。 它应用专用的数字模块采集技术和温湿度传感技术, 确保产品具有极高的可靠性与卓越的长期稳定性。 传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接 。DHT11传感器体积小,功耗极低,信号传输距离可达20米以上。具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。产品为 4 针单排引脚封:DHT11与MCU连接图:二、D
2021-05-27 17:56:16 3686
原创 ZigBee串口通信
一、串口通信原理1.什么是UART UART : Universal Asynchronous Receiver/Transmitter 通用异步收发器 一种常用也是最简单的串行数据传输协议。数据线只需要两根就可以实现全双工。 Tx:发送数据线 Rx:接收数据线 A B Tx <-----------> Rx Rx <-----------> Tx GND<-----------> G
2021-05-27 17:55:09 4339
原创 ZigBee的GPIO与外部中断原理
一、 cc2530最小系统二、GPIO概述三、IO口的输入输出配置上拉输入:有上拉电阻 按键未按下时端口接高电平,即高电平 1 状态—3.3v 按键按下时端口接低电平,即低电平 0 状态-------0下拉输入:有下拉电阻 按键未按下时端口接低电平,即低电平 0 状态—0v 按键按下时端口接高电平,即高电平 1 状态------3.3v四、外部中断
2021-05-26 12:25:37 1526
原创 ZigBee集成开发环境IAR安装
一、Zigbee概述1.什么是ZigbeeZigBee是一种近距离、低复杂度的双向无线通信系统,主要用于距离短、功耗低、传输速率不高的电子设备之间进行数据传输,且具有低功耗、低成本、大容量、时延短、可靠性高以及网络拓扑结构灵活的特点。Zigbee本质就是无线设备之间的一种通信方式,类似于人和人之间用普通话交流,普通话就是一种通信方式。Zigbee,Zigbee通信方式,Zigbee协议说的都是一回事。Zigbee的主要作用是用来构建无线局域网。2.各通信方式的比较蓝牙:功耗比较低,组建网络节点数
2021-05-24 21:40:41 4318
原创 linux服务器安装EMQX服务器(MQTT服务器·)
一、通过ZIP压缩包安装1.下载ZIP安装包https://github.com/emqx/emqx/releases2.上传压缩包使用finalshell将压缩包上传到服务器的/home/admin/3.解压安装1.解压程序包sudo apt-get updateapt install unzipunzip emqx-ubuntu18.04-4.3.0-arm64.zip2.启动 EMQ X Broker$ ./bin/emqx startemqx 4.0.0 is s
2021-05-09 09:49:24 2745
原创 树莓派利用python控制57步进电机
一、57步进电机参数二、树莓派利用python控制57步进电机import RPi.GPIO as GPIOimport time# w1,w2,w3,w4,w5,w6 = 0,1,0,0,0,0,0 细分400,电流3.5A,电压24VIN1 = 20 # 接PUL-IN2 = 21 # 接PUL+IN3 = 12 # 接DIR-IN4 = 16 # 接DIR+def setStep(w1, w2, w3, w4): GPIO.output(IN1,
2021-04-29 19:19:31 4377 10
原创 python 训练Bilinear CNN检验模型
运行Inference.pyimport argparseimport sysimport osimport structimport socketimport torchimport torchvisionfrom BCNN_fc import BCNN_fcimport configfrom PIL import Imageimport tkinter as tkfrom tkinter import filedialogdef main(filename): par
2021-04-28 18:27:58 520 1
原创 三、折半插入排序
三、折半插入排序1.什么是折半插入排序(Binary Insertion Sort)折半插入排序又称二分插入排序,是插入排序的一种。折半插入排序是对直接插入排序的一种改进。改进?(直接插入排序)线性查找 —> 折半查找 减少比较次数基本思路:每次插入操作,采用折半查找的方式,查找插入位置, 然后再插入元素(先挪后插入)。2.算法思路step 1:找插入位置(Insertion Position)待查找范围的下标 [low,high]每次跟中间元素PK mid=(lo
2021-04-06 09:26:36 8872 3
原创 二、直接插入排序
1.定义(基本思想)每次将一个待排序的元素,按其关键字大小插入到已经排好序的子表中的适当位置,直到全部元素插入完成为止。直接插入排序<<<折半插入排序希尔排序|2.基本思路step1:找插入位置 从第一个元素开始,找到第一个比待插入元素大的元素, “插入位置”Istep2:插入操作 从最后面,一个一个元素往后挪代码实现#include <stdio.h>#define N 10/* insert:把元素x,插入到升
2021-04-06 09:15:30 513
原创 一、排序概述
1.为什么要排序查找是计算机应用中必不可少并且使用频率很高的一个操作。在一个排序表中查找一个元素,要比在一个无序表中查找效率高得多。所以为了提高查找效率,节省CPU时间,需要排序。2.什么是排序所谓排序,就是整理表中的数据几素,使之按儿素的关键字递增/递减的顺序排列。3.排序的稳定性当待排序元素的关键字不相同时,排序的结果是唯一的。如果待排序的表中,有多个关键字相间的元素:经过排序后这些共有相同关键字的元素之间的相对次序保持不变,则称这种排序方法是稳定的;反之,若具有相同关键字的元素之间的相对次序
2021-04-06 09:11:41 965
原创 二叉树的先序、中序、后序遍历
二叉树的先序、中序、后序遍历1.前序遍历前序遍历首先访问根结点然后遍历左子树,最后遍历右子树。在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。若二叉树为空则结束返回,否则:(1)访问根结点;(2)前序遍历左子树;(3)前序遍历右子树 ;需要注意的是:遍历左右子树时仍然采用前序遍历方法。可以看出前序遍历后,遍历结果为:6312549782.中序遍历中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左、右子树时,仍然先遍历左子树,再访问根结点,最后遍历右子树
2021-01-21 22:33:05 11211
原创 归并排序
归并排序/*递归实现*/#include <stdio.h>#define MAXSIZE 10// 实现归并,并把最后的结果存放到list1里void merging(int *list1, int list1_size, int *list2, int list2_size){ int i, j, k, m; int temp[MAXSIZE]; i = j = k = 0; while( i < list1_size && j < lis
2021-01-04 01:22:54 111
原创 堆排序
堆排序堆排序 堆排序的由来还得说到简单选择排序,由简单选择排序中的在进行剩余的n -2个数据比较时若能利用前n-1次比较的所得信息,则可以减少以后各趟排序的比较次数,由此联想出锦标赛排序也就是树形排序,但是树形排序的辅助存储空间较多,和“最大值”进行比较多余的比较等缺点,因此,在1964年威洛姆斯提出了堆排序,堆排序灵活的应用了最堆的特性来达到选择的目的。堆排序只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。要进行堆排序首先我们要先建一个最大(小)堆,(这里关于如何建最堆以下代码
2021-01-04 01:22:29 1110
原创 希尔排序
希尔排序希尔排序 希尔排序的提出是对直接插入排序的进一步优化,直接插入排序插入排序在对几乎已经排好序的数据操作时,效率高,即可达到线性排序的效率但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位,所以在1959年D.L.Shell正式提出了shell算法,我觉得这给当时的人指明了一个方向,开辟了灵感的源泉,因为shell排序是第一个突破了O(n^2 ) 时间复杂度的排序算法,因为在1959年之前的相当长的一段时间里,各种各样的排序算法无论是怎么设计,都始终无法突破O(n^2), 在当时直接插
2021-01-04 01:21:53 412
原创 直接插入排序
直接插入排序/*插入排序是把一个记录插入到已排序的有序序列中,使整个序列在插入该记录后仍然有序。插入排序中较简单的种方法是直接插入排序,其插入位置的确定方法是将待插入的记录与有序区中的各记录自右向左依次比较其关键字值的大小。*//*基本有序,记录数少*//*基本思想: 每一步将一个待排序的元素,按其排序码的大小,插入到前面已经排好序 的一组元素的合适位置上去,直到元素全部插完为止。直接插入排序; 当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1
2021-01-04 01:21:10 196
原创 选择排序
选择排序/*工作原理是每一次从无序组的数据元素中选出最小(或最大)的一个元素,存放在无序组的起始位置,无序组元素减少,有序组元素增加,直到全部待排序的数据元素排完。*/#include <stdio.h>void SelectSort(int k[], int n){ int i, j, min, temp, count1=0, count2=0; for( i=0; i < n-1; i++ ) { min = i; for( j=i+1; j <
2021-01-04 01:20:41 105
原创 冒泡排序
冒泡排序**冒泡排序的基本思想:**两两相邻记录的关键字,如果反序则交换,直到没有反序的记录为止!冒泡排序的要点:1、两两注意是相邻的两个元素的意思2、如果有n个元素需要比较n-1次,每一轮减少1次比较3、既然叫冒泡排序,那就是从下往上两两比较,所以看上去就跟泡泡往上冒一样。/*非正宗版本的冒泡排序*/#include <stdio.h>void BubbleSort(int k[], int n){ int i, j, temp, count1=0, count2=0;
2021-01-04 01:19:54 324 1
原创 树莓派4B引脚定义及运行实例
一、树莓派引脚定义学习如何用树莓派驱动LED灯时需要先了解树莓派管脚GPIO的编码方式,树莓派的管脚编码方式与51单片机的管脚编码有些不一样,在树莓派的GPIO上分为两种编码方式,分别为BCM和wiringPi编码,不同的编码方式在编写程序驱动GPIO时稍有区别,具体编码如下:二、蜂鸣器响import RPi.GPIO as GPIO # 引入GPIO模块from time import sleep # 引入time模块G
2021-01-04 01:16:23 25272 1
原创 树莓派安装OpenCV
一、安装所需要的库和依赖sudo pip3 install numpysudo apt-get install build-essential git cmake pkg-config -ysudo apt-get install libjpeg8-dev -ysudo apt-get install libtiff5-dev -ysudo apt-get install libjasper-dev -ysudo apt-get install libpng12-dev -ysudo apt
2021-01-04 01:14:20 362
原创 树莓派初始环境配置
一、 修改启动参数1、打开22号ssh端口在boot目录建立ssh空文件,不需要任何后缀名2、配置WIFI在boot目录建立wpa_supplicant.conf内容如下(WiFi账号密码改为自己的):country=CNctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdevupdate_config=1network={ ssid="hw1311" psk="13111311" key_mgmt=WPA-PSK pr
2021-01-04 01:12:26 1038
原创 树莓派镜像烧录
一、安装balenaEtcher烧录工具下载链接:https://www.balena.io/etcher/二、烧录镜像文件镜像下载地址:https://www.raspberrypi.org/software/三、烧录镜像成功
2021-01-04 01:10:13 616 2
原创 线性表的表示与实现问题
线性表的表示与实现问题1、线性表的背景在计算机领域中,线性表是最常见的一种抽象数据类型。线性表可持有相同类型的数据元素(可以是相同的元素也是不同的元素),其中的每个数据元素都有一个唯一的位序号(≥0)与其相对应,因此,线性表中的数据元素按位序号排成了一个线性的序列,如图1所示。图1 线性表的概念结构图从图中可以准确了解到,线性表的位序号只能在一个方向上增长或减少。线性表最大的特点在于,可...
2020-02-05 18:39:57 494
原创 java连接数据库代码
java连接数据库代码import java.sql.SQLException;import java.sql.Statement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;public class sql { public static void ma...
2020-01-01 15:07:06 212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人