mindcont / diyprojects Goto Github PK
View Code? Open in Web Editor NEWDo-it-yourself with Raspberry Pi.
Home Page: https://mindcont.github.io/diyprojects-raspbian/
Do-it-yourself with Raspberry Pi.
Home Page: https://mindcont.github.io/diyprojects-raspbian/
通过SSH
登录你的树莓派,编辑/etc/network/interfaces
$ sudo apt-get update
$ sudo apt-get install nano
$ sudo nano /etc/network/interfaces
修改成如下
auto lo
iface lo inet loopback
#auto eth0
#allow-hotplug eth0
#iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.155.4
netmask 255.255.255.0
gateway 192.168.155.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
紧接着在/etc/wpa_supplicant/wpa_supplicant.conf
文件中配置你的无线热点信息
$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
仿照示例
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
ssid="OpenWrt"
psk="******"
key_mgmt=WPA-PSK
priority=3
}
其中ssid
表示热点名称,psk
表示对应的密码,重启后你的树莓派会自动连接热点。
我们的愿景是打造一款基于树莓派的智能家居中心。它的特点不在于重复制造轮子,而是集成现有的开源方案,提供一种低成本、透明、实用的整体解决方案。
后续搭建细节,会陆续更新在本站,欢迎感兴趣的朋友加入我们,一起享受DIY树莓派打造智能家居的乐趣:smiley::kissing_heart::tada:
所谓“内网穿透”,旨在使我们能够通过公网固定IP端口转发的方式,远程访问内网中的计算机。当前有许多内网穿透的工具,其中以开源的ngrok 和frp最为广泛。
本文以frp为例,借助一个有公网IP的VPS实现远程访问家中树莓派的目的。
实验平台 | 操作系统 | 说明 |
---|---|---|
公网主机 | Centos 7 x86_64 GNU/Linux | 可远程操作,有固定的Ipv4地址,以下用百度的主机‘111.13.101.208’ 代指 |
树莓派 | Stretch armV7 | 内网路由下IP:192.168.155.4 |
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
根据对应的操作系统及架构,从 Release 页面下载最新版本的程序。
更详细的配置方式,参考官方安装文档
由于本文公网服务器为linux 64 位,因此下载frp_0.16.1_linux_amd64.tar.gz
,其余类型同理,输入uname -r
可查看服务器架构。
ssh vps
cd /home/pi/iot/frp
wget https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_amd64.tar.gz
tar xvf frp_0.16.1_linux_amd64.tar.gz
# 可删除客户端程序和配置文件
rm frpc frpc.ini
服务器端配置文件示例,出于安全因素设置一个随机字符串作为privilege_token
,同时在客户端配置文件中也要加入同样的随机字符串。
[common]
bind_port = 7000
vhost_http_port = 8080
privilege_token = *******
#log_file = /home/pi/iot/frp/frps-debug.log
# trace, debug, info, warn, error
log_level = info
log_max_days = 3
服务器端启动
$ ./frps -c frps.ini
由于树莓派为 armV7
架构,因此下载 frp_0.16.1_linux_arm.tar.gz
ssh pi
cd /home/pi/iot
mkdir frp
cd frp
https://github.com/fatedier/frp/releases/download/v0.16.1/frp_0.16.1_linux_arm.tar.gz
tar xvf frp_0.16.1_linux_arm.tar.gz
# 可删除客户端程序和配置文件
rm frps frps.init
配置文件示例
[common]
server_addr = 你的公网主机IP地址
server_port = 7000
privilege_token = *******,同服务端一致即可
#log_file = /home/pi/iot/frp/frpc-debug.log
# trace, debug, info, warn, error
log_level = info
log_max_days = 3
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001
[web]
type = http
local_port = 80
custom_domains = yourdomain.com
use_compression = true
树莓派端启动
$ ./frpc -c frpc.ini
观察日志输出。
正确运行后,分别在服务器端 frps.ini
和 树莓派端frpc.ini
中#log_file
一栏中, 将前面的#
去除,以便记录日志情况。
在服务器端,向/etc/systemd/system/
路径下,新增frps.service
文件
$ sudo su
$ cd /etc/systemd/system/
$ nano frps.service
frps.service
文件如下,注意ExecStart
路径与你的保持一致。
[Unit]
Description=frp server daemon ,a fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/pi/iot/frp/frps -c /home/pi/iot/frp/frps.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frps
User=pi
Group=pi
[Install]
WantedBy=multi-user.target
使能并设置开机启动
$ systemctl daemon-reload
$ systemctl list-unit-files | grep frps
$ systemctl enable frps.service
$ systemctl start frps.service
$ systemctl status frps.service
同服务器端设置开机启动方式类似,树莓派端新增/etc/systemd/system/frpc.service
[Unit]
Description=frp client daemon ,A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
After=syslog.target network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/home/pi/iot/frp/frpc -c /home/pi/iot/frp/frpc.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frpc
User=pi
Group=pi
[Install]
WantedBy=multi-user.target
enjoy and have fun ~😉
在知乎闲逛DIY作品,发现国外大神AWTRIX 2.0 基于wifi 的像素时钟很炫酷、开源、材料易得随打算复刻一个。制作过程网上已有很多资料,不多说,上作品。
1、计时器和秒表功能
2、强大的API接口,例如MQTT和REST
用于IFTTT等外部服务,支持IOS 快捷指令显示短消息
3、使用友,好可通过Web界面完成配置
4、集成的Appstore添加应用
5、支持自定义提醒、应用显示
接口:USB Mini
输入电压:DC 5V 2A
拿起手机/笔记本 扫描WIFI网络,此时有 “AWTRIX Controller ”的热点,连接该热点
STEP2:
当手机连接到该热点后,会自动跳转到 http://172.217.28.1 网页上,如下图,此时类似于家用路由器配置界面
STEP3:
选择 第一个按钮“Configure Controller”
STEP4:
此时设备会自动扫描本地附近热点,选择你的热点。
其中SSID 表示你的热点名称,Password 表示你的热点密码。
STEP5:
当你输入完成后,设备会自动重启。正常显示下图,就进入联网模式,动态显示预先设定好的APP。
ENJOY~ AND HAVE FUN.
Q1:使用一段时间后,接入电源不良
A: 排查输入电压是否有电?接口是否松动?可通过背板螺丝拆开,拧好各接口线路
Q2:屏幕亮,但没有动态显示
A:重新上电,观察是否有 WIFI (对勾)表示已连接到本地网络。观察上电是否显示 服务端IP信息,类似“172.X.X.X:9001” 字样
[1] AWTRIX 2.0 Docs
[2] 3D Print
[3] 如何制作一个 WIFI 像素时钟
[4] IOS 快捷指令
如何通过远程桌面,使得PC连接树莓派远程可视化操作呢?其实很简单,安装xrdp。
实验平台 | 操作系统 | 说明 |
---|---|---|
笔记本 | win10(10240) | IP:192.168.155.2 |
树莓派 | Stretch | IP:192.168.155.4 |
例如 192.168.0.66 --->192.168.0.100 | 需要保证两台电脑IPv4地址中,第3位数字一样 | Windows下打开cmd命令行,ping 树莓派IP地址 有回应,方可进入下一步 |
因为win 系统采用xrdp 协议,所以我们在树莓派下安装 xrdp 和相关组件。
$ sudo apt-get install xrdp tightvncserver xbase-clients
# 设置开机启动
$ sudo su
$ systemctl status xrdp.service
$ systemctl enable xrdp.service
查看开机启动是否设置成功
$ systemctl list-unit-files | grep xr
xrdp-sesman.service enabled
xrdp.service enabled
同时按 Win + R
键打开命令行输入 mstsc
打开远程桌面。或通过搜索 "远程桌面" 的方式打开。
通过使用系统自带的remmina
远程连接工具,按Win
键启动搜索,输入remmina
,点击打开。仿照如下填写,连接地址、分辨率等信息
连接成功!:tada:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.