无显示器用控制树莓派方案(有线&WiFi&串口通信)

[TOC]
## #0.目录
 #0.1更新内容汇总
 #0.2网络远控和串口通信的优缺点比较
 #1.基本需求
 #2.烧写镜像
 #3.用网线/串口通信模块连接PC，实现远程操作树莓派
 #4.接入无线网，通过其它电脑远程控制树莓派
 #5.使用PC共享的热点Wifi远程控制树莓派
## #0.1 更新内容：
### 2018.6.22更新
  串口通信方式控制树莓派方案，无需显示器和网线：www.
  需要另外购买USB-TTL转换外设（USB转串口通信模块or驱动板）。
###　2018.3.26更新
 **2016以后发布的Rasbian版本中，ssh功能默认关闭。**
 打开SSH功能方法：在sd卡根目录建立一个名称为"ssh"文件（无后缀），然后启动树莓派，当检测到有这个文件的时候就会开启ssh功能，并且删除该文件。
来源：https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
### 2018.5.14更新
 **热点Wifi和PC有线连接树莓派，不能同时使用**
[PC共享Wifi热点注意事项](#2018514%E6%9B%B4%E6%96%B0-1)
##0.2网络远控和串口通信的优缺点比较
1.网线：
容易获得，方便借到或者购买。缺点是设置稍微麻烦，有线网和无线不能同时使用（或许能？）。
2.串口通信：
无需繁琐设置，操作方便，**即插即用**。缺点是需要单独购买，无法方便获得，并且无法让树莓同时使用蓝牙以及其它串口设备（因为占用了串口）
3.最简单方案：
使用串口模块进行初始设定，然后配置好无线网，用个人电脑发射Wifi热点，供树莓派使用，同时进行SSH远程登录操作。
## #1.基本需求
树莓派 USB电源 读卡器 MicroSD卡
初始通信介质：网线或者USB转串口模块
远控介质：
**网线：请接着本篇内容**
**串口通信：需购买USB转串口模块，具体方案请看：www**
## #2.烧写镜像
系统镜像：https://www.raspberrypi.org/downloads/
镜像写入工具（win32diskimager）（win7）：https://sourceforge.net/projects/win32diskimager/
## #3.用有线网（网线）连接PC，实现远程操作树莓派(以win7为例)
####1.用网线连接PC和树莓派之后，再插上树莓派电源，等待树莓派开机连网。
进入 "控制面板\所有控制面板项\网络和共享中心"，树莓派启动完毕并连上有线之后，PC会显示出另一个本地连接：
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/a57e577c-2dc1-f545-de9c-4abf9edf242b.png)

点击 本地连接->详细信息 ，可以查看**分配给这个本地连接的接口IP地址（本例为：192.168.137.226）：**
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/8872d196-e931-4638-3eb9-a4c2e6464af2.png)

####2.查找树莓派的IP（局域网IP）
将接入Internet的Wifi把网络共享给“本地连接”，在网络和共享中心中，点击 无线网络->属性->共享 ，给 “允许其它网络用户通过此计算机的internet来连接” 打勾，然后确定。
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/9af3a14d-6086-2aab-34dd-4872ee1d0183.png)

打开控制台（WIN+R 输入cmd），输入以下命令查看网络接口信息：```
arp -a```
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/9f2a976f-d868-7e47-93aa-b27160f7e86d.png)
在**本地连接接口下(192.168.137.226)**的一系列IP地址中，通过MAC地址（物理地址）就能找出接入设备（树莓派）的IP地址。
**PS：如果这一步，本地连接接口下找不到接入设备的IP，请看下一步**

####3.指定树莓派IP地址，并使用SSH连接
如果上一步没有找到树莓派的IP，或者是需要固定IP访问，拔掉树莓派电源，取下储存卡，插入电脑，修改根目录文件 cmdline.txt ，在最前端加上IP设置：
``` ip=aaa.bbb.ccc.x ```
**注意：这个IP要求和本地连接的接口IP在同一个网段，否则无效。以我的情况为例， 需要修改成： ip=192.168.137.x**
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/84fd23c8-a9c6-4107-b49f-e50e4eca3d97.png)

修改完毕之后，将储存卡插回树莓派，插上树莓派电源。
等待树莓派启动连网完毕之后，我们来测试一下刚才写入的IP是否有效，在控制台输入：
```ping 198.168.137.100```
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/4f1c8d11-db5f-4157-5b57-056f89bbc369.png)
此时已经有了回复，说明刚才的配置正确，设备已经成功接入了PC创建的新的接口网络。
或者是通过arp -a命令也可以看到，多出了一个刚才配置好的IP（如果原来arp命令不显示接入设备的话，只要ping通或者ssh连接成功就是已经接入成功了，它只是没找到接入设备，不代表你的设备一定没有接入成功，能够给用ssh连接树莓派就是已经接入成功了。）
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/3567f303-cd48-810d-cd38-7ecc561be7fc.png)
**补充1：arp命令不显示接入设备的MAC地址的情况，此情况是偶尔或者一直出现。目前我没找到什么解决方法，这只是判断你的设备是否接入WiFi热点（or网线直插的新的接口本地网络）的方法之一，就算什么都不显示还是可以通过ping命令判断设备是否正确接入。按照以上方法配置IP地址之后，使用ping命令，如果有正确回复就代表ping通了设备IP地址，也就是设备已经成功接入。不要纠结于arp显示不显示的问题...**

最后使用SSH程序登录树莓派，默认用户名：ip 默认密码：raspberry 
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/ca0d7eaf-0bf7-bae9-c438-b2c7b4be64d3.png)
成功，输入指令```hostname -I``` 可以看到刚才自己写入的IP地址，和树莓派获取到的IP地址，这两个都是可以使用的。

## #4.接入无线网，通过其它电脑远程控制树莓派
####1.前面的步骤已经完成，可以通过网线来远程控制树莓派。
使用命令```ifconfig```来查看树莓派的网络连接状态：
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/6919d160-91bc-26e0-dd5b-f08b4d265643.png)
以上eth0是有线网卡，由于有线网已经接入网络，所以有IP等信息；wlan0是无线网卡，此时并没有无线网络接入，所以没有网络地址的信息。
####2.树莓派接入无线网
查看网卡信息：
```sudo iwconfig```
启用无线网卡：
```sudo ifconfig wlan0 up```
扫描附近可接入的WIFI：
```sudo iwlist wlan0 scan```
对于wpa认证方式的Wifi，目前大部分都是wpa了。
修改无线网络配置文件：```
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf```
在末尾添加以下内容**（Wifi名称和密码换成自己的，注意大小写区分）**:

```java:wpa_supplicant.conf
network={
  ssid="share"
  psk="12345678"
  key_mgmt=WPA-PSK
}
```
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/113871f9-40ca-d437-236c-95e7a4e335f7.png)
(由于我的wifi没有密码，所以这里没有写密码，有密码的需要正确填写密码)

然后重启**（先不要拔网线）**：
```sudo reboot```

####3.查找树莓派IP
重启完毕之后，重新连接ssh **（由于重启，树莓派IP有可能会改变，如果IP改变了导致SSH连不进去，再重复步骤3有线网查找IP的步骤找到IP进行连接）**

查看树莓派IP：
```hostname -I```
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/71209c85-1984-08e8-0b52-f4eff8f8d58c.png)
可以看见又多出来一个新的IP，此时由于同时连接的有线网和无线网，还有之前自己指定的IP，所以这里同时出现了3个IP，也可以通过访问路由器来查看树莓派的IP，这台树莓派的无线网IP是：198.168.11.8
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/e476caef-eff1-445d-6e11-5c8a14c9997f.png)

最后新建一个ssh连接，使用无线网的IP连接成功之后，可以不需要网线了。
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/ede9ec66-02e6-ce4d-4bbe-ba3bc60689de.png)

## #5.使用PC共享的热点Wifi远程控制树莓派
**该方法适用于工作或者校园网络、公共网络，以及有除了密码之外第三方认证的情况下（部分网页认证&校园客户端认证等）树莓派无法做到认证方式时，使用PC接入网络之后，将网络通过热点共享给树莓派。**
####1.使用电脑开启热点（以win7为例）
**·** 使用管理员权限开启控制台（开始->附件->命令提示符->右键使用管理员权限启动）
**·** 输入以下指令，创建SSID为share，密码为12345678的Wifi热点（根据需要自行修改名字和密码）：
```netsh wlan set hostednetwork mode=allow ssid=share key=12345678```
**·** 过一会儿会在 “控制面板\网络和 Internet\网络连接” 中会出现一个新的虚拟Wifi连接
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/d9595989-39ad-c165-b13b-a7dd31da69c1.png)
**·** 共享本机已经连上的网络给虚拟Wifi热点：右键点击已经连上网的网络连接->属性->共享选项卡->勾上第一项允许其他人连接本机的网络->选择刚才创建的虚拟Wifi热点连接的名字
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/8b148d61-0234-ea01-a569-3a0009f406c3.png)
---↓↓↓---
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/12b25da0-9918-7b49-b24c-cb8ef8c4e4c4.png)
**·** 最后输入命令：```netsh wlan start hostednetwork```启动无线网络，然后名为share的无线热点就可以被搜索到。
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/0f5e3a6c-9704-361e-ebc6-fec42fc5dea4.png)
![image](https://qiita-image-store.s3.amazonaws.com/0/99696/648f5e18-8b68-919e-de90-0ab787d77564.png)

详细教程参考：http://jingyan.baidu.com/article/48a42057a03cf7a9242504d0.html 
或者使用批处理：http://blog.csdn.net/powerlly/article/details/9006969 

####2.使用有线或者是其它无线连接树莓派，按照第四步再添加一个新的Wifi名称和密码的配置，然后重启树莓派即可。
##### 2018.5.14更新：
**PS:此时请删除其它Wifi配置，确保树莓派开机之后不需要任何配置自动连接到PC共享的热点WiFi，然后拔掉PC的网线，切断树莓派和PC的网线连接。**
**因为PC只能创建一个虚拟网络接口，当有线网络（网线）有设备接入的时候，网络接口就被有线网所创建的本地网络占用，导致无线网Wifi热点无法被接入。所以要先断开PC的网线和通过网线接入PC的设备（这样就不会创建有线网的本地网络），把网络接口让给Wifi热点使用。**
注意：在同时有多个Wifi可以接入的时候，树莓派会自动连接到最后一次接入的Wifi，如果觉得麻烦注释或者删除掉不需要的配置即可。

![image](https://qiita-image-store.s3.amazonaws.com/0/99696/a162fd00-4bf9-eb98-438f-5b65110562fe.png)
#### 3.查找共享热点的树莓派IP
参考第二步有线网连接的查找方式，或者是参考第三步用ssh连接树莓派之后用hostname命令查看IP。PC热点和PC有线连接其它设备是相同的原理。