首页
统计归档
留言墙
关于我
Search
1
Java 中的 cron 表达式使用
150 阅读
2
宽度确定的情况下,如何让高度等于宽度
87 阅读
3
2023年的日子
72 阅读
4
docker 安装nacos
67 阅读
5
人工智能误区
59 阅读
web开发
硬件、电子
常见芯片
常见传感器
机械结构
系统、容器
往事前言
读书
登录
Search
标签搜索
docker
人工智能
浪潮之巅
JJia
累计撰写
59
篇文章
累计收到
106
条评论
首页
栏目
web开发
硬件、电子
常见芯片
常见传感器
机械结构
系统、容器
往事前言
读书
页面
统计归档
留言墙
关于我
搜索到
59
篇与
的结果
2022-06-05
三极管常见电路汇总
关于三极管的应用电路有很多,今天就汇总一下比较典型的三极管电路,对比一起区别点以及对应的应用场合。1.下图是最简单的三极管放大电路了。VCC 是集电极电源,VBB 是施加到基极的电压,基极和集电极都串联了限流电阻:Rb 和 Rc。这种电路连接方式对于低侧驱动负载是非常常见的。2.下图的三极管电路增加了发射极电阻。这个电阻可以用来设置发射极电压,这对于工作与放大区的三极管来说是很常见的,这个电路有负反馈的作用,比如当流过集电极的电流增大时,Re上的压降就会增大,从而Rb上的电压会降低,基极的电流也会降低,那么集电极的电流会对应降低,最终实现了负反馈动态调节。3.下面的电路图和第一个电路图基本相同,只是增加了电阻器 Rb1。实际上Rb1 在实际应用中非常重要,因为当三极管基极没有电压输入时,Rb1的存在可以确保基极是接地的,因此,这样做可以防止噪声误导通NPN晶体管。4.下图和第三个电路图基本相同,区别在于在发射极中加了一个电阻Re。这个电阻就是为了设置发射极电压。通过添加 Re 可以很容易地将 NPN 晶体管的配置到放大区工作。5.下面的电路图其实就是把基极驱动电压由VBB改成了VCC的分压,这样一个电源就能搞定三极管放大电路静态工作点的配置。需要注意的是电容 C1 和 C2 别弄混了,当我们对三极管放大电路进行DC 分析时,这些电容被视为开路,这样便于分析静态工作点,方便我们确认三极管是否工作在放大区,同时电容还能隔直通交,从过在Cin施加小信号,我们便能完成对小信号的放大以及输出。转载自:https://www.elecfans.com/d/1825277.html
2022年06月05日
18 阅读
0 评论
0 点赞
2022-06-03
树莓派控制继电器
树莓派引脚图此时选用的继电器为5v驱动,低电平触发的方式。如图由于是5v驱动,可以直接用树莓派进行供电,然后gpio来控制触发。连接方式:VCC端 连接树莓派物理引脚2或者4(我用的2)GND端 连接树莓派物理引脚6、9、14、20、25、30、34、39都行(我用的20)IN端 连接树莓派物理引脚很多,标志为gpio的都可以用(我用的22)树莓派配置python方式 pip install RPi.GPIO pip install spidev编写代码 import RPi.GPIO as GPIO import time # GPIO.setmode(GPIO.BOARD) # BOARD编号方式,基于插座引脚编号(如果是此模式,后面的引脚即为22) GPIO.setmode(GPIO.BCM) # 若使用BCM编号方式,上两行代码应这样写 while True: GPIO.setup(25, GPIO.OUT) # 对应为22号脚(设置为输出模式) GPIO.output(25, GPIO.HIGH) time.sleep(3) # 单位秒 # GPIO.output(11, GPIO.LOW) # 这里其实不用将其致为第电压,后面详细会说 GPIO.setup(25, GPIO.IN) # 对应为22号脚 time.sleep(3)然后运行该程序python **(该文件名).py此时继电器立马吸合然后三秒后断开,再过三秒,又吸合,如此循环解释:代码中有个小问题,就是触发继电器用的高电平,为什么恢复的时候用的引脚不是低电平,而是用的输入模式呢?此时:要考虑一个问题,继电器什么时候会吸合,什么时候会恢复呢?应该是形成合适的电压差的时候会吸合,电压差不合适的时候恢复。(先不考虑电流)那么此继电器是什么时候吸合呢。据官方文档说如下图由此可以得出结论,当GND和IN端口形成通路,同时IN端口的电压小的时候会进行吸合,电压大的时候会恢复。实验阶段:(用电流表进行测试,说某个端口的电压是其和接地的电压差)question:那么当树莓派控制gpio端口高电平和低电平的时候,此gpio的端口电压是如何变化的?answer:经测量, 当gpio输出高电平,电压3.3v 当输出低电平的时候,电压为0vquestion:默认情况下,IN的电压是如何呢?answer:经测量,电压大约4.9vquestion:当gpio输出高低电平的时候,IN端口的电压分别如何呢?answer:经测量,gpio输出高电平的时候,IN端口3.3v,输出低电平的时候,IN端口是0vquestion: 当gpio为输入模式的时候,IN端口电压如何?answer:经测量,电压为默认值,4.9v左右结论:由此可以得出结论了: 低电压触发,电压得足够低的时候才能触发继电器吸合,当输出高电平的时候(3.3v)其实已经达到的继电器吸合的电压要求,再继续输出低电平, 电压达到0v,还是在工作电压内,只有将电压恢复到默认,继电器才会恢复,所以,将gpio的模式调整为输入模式。此时继电器吸合。c语言实现配置 sudo apt-get install wiringpi mkdir WiringPI #创建WiringPI文件夹 cd WiringPI # wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb代码编写 #include <stdio.h> #include <wiringPi.h> int main(void) { int LED = 0; wiringPiSetup(); pinMode(LED, OUTPUT); // 在wiringPi编号格式中,GPIO0编号为0 printf("relay is working...\r\n"); while(1) { pinMode(LED, OUTPUT);delay(1000); printf("relay :%d is on \r\n", LED); pinMode(LED, INPUT);delay(1000); printf("relay :%d is off \r\n", LED); } return 0; }运行程序 gcc -o runfile filename.c -lwiringPi # 编译并生成可执行文件 ./runfile # 运行可执行文件结果:此时继电器一秒闭合一秒打开,如此循环
2022年06月03日
22 阅读
0 评论
0 点赞
2022-06-03
树莓派引脚图
注意:方向是39,40脚是靠近网口的两个。也可以说,把你的树莓派usb和网口朝下,立在桌子上,从树莓派的正面看,就是这个引脚的排列。当然当你进入树莓派系统的时候,可以通过命令获取引脚的图鉴。gpio readall
2022年06月03日
27 阅读
0 评论
0 点赞
2022-06-03
继电器
继电器是什么东西呢?简单说:通过小电流驱动电路,开关大电流电压的一种装置(原理是通过电磁产生吸力,闭合开关,电磁消失,打开开关)如图3:0:弹簧,用于拉动4铁片,使图中动触点默认情况下是和静触点1接触的。1:驱动电流正极2:驱动电流负极3:电磁铁,当1、2中电流通过时,电磁铁会产生吸力,吸附4(不同模块对于1、2件的电压有不同的要求,目的是产生合适的吸力)4:铁片,用于拉动动触发点移动,致使5和6或者7形成通路5:公共端口,连接负载的正极或者是负极6:常闭端口,连接负载的正极或者负极,默认情况下和5产生通路7:常开端口,连接负载的正极或者负极,默认情况下是开路状态,在3吸附4后和5产生通路
2022年06月03日
15 阅读
0 评论
0 点赞
2022-05-25
彻底停止window10自动更新
第一步:关闭Windows Update服务。打开“运行”窗口,输入“services.msc"打开。在其”服务“界面中,找到”Windows Update"项双击打开。接下来在其“属性”界面中,点击“停止”按钮后,再将“启动类型‘设置为”禁用“项。然后再切换到“恢复”选项卡,将默认的“重新启动服务”改为“无操作”项,最后点击“应用”和“确定”按钮即可。第二步:在组策略中关闭Win10自动更新服务。打开”运行“窗口,输入’gpedit.msc"打开。待打开组策略编辑界面后,按图示进行操作依次展开 计算机配置 -> 管理模板 -> Windows组件 -> Windows更新项进行双击打开。接下来找到”配置自动更新 “项并双击进入,在其弹出的窗口中勾选”已禁用“项,点击”确定“按钮。同时我们还需要在找到“删除使用所有Windows更新功能的访问权限”选项,在”属性“界面中,选择已启用项,最后点击”确定“按钮即可。第三步:禁用计划任务中的“自动更新系统”相关进程。在其“运行”窗口中输入“taskschd.msc”进入。在其“计划任务”界面后,扫图示操作,依次展开 【任务计划程序库 -> Microsoft -> Windows -> WindowsUpdate】,在此直接将其中的所有项目禁用即可。第四步:在注册表中禁用Windows Update更新系统服务。在“运行”窗口中输入“regedit"打开并进入。从打开的注册表界面中,依次展开[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\UsoSvc],并在右侧找到“Start”键。双击”Start“键值打开,将其中的数值设置为”4“,点击”确定“按钮。接着我们在找到“FailureActions”键,双击打开,并将“0010”、“0018”行的左起第5个数值由原来的“01”改为“00”,最后点击“确定”即可。至此,我们就实现了彻底永久关闭Windows10自动更新功能了。
2022年05月25日
13 阅读
0 评论
0 点赞
2022-05-21
drone-cli 自动发布
引子最近公司业务重构,架构升级到了微服务,模块是一个接着一个的加,更新发布手动打包上传是真的麻烦,一件很无聊的事。有问题就有解决办法,搞个自动发布不就行啦。目前接触和使用过的几种自动发布的方案有如下:直接使用docker:流程如下,服务器端安装号docker服务端,并开启远程访问(开启使用密钥登录),如果使用idea开发,在插件市场安装docker插件,配置好远程服务器地址并能正确访问,在项目内编写好DockerFile,配置编译或者打包或者发布的时候关联docker build 构建docker镜像,然后通过idea的docker操作栏进行容器的启动。git + maven + shell 脚本:这个是属于半自动发布吧,流程是这样,服务器安装配置好git和maven,在IDE里编辑好代码后,push到git仓库,服务器编写一个shell脚本(python 或者bat脚本也行,只要可以操作maven和git),通过ssh登录到远程服务器后运行该脚本(此脚本的处理流程为,拉取指定仓库的代码,切换到指定的分支,maven编译和打包该代码,将原来的程序文件备份,命令行操作停止原来的程序,启动此版本的程序),完成程序更新。git仓库(gitlab或者gogs此类带webhook的仓库)+ 自动发布的程序(Jenkins或者drone-cli)这种自动化程度比较高,定制性也比较强,总体的流程为提交代码,触发git仓库的webhook,webhook访问自动发布程序,自动发布程序根据制定好的流程进行一步步操作,比如,克隆代码->编译->验证->登录远程服务器->拷贝文件->启停应用程序;大体是这个流程。小结目前的常见的就是这几种,当然方式很多,只不过别的没咋接触过,有别的可以下方留言学习下哈。方式千千万,但得找个适合自己的不是,看自己的场景吧,小项目,数量少,服务器数量少,感觉可以用docker,比如自己搞个博客,想改改源代码,直接docker搞起来就行了,如果你的项目比较复杂,编译比较耗时,打好的包比较大,可以用第二种,当然,用第三种结合第二种也行哈,如果项目比较多,部署比较复杂,服务器比较多,第三种应该是个比较好的选择。如果使用第三种,那又要进行一波选择,用哪个程序比较好呢(有实力的可以进行自研。)我只调研过jenkins和drone,Jenkins大名鼎鼎,老牌选手了,功能比较完善,其优点也是其缺点,功能太多了,有点臃肿。drone-cli功能相对来说是比较简单,但是自动发布,定时发布,ssh远程登录,文件拷贝,这些功能都有。drone-cli 依赖docker实现自动发布,基础架构分为服务端和runner,通过webhook调用后进行后续操作。其官网可以看这里 drone官网使用流程:1:安装docker环境都可以找到的资料就不写了,可以看此处《菜鸟教程》的centos安装docker,以下内容是摘抄过来的使用官方安装脚本自动安装安装命令如下:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun也可以使用国内 daocloud 一键安装命令: curl -sSL https://get.daocloud.io/docker | sh手动安装卸载旧版本较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine**安装 Docker Engine-Community使用 Docker 仓库进行安装**在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker。设置仓库安装所需的软件包。yum-utils 提供了 yum-config-manager ,并且 device mapper 存储驱动程序需要 device-mapper-persistent-data 和 lvm2。 sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2使用以下命令来设置稳定的仓库。使用官方源地址(比较慢)sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo可以选择国内的一些源地址:阿里云 sudo yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo清华大学源sudo yum-config-manager \ --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo安装 Docker Engine-Community安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:sudo yum install docker-ce docker-ce-cli containerd.io如果提示您接受 GPG 密钥,请选是。有多个 Docker 仓库吗?如果启用了多个 Docker 仓库,则在未在 yum install 或 yum update 命令中指定版本的情况下,进行的安装或更新将始终安装最高版本,这可能不适合您的稳定性需求。Docker 安装完默认未启动。并且已经创建好 docker 用户组,但该用户组下没有用户。要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装:1、列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序。 yum list docker-ce --showduplicates | sort -r docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable2、通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1。sudo yum install docker-ce-<VERSION_STRING> docker-ce-cli-<VERSION_STRING> containerd.io启动 Docker。sudo systemctl start docker通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。sudo docker run hello-world卸载 docker删除安装包:yum remove docker-ce删除镜像、容器、配置文件等内容:rm -rf /var/lib/docker设置自动自动:systemctl enable docker安装 gogsgogs(一个轻型的git仓库)拉取镜像:docker pull gogs/gogs安装gogsdocker run -p 10022:22 -p 10080:3000 --name=gogs \ -e TZ="Asia/Shanghai" \ -v /mydata/gogs:/data \ -d gogs/gogs浏览器访问:http://192.168.1.165:10080设置好用户名密码和数据库连接后进入gogs后台安装Drone拉取 Drone的Serverdocker pull drone/drone拉取 Drone的Runner(还有ssh runner如果需要自行安装,更多见drone runner)docker pull drone-runner-docker drone server和runner运行Server docker run \ -v /mydata/drone:/data \ -e DRONE_AGENTS_ENABLED=true \ -e DRONE_GOGS_SERVER=http://192.168.1.165:10080 \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_SERVER_HOST=192.168.1.165:3080 \ -e DRONE_SERVER_PROTO=http \ -e DRONE_USER_CREATE=username:jjia,admin:true \ -e TZ="Asia/Shanghai" \ -p 3080:80 \ --restart=always \ --detach=true \ --name=drone \ drone/droneRunnerdocker run -d \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DRONE_RPC_PROTO=http \ -e DRONE_RPC_HOST=192.168.1.165:3080 \ -e DRONE_RPC_SECRET=dronerpc666 \ -e DRONE_RUNNER_CAPACITY=2 \ -e DRONE_RUNNER_NAME=runner-docker \ -e TZ="Asia/Shanghai" \ -p 3000:3000 \ --restart always \ --name runner-docker \ drone/drone-runner-docker浏览器访问: (用户名密码为gogs的登录名和密码)http://192.168.1.165:3080/创建测试仓库:drone管理端同步仓库配置自动发布的设置gogs配置webhook代码仓库中添加自动发布的脚本--- kind: pipeline type: docker name: test_publish_pipeline #流程触发的方式 trigger: #指定分支 branch: - master #指定事件 event: - push steps: # 定义流水线执行步骤,这些步骤将顺序执行 - name: package # 流水线名称 image: maven:3-jdk-8 # 定义创建容器的Docker镜像 volumes: # 将容器内目录挂载到宿主机,仓库需要开启Trusted设置 - name: mevan-setting path: /usr/share/maven/conf #同步配置 - name: mevan-cache path: /root/.m2 # 将maven下载依赖的目录挂载出来,防止重复下载 commands: # 定义在Docker容器中执行的shell命令 - ls # 应用打包命令 - touch aaa # 应用打包命令 # - mvn clean # 应用打包命令 # - mvn install # 应用打包命令 - name: scp files image: appleboy/drone-scp settings: host: 192.168.1.11 username: root password: from_secret: rootloginpassword port: 22 command_timeout: 2m target: /home/pi/autopublish #tmp目录是远程主机的 source: ./** #需要传输的文件夹,当前目录 - name: start image: appleboy/drone-ssh # SSH工具镜像 settings: host: 192.168.1.11 # 远程连接地址 username: root # 远程连接账号 password: from_secret: rootloginpassword # 从Secret中读取SSH密码 port: 22 # 远程连接端口 command_timeout: 5m # 远程执行命令超时时间 script: #发布 - /home/pi/autopublish/publish.sh volumes: # 定义流水线挂载目录,用于共享数据 - name: mevan-setting #用于mevan下载加速 host: path: /mydata/maven/conf # 从宿主机中挂载的目录 - name: mevan-cache host: path: /mydata/maven/cache # 从宿主机中挂载的目录提交代码,测试脚本内容为:执行后
2022年05月21日
21 阅读
0 评论
0 点赞
1
...
8
9
10