树莓派从零开始学习记录
树莓派学习从零开始
-
树莓派系统的安装
使用官方推荐的TF卡烧写工具
Win32DiskImager
写入镜像2016-09-23-raspbian-jessie.img
-
连接树莓派
最简单的连接方法是: (此方法需要电脑无线连接至网络)
- 使用一根网线连接笔记本(笔记本已连接到无线网)和树莓派
- 电脑端安装
putty
软件 -
依次
打开网络和共享中心
–更改适配器设置``无线网络连接属性
–共享
–勾选允许其他网络用户通过此计算机的Internet连接来连接---本地连接
如图:
-
电脑端
win+R
打开cmd
shell,输入:arp -a
Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。 C:\Users\Administrator>arp -a 接口: 192.168.137.1 --- 0xc Internet 地址 物理地址 类型 192.168.137.210 b8-xx-xx-xx-xx-eb 动态 192.168.137.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 接口: 192.168.0.108 --- 0xd Internet 地址 物理地址 类型 192.168.0.1 c8-3a-35-5e-ef-10 动态 192.168.0.107 b8-xx-xx-xx-xx-be 动态 192.168.0.109 8c-89-a5-72-07-5e 动态 192.168.0.110 40-c6-2a-2c-86-ef 动态 192.168.0.255 ff-ff-ff-ff-ff-ff 静态 224.0.0.22 01-00-5e-00-00-16 静态 224.0.0.252 01-00-5e-00-00-fc 静态 239.255.255.250 01-00-5e-7f-ff-fa 静态 255.255.255.255 ff-ff-ff-ff-ff-ff 静态 C:\Users\Administrator>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
查看接口“192.168.137.1 —0xc”下的 动态IP
即:192.168.137.210 ,后面的MAC地址便是树莓派的有线网卡的物理地址 -
打开putty输入该动态IP,便可进入树莓派的shell界面
注意 使用该方法连接树莓派,树莓派在重启或者重连后其动态IP都会改变,每次连接都要重新查看其新的动态IP,建议,首先对树莓派配置无线网络
-
修改默认账户”pi”的初始密码
树莓派默认账户是
pi
,初始密码是raspberry
修改pi
的密码如下aaa@qq.com:/ $ passwd pi Changing password for pi. (current) UNIX password: Enter new UNIX password: Retype new UNIX password:
- 1
- 2
- 3
- 4
- 5
- 6
-
解锁root账户、设置root账户密码
树莓派使用的linux是debian系统,所以树莓派启用root和debian是相同的。
debian里root账户默认没有密码,但账户锁定。当需要root权限时,由默认账户经由sudo执行,Raspberry pi 系统中的
Raspbian默认用户是pi 密码为raspberry
重新开启root账号,可由pi用户登录后,在命令行下执行aaa@qq.com:~ $ sudo passwd root Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
- 1
- 2
- 3
- 4
- 5
执行此命令后系统会提示输入两遍的root密码,输入你想设的密码即可,然后在执行
sudo passwd --unlock root
aaa@qq.com:~ $ sudo passwd --unlock root passwd: password expiry information changed.
- 1
- 2
- 3
这样就可以解锁root账户了。
-
创建新账号并设置密码
创建用户
johnwick
命令useradd
aaa@qq.com:/home/pi# useradd johnwick
- 1
- 2
给新账户设置密码
aaa@qq.com:/home/pi# passwd johnwick Enter new UNIX password:
- 1
- 2
- 3
-
添加新用户到sudo组
切换到root账户,输入指令
visudo
aaa@qq.com:~ $ su Password: aaa@qq.com:/home/pi# visudo
- 1
- 2
- 3
- 4
在文档的最后一行添加账户
johnwick
,配置:执行sudo命令式免密码,保存。# This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d pi ALL=(ALL) NOPASSWD: ALL johnwick ALL=(ALL) NOPASSWD: ALL
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
-
自定义用户的命令行提示符颜色
为了方便也为了美观,需要对shell界面的命令提示符的颜色进行配置
修改root账户下的.bashrc
文件
先找到root账户的家目录注意:配置哪个账户就到哪个账户的家目录下修改
.bashrc
文件,一定不要修改了全局环境量
比如:给johnwick账户配颜色,就先[aaa@qq.com/home/johnwick]#su johnwick aaa@qq.com:~ $ cd ~ aaa@qq.com:~ $ sudo .bashrc #把PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h\[\e[36;40m\]\w\[\e[0m\]]\\$"复制到最后一行 #重新加载`.bashrc`文件 aaa@qq.com:~ $ source .bashrc
- 1
- 2
- 3
- 4
- 5
- 6
- 7
>
aaa@qq.com:/home# cd ~ 再使用`nano`打开存放环境变量的文件`.bashrc` # ~/.bashrc: executed by bash(1) for non-login shells. # Note: PS1 and umask are already set in /etc/profile. You should not # need this unless you want different defaults for root. # PS1='${debian_chroot:+($debian_chroot)}\h:\w\$ ' # umask 022 # You may uncomment the following lines if you want `ls' to be colorized: # export LS_OPTIONS='--color=auto' # eval "`dircolors`" # alias ls='ls $LS_OPTIONS' # alias ll='ls $LS_OPTIONS -l' # alias l='ls $LS_OPTIONS -lA' # # Some more alias to avoid making mistakes: # alias rm='rm -i' # alias cp='cp -i' # alias mv='mv -i' PS1="\[\e[37;40m\][\[\e[31;40m\]\u\[\e[37;40m\]@\h\[\e[36;40m\]\w\[\e[0m\]]\\$"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
>
在最后面添加上配置好的自己喜欢的字体颜色配置
配置完成后重新加载.bashrc
文件 命令:aaa@qq.com:~# source .bashrc
我常用的三个账户的颜色配置方案:
绿色 PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@\h\[\e[36;40m\]\w\[\e[0m\]]\\$" 黄色 PS1="\[\e[37;40m\][\[\e[33;40m\]\u\[\e[37;40m\]@\h\[\e[36;40m\]\w\[\e[0m\]]\\$" 红色 PS1="\[\e[37;40m\][\[\e[31;40m\]\u\[\e[37;40m\]@\h\[\e[36;40m\]\w\[\e[0m\]]\\$"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
创建get.py文件,运行后显示树莓派的CPU温度RAM、ROM
创建get.py文件 直接使用命令
[aaa@qq.com~]$nano get.py
- 1
- 2
把下面的代码写进get.py文件,并保存,退出。
import os # Return CPU temperature as a character string def getCPUtemperature(): res = os.popen('sudo cat /sys/class/thermal/thermal_zone0/temp').readline() tempfloat=float(res) / 1000 temp=str(tempfloat) return(temp) # Return RAM information (unit=kb) in a list # Index 0: total RAM # Index 1: used RAM # Index 2: free RAM def getRAMinfo(): p = os.popen('free') i = 0 while 1: i = i + 1 line = p.readline() if i==2: return(line.split()[1:4]) # Return % of CPU used by user as a character string def getCPUuse(): return(str(os.popen("top -n1 | awk '/Cpu\(s\):/ {print $2}'").readline().strip())) # Return information about disk space as a list (unit included) # Index 0: total disk space # Index 1: used disk space # Index 2: remaining disk space # Index 3: percentage of disk used def getDiskSpace(): p = os.popen("df -h /") i = 0 while 1: i = i +1 line = p.readline() if i==2: return(line.split()[1:5]) # CPU informatiom CPU_temp = getCPUtemperature() CPU_usage = getCPUuse() # RAM information # Output is in kb, here I convert it in Mb for readability RAM_stats = getRAMinfo() RAM_total = round(int(RAM_stats[0]) / 1000,1) RAM_used = round(int(RAM_stats[1]) / 1000,1) RAM_free = round(int(RAM_stats[2]) / 1000,1) # Disk information DISK_stats = getDiskSpace() DISK_total = DISK_stats[0] DISK_used = DISK_stats[1] DISK_perc = DISK_stats[3] if __name__ == '__main__': print('') print('CPU Temperature = '+CPU_temp) print('CPU Use = '+CPU_usage) print('') print('RAM Total = '+str(RAM_total)+' MB') print('RAM Used = '+str(RAM_used)+' MB') print('RAM Free = '+str(RAM_free)+' MB') print('') print('DISK Total Space = '+str(DISK_total)+'B') print('DISK Used Space = '+str(DISK_used)+'B') print('DISK Used Percentage = '+str(DISK_perc))
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
运行get.py文件
[aaa@qq.com~]$sudo python get.py CPU Temperature = 40.242 CPU Use = 0.1 RAM Total = 947.0 MB RAM Used = 225.0 MB RAM Free = 722.0 MB DISK Total Space = 30GB DISK Used Space = 3.7GB DISK Used Percentage = 13%
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
-
查看周围的无线网络的ESSID(网络名称)、网络信息、信号强度
命令:
iwlist scan
[aaa@qq.com~]$sudo iwlist scan wlan0 Scan completed : Cell 01 - Address: C8:3A:35:5E:EF:10 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=44/70 Signal level=-66 dBm Encryption key:on ESSID:"Tenda_5EEF10" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000000000000000 Extra: Last beacon: 80ms ago IE: Unknown: 000C54656E64615F354545463130 IE: Unknown: 010882840B162430486C IE: Unknown: 030101 IE: Unknown: 2A0104 IE: Unknown: 2F0104 IE: Unknown: 32040C121860 IE: Unknown: 2D1AFE181BFFFF000001000000000000000000000000000 000000000 IE: Unknown: 3D16010D000000000000000000000000000000000000000 0 IE: Unknown: DD090010180202F02C0000 IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101000003A4000027A4000042435E00623 22F00 Cell 02 - Address: C8:3A:35:52:FC:30 Channel:6 Frequency:2.437 GHz (Channel 6) Quality=35/70 Signal level=-75 dBm Encryption key:on ESSID:"WXtencent" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000000000000000 Extra: Last beacon: 80ms ago IE: Unknown: 0009575874656E63656E74 IE: Unknown: 010882840B162430486C IE: Unknown: 030106 IE: Unknown: 2A0100 IE: Unknown: 2F0100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 32040C121860 IE: Unknown: 2D1AFE181BFFFF000001000000000000000000000000000 000000000 IE: Unknown: 3D16060D000000000000000000000000000000000000000 0 IE: Unknown: DD090010180203102C0000 IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101000003A4000027A4000042435E00623 22F00 Cell 03 - Address: 58:6A:B1:1C:B2:10 Channel:11 Frequency:2.462 GHz (Channel 11) Quality=26/70 Signal level=-84 dBm Encryption key:on ESSID:"111111" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 6 Mb/s; 9 Mb/s 11 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000000000000000 Extra: Last beacon: 80ms ago IE: Unknown: 0006313131313131 IE: Unknown: 010882848B0C12961824 IE: Unknown: 03010B IE: Unknown: 0706434E49010D14 IE: Unknown: 2A0100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 32043048606C IE: Unknown: 2D1AEC1103FFFF000000000000000000000000000000000 000000000 IE: Unknown: 3D160B08040000000000000000000000000000000000000 0 IE: Unknown: DD180050F2020101810003A4000027A4000042435E00623 22F00 IE: Unknown: DD1E00904C33EC1103FFFF0000000000000000000000000 00000000000000000 IE: Unknown: DD1A00904C340B080400000000000000000000000000000 000000000 Cell 04 - Address: F4:83:CD:53:F0:05 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=52/70 Signal level=-58 dBm Encryption key:on ESSID:"TP-LINK_F005" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/s; 18 Mb/s Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s Mode:Master Extra:tsf=0000000000000000 Extra: Last beacon: 80ms ago IE: Unknown: 000C54502D4C494E4B5F46303035 IE: Unknown: 010882848B960C121824 IE: Unknown: 030101 IE: Unknown: 2A0100 IE: IEEE 802.11i/WPA2 Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: 32043048606C IE: Unknown: 2D1AEE111BFFFFFF0000000000000000000100000000000 000000000 IE: Unknown: 3D16010D060000000000000000000000000000000000000 0 IE: Unknown: 7F080000000000000040 IE: WPA Version 1 Group Cipher : CCMP Pairwise Ciphers (1) : CCMP Authentication Suites (1) : PSK IE: Unknown: DD180050F2020101000003A4000027A4000042435E00623 22F00 IE: Unknown: DD0900037F01010000FF7F lo Interface doesn't support scanning. eth0 Interface doesn't support scanning.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
-
配置树莓派无线网络
树莓派可以存储多个网络的信息,将常用的几个网络的ssid和psk配置好,一并存储即可,这样,当树莓派更换网络后也会自动连接
# 编辑wifi文件 sudo nano /etc/wpa_supplicant/wpa_supplicant.conf # 在该文件最后添加下面的话 network={ ssid="WIFINAME" psk="password" } # 引号部分分别为wifi的名字和密码 # 保存文件后几秒钟应该就会自动连接到该wifi # 查看是否连接成功 ifconfig wlan0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
查看树莓派网卡信息(IP地址、有线网卡和无线网卡的MAC地址)
[aaa@qq.com~]$ifconfig eth0 Link encap:Ethernet HWaddr b8:xx:xx:xx:xx:eb inet addr:192.168.137.26 Bcast:192.168.137.255 Mask:255.255.255.0 inet6 addr: fe80::4152:ce36:8645:2e67/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2417 errors:0 dropped:0 overruns:0 frame:0 TX packets:1220 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:193242 (188.7 KiB) TX bytes:178039 (173.8 KiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:264 errors:0 dropped:0 overruns:0 frame:0 TX packets:264 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:21840 (21.3 KiB) TX bytes:21840 (21.3 KiB) wlan0 Link encap:Ethernet HWaddr b8:xx:xx:xx:xx:be inet6 addr: fe80::5151:9360:9963:5f17/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:665 errors:0 dropped:665 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:237933 (232.3 KiB) TX bytes:0 (0.0 B)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
-
无法登陆路由器管理界面的情况下如何查看树莓派的无线IP地址
有时,使用树莓派连接外界网络(知道账号和密码,但不能进入管理界面查看已经连接无线网络的树莓派的无线IP地址),此时,我们可以继续使用之前的方法,使用一根网线连接笔记本,通过动态IP地址ssh到shell然后查看pI的网络信息
[aaa@qq.com~]$ifconfig wlan0 wlan0 Link encap:Ethernet HWaddr b8:xx:xx:xx:xx:be inet addr:192.168.0.159 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::5151:9360:9963:5f17/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2096 errors:0 dropped:938 overruns:0 frame:0 TX packets:227 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:262474 (256.3 KiB) TX bytes:39358 (38.4 KiB)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
使用此方法可以省去网线连接笔记本的不便,但也比不上配置固定IP方便
, -
配置路由器端口映射
- 给树莓派绑定静态IP
- 设置端口段映射
- 选择DDNS服务商,做动态DNS解析
以上步骤均从路由器端进行设置,设置完成后即可局域网内或者外网访问树莓派主机
-
设置时区
[aaa@qq.com~]$sudo dpkg-reconfigure tzdata Package configuration ┌─────────────────────────┤ Configuring tzdata ├──────────────────────────┐ │ Please select the geographic area in which you live. Subsequent │ │ configuration questions will narrow this down by presenting a list of │ │ cities, representing the time zones in which they are located. │ │ │ │ Geographic area: │ │ │ │ Africa ↑ │ │ America ▒ │ │ Antarctica ▒ │ │ Australia ▮ │ │ Arctic Ocean ▒ │ │ Asia ▒ │ │ Atlantic Ocean ▒ │ │ Europe ↓ │ │ │ │ │ │ <Ok> <Cancel> │ │ │ └─────────────────────────────────────────────────────────────────────────┘
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
选择Asia>>chongqing或者shanghai
上一篇: Java从零开始!记录渣渣的每日学习
下一篇: 百度地图API生成厦门区级行政区划图