阅读 101

前端玩转Raspberry Pi,一脚踏入物联网

之前买了一个树莓派。我买的是Raspberry Pi3 Modle B。

树莓派并没有自带硬盘,所以想要安装系统的话,要自己准备TF卡或者U盘。

接下来,就要去树莓派的官网下载系统了。 官方安装系统工具,NOOBS非常的简单。

下载地址

下载完成后,我们就可以按照以下步骤来安装系统了.

1,把下载的zip包解压到TF卡里

2,把TF卡插入树莓派,并且用HDMI接入显示器,鼠标键盘,接上电源.

这时,树莓派被点亮.

3,这时按下shift按键,会进入恢复系统界面

选择你想要安装的系统,点击安装.

等待几分钟,系统就安装好了.

重启进入桌面后,这桌面操作系统叫 PIXEL OS;基于 Debian.

PIXEL 的意思是“Pi Improved Xwindows Environment, Lightweight”,即“树莓派改进的轻量级 Xwindows 环境”.

使用SSH连接你的树莓派

在树莓派打开命令行:

输入 sudo raspi-config

选择Advanced Options

选择SSH

选择yes

SSH 已经启用

然后打开PC的命令行(我用的是MAC,命令行直接可以用ssh)

输入:

ssh pi@192.168.1.xxx  
复制代码

地址为树莓派的ip地址,如果不知道,在树莓派命令行输入 ifconfig,就可以看到了

然后输入密码,如果还没有修改过用户pi的密码的话,默认密码就是:raspberry

随后就可以尽情的玩耍了

安装Nodejs

下载Nodejs

Nodejs 下载页面

我们选择Linux Binaries (ARM) ARMv7的版本,复制下载链接

wget https://nodejs.org/dist/v12.18.4/node-v12.18.4-linux-armv7l.tar.xz
tar -xzf node-v12.18.4-linux-armv7l.tar.xz //解压安装包
sudo mv node-v12.18.4-linux-armv7l  /usr/local/bin/node/
sudo ln /usr/local/bin/node/bin/node /usr/local/bin/node
sudo ln -s /usr/local/bin/node/lib/node_modules/npm/bin/npm /usr/local/bin/npm
复制代码

好了,这时候我们在任意目录下输入:

node -v
npm -v 
复制代码

node 是最新版本的了,npm 也有了

因为在国内,用npm下载包的话,会经常不稳定,这时候我们可以用到 cnpm, 输入以下命令:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
复制代码

下载完成之后,我们安装模块的时候:

$ cnpm install [name]
复制代码

树莓派开机启动pm2

接下来,介绍一下让pm2在树莓派上开机启动的方法

首先下载pm2

cnpm install pm2 -g
复制代码

运行需要run的代码

pm2 start app.js
复制代码

保存这时候pm2运行的状态,以便开机启动后,pm2 可以重新跑app.js

sudo pm2 save //系统会生成一个文件 '/home/pi/.pm2/dump.pm2'
复制代码

(重点)接下来我们要锁定这个文件,不允许任何方式的修改

sudo chattr +i /home/pi/.pm2/dump.pm2
复制代码

设置开机启动

sudo pm2 startup systemd -u pi --hp /home/pi

sudo reboot //重启查看开机启动的效果
复制代码

通过以上步骤,我们就可以成功的开机启动pm2 并且运行app.js

如果我们以后想修改pm2 开机启动的配置,我们需要解锁dump.pm2文件,

pm2 start xxx.js //运行另一个程序
sudo chattr -i /home/pi/.pm2/dump.pm2 //解锁文件

sudo pm2 save //保存配置
sudo chattr +i /home/pi/.pm2/dump.pm2 //重新加锁
sudo pm2 startup systemd -u pi --hp /home/pi //设置开机启动

sudo reboot 重启操作系统

复制代码

以上就是修改pm2开机启动配置的方法了,是不是简单得不能再简单?

时间校准

应该是树莓派系统版本的问题,网上很多方法开启网络时间协议(时间自动校准)已经失效.对于我这样的小白来说,试了很多种方法,都没有成功.

今天来说说正确的开启姿势;

树莓派没有默认开启时间自动校准功能的.需要打开NTP(Network Time Protocol,网络时间协议)才可以尽可能的保证时间的准确度.

启用NTP:

sudo timedatectl set-ntp true
复制代码

接下来我们来看看时间是否正确:

pi@raspberrypi:~ $ date
2017年 03月 20日 星期一 21:38:41 CST
复制代码

很明显时间都正确了.如果时间差了24小时以内,那大概是时区错了.

今天就先到这里.