树莓派定时控制散热风扇开关

硬件上

一、思路: GPIO 给三极管基极信号

使用三极管组成开关电路。以 S9013 为例,S9013 是 NPN 型三极管。关于 NPN 型三极管,S9013 的特性如下:

NPN 基极高电压,极电极与发射极短路。低电压,极电极与发射极开路。也就是不工作。

二、接线

相关电路图如下:

S9013

连接电路图

连接引脚图

软件上

一、GPIO 简单使用

首先看一些例程:

1.GPIO 输出

1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-  
import RPi.GPIO as GPIO
import time
# BOARD 编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)
# 输出模式
GPIO.setup(11, GPIO.OUT)

while True:
GPIO.output(11, GPIO.HIGH)
time.sleep(1)
GPIO.output(11, GPIO.LOW)
time.sleep(1)

Read More

在 Ubuntu 上搭建饥荒专用服务器(含洞穴)

最后更新于 2019 年 1 月 10 日

本文以 Ubuntu 16.04,64 位系统为例,介绍如何搭建 Don’t Starve Together 联机服务器。

准备工作

划分 swap 分区

如果您需要改变 swap 大小,参照这篇文章。

安装依赖

1
2
3
4
5
dpkg --add-architecture i386
apt update
apt dist-upgrade -y
apt autoremove -y
apt install screen vim lib32gcc1 lib32stdc++6 libcurl4-gnutls-dev:i386 -y

添加并切换用户

1
2
adduser dst
su - dst

Read More

VB.NET 下载文件及显示进程

简单的下载

1.创建 WebClient 类,再输入要下载的资源 url 地址还有本地保存路径即可。

1
2
Dim DownloadClient As New Net.WebClient() 
DownloadClient.DownloadFile(yoururladdress,yourfileaddress)

2.使用 DownloadFile 的方法下载文件,指定文件的下载地址和本地路径,和超时时间。

1
My.Computer.Network.DownloadFile(yoururladdress, yourfileaddress, False, 500)

具有进度提示的下载

以 VS2015 为编译环境,举例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Imports System.Net
Public Class Main

Dim DownloadClient As New WebClient

Private Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddHandler DownloadClient.DownloadProgressChanged, AddressOf ShowDownProgress
AddHandler DownloadClient.DownloadDataCompleted, AddressOf DownloadDataCompleted
End Sub

Private Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button.Click
DownLoadFiles()
End Sub

Private Sub DownLoadFiles()
DownloadClient.DownloadFileAsync(New Uri(yourlink), (yoursaveaddress))
End Sub

Private Sub ShowDownProgress(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
Invoke(New Action(Of Integer)(Sub(i) ProgressBar.Value = i), e.ProgressPercentage)
End Sub

Sub DownloadDataCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
MessageBox.Show("下载成功!", "提示", MessageBoxButtons.OK)
End Sub
End Class

.NET 中 WebBrowser 内核版本解决方案

方案一:更改网页 META 标签

例如使用 IE9 内核的特性,则可以在网页 <head> 标签中加入 <meta http-equiv="X-UA-Compatible" content="IE=9" >

注意:这个标签必须加在 <head> 中其他 CSS 和 JavaScript 链接之前,但可以与 <title> 和其他 <meta> 成任意位置。

方案二:修改注册表

例如使用 IE9 内核的特性,可在注册表添加两个键值。

HKEY_LOCAL_MACHINE (和 HKEY_CURRENT_USER) >SOFTWARE > Microsoft > Internet Explorer > Main > FeatureControl > FEATURE_BROWSER_EMULATION

新建 → DWORD(32-位)值 yourprogram.exe = 9999 (十进制)

其中,9999 (0x270F) IE9,无论是否声明 !DOCTYPE 指令,页面以 IE9 兼容模式打开。对于未正确声明 !DOCTYPE 指令的页面,将会以怪异模式(quirks mode)加载

更多 mode 值对照表,参考:Browser Emulation

利用 iptables 或 UFW 禁止 BT 流量

本文最后更新于 2020 年 6 月 2 日


本文以 Debian 10 为例,介绍如何禁止 BT 流量转发,这里以 iptables 和 UFW 两种方式为例,请根据情况任选其中一种。本文同样适用于 Ubuntu。

注:请先参照 Debian & Ubuntu 服务器的初始化配置 一文对服务器进行各种必要的配置。本文以 sammy 用户为例,进行防火墙规则的操作,并默认已按初始化配置文章对服务器进行了配置。

注意: 本文采用的方法,和网络上大部分网友们讨论的方法,均不能完全保证禁止有效,尤其是对于加密流量来说,欲了解原因请查看此处


准备

安装 xtables-addons-common

1
sudo apt update && sudo apt install xtables-addons-common -y

查看是否安装成功:

1
iptables -m ipp2p --help

Read More

Mastodon