极客 | 树莓派能做什么?

栏目: 数据库 · Mysql · 发布时间: 7年前

内容简介:树莓派能做什么?关于此命题,最直观感受就是看看树莓派实验室整理的一些这一过程,就好比操作系统 ( 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;
    

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Iterative Methods for Sparse Linear Systems, Second Edition

Iterative Methods for Sparse Linear Systems, Second Edition

Yousef Saad / Society for Industrial and Applied Mathematics / 2003-04-30 / USD 102.00

Tremendous progress has been made in the scientific and engineering disciplines regarding the use of iterative methods for linear systems. The size and complexity of linear and nonlinear systems arisi......一起来看看 《Iterative Methods for Sparse Linear Systems, Second Edition》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试