内容简介:树莓派能做什么?关于此命题,最直观感受就是看看树莓派实验室整理的一些这一过程,就好比操作系统 ( Linux ) 赋予硬件生命,编程 ( Python、Java )、程序灌入灵魂,借助树莓派低能耗、移动便携性、GPIO 等特性,很多想法不是不可能,相信树莓派会带给你不一样的惊喜!其中,需要说明的是本文将围绕两大方面去探索树莓派,即基础应用和解决方案两大部分,也可理解为基础到进阶的过程。
树莓派能做什么?关于此命题,最直观感受就是看看树莓派实验室整理的一些 案例 ,相信你心目中会有答案的。例如,打造一个家庭媒体中心、配置无线路由器、搭建 BT 下载服务器、搭建代码托管服务 ( SVN、GIt )、搭建网站服务器、搭建 Shadowsocks 服务器、用 HomeKit + Siri 声控家里电器等。
这一过程,就好比操作系统 ( Linux ) 赋予硬件生命,编程 ( Python、Java )、程序灌入灵魂,借助树莓派低能耗、移动便携性、GPIO 等特性,很多想法不是不可能,相信树莓派会带给你不一样的惊喜!
其中,需要说明的是本文将围绕两大方面去探索树莓派,即基础应用和解决方案两大部分,也可理解为基础到进阶的过程。
- :介绍使用树莓派必须的应用或组件,这些应用和组件主要作用是:一方面是增强系统功能,另一方面则是为解决方案建立软件基础。
- :诸如引言中谈及的,搭建服务器、智能家居控制中心等,即针对某部分需求集成为服务,学术说法称其为某某即服务 ( XaaS )。
更新进度
- 2019.01.21:完成初稿,形成笔记的整体框架;
教学资源
- :triangular_flag_on_post: | 社区 | 树莓派实验室 | 教程、创意、作品、资讯、硬件五位一体的爱好者交流社区。
- :triangular_flag_on_post: | 社区 | 趣无尽 | 树莓派高端、创意的玩法探索博客站。
- :page_facing_up: | 资料 | 亚博智能官方资料. 树莓派3代B型开发板 | 资料打包下载 ( bwnr )
基础应用
TeamViewer 远程控制
引言
访问树莓派有多种方式,如直连显示器交互使用、通过 SSH 远程登录访问、通过软件实现控制使用等。其中,TeamViewer 是通过软件方式实现对树莓派的远程控制,其拥有有以下几种特性:
- 可穿透局域网,支持外网连接;
- 实时 GUI 界面显示;
- 支持文件双向传输。
配置
在本节,则单独介绍 TeamViewer 的配置与使用,当然教程是参考文章 [5] 、 [6] 整理而得。
删除 TeamViewer
删除 TeamViewer,用于安装出错时,清理残留软件包,方便从头再来。:joy:
此步骤是非必要执行的步骤。
sudo apt-get remove teamviewer-host # 清除所有已删除包的残余配置文件 # 若报错误 dpkg: –purge needs at least one package name argument # 证明你的系统中没有残留配置文件了 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
安装 TeamViewer
Step.01:进入 官方下载 ,在「TeamViewer Host for Raspberry Pi」模块,复制安装包地址,接着正式开始安装:
# 通过 wget 在线下载安装包 wget https://download.teamviewer.com/download/linux/teamviewer-host_armhf.deb # 安装本地软件包,但不解决依赖关系 sudo dpkg -i teamviewer-host_armhf.deb # 修复损坏的软件包,尝试卸载出错的包,重新安装正确版本的 sudo apt-get -f install # 若提示未找到依赖包,可安装 Gdebi,通过 Gdebi 安装解决依赖问题 # 使用 Gdebi 可代替软件中心接管 deb 软件包的安装 # 它会根据软件仓库这一实用的特性来解算依赖关系 sudo apt-get install gdebi sudo gdebi teamviewer-host_armhf.deb
配置 TeamViewer
Step.02:因为我们烧写的系统有图形界面,默认 TeamViewer 要在图形界面进行配置,如远程控制的账号、密码设置等。若有条件支持,可移步图形化界面操作,即可忽略此步骤。
-
没有图形界面,则我们需要在命令行下配置。使用
raspi-config
配置 Raspbian 仅命令行模式运行。sudo raspi-config # 命令模式的操作界面 # 依次选择操作 ( 同理,还原桌面模式也是类似操作 ) # Boot Options -> Desktop / CLI -> Console AutoLogin -> # Finished
-
配置保存后,树莓派会自动重启,那么重新远程登录继续操作。
sudo teamviewer setup # 1. Accept License Agreement? (y/n) y # 2. 输入用户名和密码的步骤无法跳过,没有账号请移步「官网完成注册」 # 注册地址:https://login.teamviewer.com/LogOn # Please enter your e-mail / username: kofe # Please enter your password: ****** # 3. 然后 TeamViewer 会发一份设备授权邮件,请移步「邮箱处理」 # 4. 重新输入用户名和密码登录,提示分组信息,点击 y: # Adding this machine as 'raspberrypi' to ... # Do you want to continue? (y/n) [n] y # 5. 提示 "Successfully...." 即表示已经完成配置工作了
-
完成初始化配置后,只需设置远程控制密码即可使用了。
# 查看本机 ID teamviewer info # 设置本机密码 sudo teamviewer passwd [你的密码]
-
当然,我们还需要把 Raspbian 还原为图形化操作界面。
sudo raspi-config # Boot Options -> Desktop / CLI -> Desktop AutoLogin -> # Finished
使用
-
一般情况下,我们主要是通过命令模式访问树莓派、配置 TeamViewer。当然也可以通过图形界面完成配置操作,按照文字提示操作即可,这里就不详细阐述了。附上 TeamViewer 常用的命令:
# 查看帮助信息 teamviewer help # 查看本机 ID teamviewer info # 设置本机密码 sudo teamviewer passwd [你的密码] # 启动 TeamViewer 服务 sudo teamviewer --daemon start # 开启 TeamViewer 服务随机启动 sudo teamviewer --daemon enable
-
最后,关于图形化界面显示方面,可能还有分辨率调整与存在黑边的问题,详细可参考以下文章解决问题:
MySQL 数据库
引言
数据库的用途毋庸置疑,若在树莓派上跑脚本、程序、网站系统等,少不了数据的交互,为此我们需要一款数据库作为数据储存的媒介。MySQL,是一款开源免费的数据库,也是关系型数据库管理系统,支持多种存储引擎 $^{[1, 2]}$,对于个人开发和日常使用足矣。
以下将介绍,在树莓派 Raspbian 上安装 Mysql 服务,并开启远程访问。
安装 MySQL
-
删除 MySQL:安装前,确保系统没有旧版的 MySQL。
sudo apt-get autoremove --purge mysql-server sudo apt-get remove mysql-common # 清除所有已删除包的残馀配置文件 # 若报错误 dpkg: –purge needs at least one package name argument # 证明你的系统中没有残留配置文件了 dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
-
安装 MySQL:
sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install python-mysqldb # 安装 Python 接口的 MySQL
配置 MySQL
-
命令行安装,默认是不用配置用户和密码信息,故我们首先配置登录信息 $^{[3]}$:
sudo mysql -u root # 无密码登录 MySQL use mysql; # 加密方式选择,系统默认是 'unix_socket',这里暂为空 UPDATE user SET plugin='' WHERE user='root'; UPDATE user SET password=PASSWORD('你自己的密码') WHERE user='root'; flush privileges; # 清空缓存 exit;
-
操作数据库 ( 配置完信息,重启 MySQL 以让设置生效 )
# sudo /etc/init.d/mysql status/start/stop/restart sudo /etc/init.d/mysql restart # 当然可通过 systemctl 命令管理系统服务 # sudo systemctl restart mysql # 重启系统服务 # sudo systemctl status mysql # 查看系统状态
开启远程访问
以上配置工作完成后,即可本地使用 MySQL 数据库了。若需要开启远程访问服务,我们还需要实现以下工作:防火墙与访问规则配置和远程登录的账号配置。
外网访问
若在树莓派下测试,让数据库允许外网访问,注意得关闭防火墙或添加规则允许某端口的访问权限 $^{[4]}$。
- Case.01:本机和服务器端 ( 树莓派 ) 互相 Ping 对方 IP,以检验网络是否畅通、是否拒绝访问。
-
Case.02:若网络畅通、没有拒绝访问,还要留意对应端口是否有权限访问,通过 nc -vz IP 端口检验,返回 Succeeded 即成功。
# MacOS:nc -vz IP地址 端口号 nc -vz 192.168.x.x 3306 # Windows:telnet IP地址 端口号 telnet 192.168.x.x 22 # SSH 远程访问 telnet 192.168.x.x 3306 # MySQL 数据库
防火墙与访问规则
针对上述两种情况,则可通过关闭防火墙或者添加端口的访问规则,以授权 IP 和相关端口接受访问。
-
配置防火墙:
# 安装 ufw ( 已安装忽略 ) sudo apt-get install ufw # 设置默认规则为 allow,除指明打开的端口,所有端口默认关闭 ufw default deny # 启用 /关闭 ufw ufw enable/disable # 查看防火墙状态 ufw status
-
配置访问规则:
# 例如:打开 SSH 远程登录 sudo ufw allow 22 # 删除添加过的规则 sudo ufw delete allow 22
远程登录的账号
最后,我们还需要设置可远程登录的账号。
-
修改 MySQL 配置:
sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf # 找到 bind-address 这行注释掉,然后重启 sudo systemctl restart mysql
-
修改 MySQL 账号信息:在配置
登录信息
时已授权,此项可日后用作远程登录账号的配置。mysql -u root -p use mysql; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root账号密码' WITH GRANT OPTION; flush privileges;
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- [树莓派]树莓派的入门教程
- 「玩转树莓派」树莓派 3B+ 安装 OpenCv
- 「玩转树莓派」树莓派 3B+ 查询本机IP
- 「玩转树莓派」树莓派 3B+ 配置静态IP
- 「玩转树莓派」树莓派 3B+ 配置无线WiFi
- 云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。