树莓派学习笔记(汇总版)

树莓派学习笔记


简介

树莓派(Raspberry Pi)是个好东西,只有信用卡大小,却有电脑的功能。对于一个初学者,这里面还是有许多内容值得做个笔记记录一下的。以下的内容就是我认为挺有用的一些笔记。可能会比较乱,见谅!

目录

1.开启超级用户权限

2.修改 Raspbian 源

3. 树莓派文件共享

4. 树莓派校园网内访问

5. 修改时区和时间

6. 树莓派安装mongodb

7. 定时运行脚本

内容


1.开启超级用户权限

sudo 可以让我们获得超级用户的权限,以此可以用来执行很多命令,不过通常都是在安装软件中。如果有很多的命令需要超级用户的权限,每次都需要输入 sudo 岂不是很麻烦。因此可以使用以下命令:

$ sudo sh

$ 号变成了 # 号,接下来都将是以超级用户的身份执行命令,如果想要返回普通用户使用以下命令:

# exit

效果如图:


2.修改 Raspbian 源

需要了解一下的是源链接是写在 /etc/apt/sources.list 文件中的。 过程如下:

进入sources.list文件所在位置

pi@raspberrypi:~ $ cd /etc/apt/

备份原有的sources.list文件为sources.list.bk

pi@raspberrypi:/etc/apt $ sudo cp sources.list sources.list.bk

进入sources.list文件进行修改

pi@raspberrypi:/etc/apt $ sudo nano sources.list

删除原文件所有内容(或则用#号注释掉),用以下内容取代(以 Stretch 示例):

 deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
#deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

(补充一下:

  • wheezy(更老的稳定版)
  • jessiels(老的稳定版)
    
  • stretch(稳定版)
    
  • buster(测试版)
    

现在可以更新一下了

pi@raspberrypi:/etc/apt $ sudo apt-get update

效果如图:


3.树莓派文件共享

如何更方便的对树莓派中的文件进行读写呢?这里有个很好的方法。利用samba服务,对局域网内的文件实现共享。

首先当然是安装 samba:

pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get install samba samba-common-bin

然后修改配置:

pi@raspberrypi:~ $ sudo nano /etc/samba/smb.conf 

将下图中的 “read only = yes” 修改为 “read only = no”,下图的我已经修改为“no”了。

这里修改的作用后,我们就能够向树莓派的home目录写入文件了。

重启一下samba服务:

pi@raspberrypi:~ $ sudo /etc/init.d/samba restart

在samba中添加pi用户:

pi@raspberrypi:~ $ sudo smbpasswd -a pi

其中密码自己随意了。我是设置的和我的树莓派用户密码一样。

接下来就可以打开自己电脑的文件夹,输入

\\192.168.1.101\pi

当然这里ip地址是你自己的树莓派在局域网中的ip。

效果如图:


4.树莓派校园网内访问

在校园网内任何地方都可以自由访问寝室或者实验室的树莓派,对其进行操控的感觉还是很棒的。接下来我将简单介绍如何实现这个功能。

以下的配置基本都是在你都路由器里设置的,我使用的是“水星MW300R路由器”。一般路由器设置应该差不了多少。

首先进入你都路由器设置页面,在浏览器中输入:

192.168.1.1

基本所有的路由器的设置页面都是上面那个ip。

进入后,你可以在页面中找到你的树莓派

在这里,我们能够看到局域网内,我的树莓派的ip为:192.168.1.101

然后在路由器的设置页面找到“虚拟服务器”,通常都是在“高级设置”下。

接下来就是添加一个虚拟服务器:

  1. 外部端口: 我设置的是8888,当然你可以设置成其他的,不过不能和已有的服务的端口冲突。
  2. 内部端口: 我设置的是22,这里的22是ssh连接使用的端口。ftp的端口为21,http则为80等等。
  3. ip地址: 这里的ip地址就是刚刚的树莓派在局域网内的ip地址。
  4. 协议类型: 可以选择TCP或则UDP,也可以以上两种都接受。

这里配置完成后,基本就搞定了。

最后就是在校园网内访问我们的树莓派了。

打开SSH软件,连接的地址为:你的路由器的ip+刚刚设置的外部端口号。
例如我的就是 1x.xx.xx.xx:8888

效果如图:


5.修改时区和时间

查看当前的时间:

pi@raspberrypi:~ $ date -R

修改地区:

pi@raspberrypi:~ $ sudo tzselect

修改国家:

修改城市:

确认信息:

确认完毕后,写入文件:

pi@raspberrypi:~ $ sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

再次查看当前的时间:

pi@raspberrypi:~ $ date -R

就ok了。


6.树莓派安装mongodb

安装mongodb,就一句话

pi@raspberrypi:~ $ sudo apt-get install mongodb

但是当我准备使用mongo命令打开时,却报错了,错误如下:

pi@raspberrypi:~ $ sudo mongo
MongoDB shell version: 2.4.14
connecting to: test
Fri Aug 24 14:22:48.856 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

通过查找资料,获得解决方法为如下,亲测可用:

pi@raspberrypi:~ $ sudo rm /var/lib/mongodb/mongod.lock 
pi@raspberrypi:~ $ sudo service mongodb restart

补充一点,如果使用pymongo调用时报错,如下情况:

pymongo.errors.ConfigurationError: Server at 127.0.0.1:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6).

这说明pymongo的版本不匹配,可以安装低版本的pymongo:

pip3 install pymongo==3.2

7.定时运行脚本

如果在玩树莓派的过程中,我们需要定时或者定期的运行一些程序或脚本,这里有个好方法,就是Linux下的 crontab

通常会用到的就是两个命令:

  1. 查看已有的定时任务

     pi@raspberrypi:~ $ crontab -l
    
  2. 编辑定时任务

     pi@raspberrypi:~ $ crontab -e
    

当我们输入crontab -e的时候,第一次会让你选择用什么方式打开例如nano、vim等
接下来就可以编写我们的定时任务了。
例子:

*/10 * * * * python3 /home/pi/bili_online_analysis.py >> /home/pi/bili_online_analysis.log 2>&1

定时任务的编写规则:

  1. 规则一: 命令通常都是以下这种格式,一行就是一个定时任务

     # m h  dom mon dow   command
    
  2. 规则二:每个字段的含义

    m: 表示分钟,范围0到59
    h:表示小时,范围0到23
    dom:表示日,范围1到31
    mon:表示月,范围1到12
    dow:表示星期,范围0到7,0和7都是星期日
    command:表示命令
    
  3. 规则三:每个符号的含义

     *:表示所有的值,如果m字段是星号,这说明每分钟都运行。
     ,:表示一个列表,如果m字段是 "1,5,15,58",这说明在第1分钟,第5分钟,第15分钟和第58分钟会运行
     -:表示一个范围,如果m字段是 1-5,这说明第1分钟、第2分钟、第3分钟、第4分钟和第5分钟都会运行
     /:表示时间间隔,如果m字段是 */10,这说明每隔10分钟运行
    

这样就好理解我上面的例子了:

*/10 * * * * python3 /home/pi/bili_online_analysis.py >> /home/pi/bili_online_analysis.log 2>&1

这表示每隔十分钟执行一次bili_online_analiysisi.py脚本,并将执行结果写入bili_online_analiysisi.log文件,最后的2>&1表示讲错误信息也一同写入。


##最后

持续更新中>>>>>>

你可能感兴趣的:(树莓派学习笔记)