树莓派配置自动连接wifi,ip自动发送到163邮箱
实际环境:
在普通场景下我们是无法登陆路由器管理界面查看树莓派ip的,我们该怎么办呢,方法是有的,先让树莓派连接我的手机热点,查看树莓派的mac地址,得到mac地址后再让树莓派连接本地wifi,我们笔记本也连接本地wifi,现在树莓派和笔记本在同一局域网,这时用nmap扫描局域网,找到mac跟树莓派mac相同的ip地址就可以了,实现自动连接wifi后就是将ip发送到163邮箱。
下面我来讲步骤
包含知识点:
自动连接wifi
如何查看自己树莓派的mac,如果在局域网用nmap扫描出自己树莓派的ip地址(mac区分)
开启ssh服务
连接成功后将ip自动发送到163邮箱
1、将刷好 Raspbian 系统的 SD 卡用电脑读取。在 boot 分区,也就是树莓派的 /boot
目录下新建 wpa_supplicant.conf 文件,按照下面的参考格式填入内容并保存 wpa_supplicant.conf 文件。
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1#手机热点
network={
ssid="vivo Y66" #wifi名字
psk="liuww123" #wifi密码
key_mgmt=WPA-PSK
priority=2 #连接优先级,数字越大优先级越高(不可以是负数
}#本地wifi
network={
ssid="SZP" #wifi名字
psk="sssssss" #wifi密码
key_mgmt=WPA-PSK
priority=2 #连接优先级,数字越大优先级越高(不可以是负数
}###### 扩展参数解释network={
ssid="WiFi-B"
psk="12345678"
key_mgmt=WPA-PSK
priority=2
scan_ssid=1 #连接隐藏WiFi时需要指定该值为1
}
如果你的 WiFi 没有密码
|
如果你的 WiFi 使用WEP加密
|
如果你的 WiFi 使用WPA/WPA2加密
|
如果你不清楚 WiFi 的加密模式,可以在安卓手机上用 root explorer 打开 /data/misc/wifi/wpa/wpa_supplicant.conf
,查看 WiFi 的信息。
2、开启ssh服务
同样在/boot 下创建名为ssh的空文件,没有扩展名
3、启动树莓派后查看手机热点状态
4、手机关闭热点,让树莓派连接本地wifi,在同一局域网情况下,笔记本利用VMware开启centos虚拟机,网路使用桥接模式
5、在centos下用nmap扫描局域网主机
nmap -sP 172.16.15.0/24 | grep -i -B 2 "b8:27:eb:05:0c:2c"
参数解释 : -i 不区分大小写
-B 2 :输出匹配行前面2行(包含匹配行)
6、用ssh连接到树莓派
树莓派默认账号密码
账号:pi
密码:raspberry
7、修改root用户密码然后以超级管理员登录
sudo passwd root
su - root
8、简单吧,那我们扩展一下,让以后都自动连接多个WiFi网络
多个wifi连接方法
注意:/etc/wpa_supplicant/wpa_supplicant.conf 就是我们在/boot目录下创建的文件,启动后/boot 下的那个文件就被删除了,取而代之是现在编辑的文件
第一步:
修改/etc/wpa_supplicant/wpa_supplicant.conf,下面是我使用的配置文件:
ctrl_interface=/var/run/wpa_supplicant #ap_scan=1network={ssid="wo_shi_yige_wifi_ssid"scan_ssid=1psk="wo_shi_mi_ma"priority=5 }network={ssid="pi"psk="onlyforpi"priority=1 }
- **ap_scan:**1是默认值,因此我注掉了
- 1:这个模式下总是先连接可见的WiFi,如果扫描完所有可见的网络之后都没有连接上,则开始连接隐藏WiFi。
- 2:会按照network定义的顺序连接WiFi网络,遇到隐藏的将立刻开始连接,因此在这个模式下连接顺序不受priority影响
- ctrl_interface:这个文件夹里面存的是一个当前使用的interface的socket文件,可以供其他程序使用读取WiFi状态信息
- network:是一个连接一个WiFi网络的配置,可以有多个,wpa_supplicant会按照priority指定的优先级(数字越大越先连接)来连接,当然,在这个列表里面隐藏WiFi不受priority的影响,隐藏WiFi总是在可见WiFi不能连接时才开始连接。
- ssid:网络的ssid
- psk:密码
- priority:连接优先级,越大越优先
- scan_ssid:连接隐藏WiFi时需要指定该值为1
- **ap_scan:**1是默认值,因此我注掉了
第二步:
修改/etc/network/interfaces使用wpa_supplicant.conf来配置无线网络
auto lo iface lo inet loopbackauto eth0 iface eth0 inet dhcpallow-hotplug wlan0 auto wlan0 iface wlan0 inet dhcppre-up wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
以后每次启动时,树莓派都会主动去连接配置文件中预定义的这些wifi网络。
单个wifi连接可以使用以下方法
修改/etc/network/interfaces文件,把它修改成这个样子
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid wifi名字
wpa-psk wifi密码
主要是添加wpa-ssid和wpa-psk,直接把你要连接的wifi的ssid和对应密码写上就行了。
其他方式设置见:https://www.cnblogs.com/playboysnow/p/4987103.html
9、再扩展一下,我们每次不可能获得ip都一样,所以当连接成功后将ip发送到163邮箱。
注意:请使用python3来运行我的脚本
第一步:在/root目录下创建163.py脚本 /root/163.py
# -*-coding:utf-8-*-
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import sysSMTPserver="smtp.163.com"
Sender="自己的163账号@163.com" #写自己的163账号
password="密码" #写自己的邮箱密码
#类容
ip=str(sys.argv)
tet=ip
print (tet)
msg=MIMEText(tet, 'plain', 'utf-8') #标题
msg["Subject"]=Header(u'树莓派IP', 'utf-8').encode()
#发件人
msg["From"]=Sender
#收件人,
msg["to"]="自己的163账号@163.com" #也写自己的邮箱账号mailserver=smtplib.SMTP(SMTPserver,25) try:#登录邮箱mailserver.login(Sender,password) #发送邮件mailserver.sendmail(Sender,["自己的163账号@163.com"],msg.as_string()) #也写自己的邮箱账号mailserver.quit() print ("邮件发送成功!")
except smtplib.SMTPException:print ("error:邮件发送失败!")
再写shell脚本来判断网络连通性/root/ping.sh,并发送邮件到自己邮箱
#!/bin/bashwhile :
doping -c 2 www.baidu.com &>/dev/null[ $? -eq 0 ] && break
done a=`ifconfig wlan0 | grep broadcast`
python3 /root/163.py "wlan0:$a"
echo "ok"
10、最后就是将脚本加入开启自启程序/etc/rc.local
在exit 0 之前加入如下代码,没有exit就直接加到后面就行
bash /root/ping.sh
测试:
直接拔电源让树莓派重连wifi,看效果
手机端app查看
然后用ssh连接树莓派好像只能先用pi登录,然后才能切换root用户‘
树莓派配置自动连接wifi,ip自动发送到163邮箱相关推荐
- 树莓派开机自动连接WiFi 及树莓派设置固定IP地址
树莓派实现自动驾驶小车第二步-- 树莓派开机自动连接WiFi 树莓派设置固定IP地址 (内有树莓派连不上WiFi的奇怪bug及解决方案 树莓派开机自动连接WiFi 第一步我们已经通过有线ip ssh连 ...
- 树莓派开机自动连接WIFI直接VNC连接界面
对于没有Linux开发经验的新手来说,入手树莓派肯定是有一定的难度,对于我来说,把我走过得弯路,入过的坑,填平. 我接下来的讲述都是基于树莓派4B的4G版本,不带屏幕开发. 我的树莓派装的系统如下图: ...
- 树莓派开机自动连接wifi和启动ssh
具体步骤 重置树莓派的密码 树莓派开机自动连接wifi设置 刷固件时设置 进入树莓派raspberry系统之后的设置 树莓派ssh开机启动设置 树莓派换源 树莓派3B+ Raspberry系统 重置树 ...
- 树莓派安装raspberry os,两种方式连接树莓派,并设置静态ip开机自动连接WiFi
Step1 在win10通过[DiskGenius]软件格式化原有的sd卡并删除原有的分区,最后将所有空间新建成一个分区,这样win10就能重新识别这个大存储器. 下面通过[Win32DiskImag ...
- matlab mbd 淘宝,完美起航-基于模型(MBD)的树莓派程序开发——设置树莓派自动连接wifi和使用指令连接Matlab/Simulink和树莓派(不使用树莓派连接向导连接)...
前言--使用Matlab树莓派连接向导连接的问题 但是后面继续操作时,发现该向导没有提供已刷写软件后的树莓派连接方式,导致每次连接需要拔下内存卡插上电脑以跳过内存卡刷写那一步(如下,插上内存卡点nex ...
- 微信扫一扫自动连接wifi配置
今天实在是有些无聊,所以想找些事来弄下,突然想起公司的WIFI一年没有更改密码了,是不是要改下呢?有想法就立刻去做,但是做完后才想起,麻烦事来了. 公司有太多人连接了这个WIFI,把密码改了后,那不是 ...
- (二)树莓派系列教程:树莓派4B手动连接wifi,远程控制。命令行界面、桌面界面
一.通过连接同一局域网的wifi来远程操作树莓派 在树莓派系列教程(一)中我们在烧录系统的时候已经配置了树莓派在开机时候按优先级来裂解wifi.但是如果我们没有配置wifi的文件,我们可以手动连接wi ...
- archlinux 开机自动连接wifi
archlinux 开机自动连接wifi archlinux 开机后连接wifi很简单 利用wifi-menu命令就可以选择热点和输入密码 但是重启后又要再来一次. 如果安装了gui, 当然可以利用N ...
- TQ2440 mifi驱动及开机自动连接wifi全过程
想让你的 ARM 也能上网吗?那么请跟我来: 前期准备:买一个小米wifi(淘宝直接搜) 下载linux2.6.30:已共享到我的网盘: http://pan.baidu.com/s/1kUbhoGZ ...
最新文章
- SQL Server 文件和文件组
- python正规教育机构-老男孩python教育机构|python该如何自学好?
- 51单片机中的定时器
- 蓝桥杯-送分啦(java)
- 提高C#编程水平的50个技巧
- 人物角色群体攻击判定二(叉乘来判断敌人的位置)
- 苹果产品开发的绝密工作流程
- python 数据结构与算法
- 非root用户暴力法解决选择性使用两个cudnn
- 滴滴业务中台构建实践,首次曝光
- 目标跟踪之Camshift
- 计算电磁学(三)有限差分方法
- 手机硬件研发工程师的主要工作职责是什么?
- 手机html保存工具,用手机保存任何网页视频:Pro Recorder 使用介绍
- 西方红玫瑰和辣条先生黑产组织深度分析报告
- 数独计算机在线,js数独计算器
- Springboot项目启动后自动在浏览器打开
- 【CSS】947- 十几个 CSS 高级技巧汇总
- c语言程序设计数组实验报告,(C语言程序设计实验报告数组.doc
- UOS V20 nmcli命令配置ip静态地址
热门文章
- 厦门大学厉行:从金融专业到永安期货研究中心!
- 毁尸灭迹!一次服务器被***的血泪教训
- (肝肝肝啦啦啦)计算机组成原理总线性能指标—总线带宽计算
- 超级计算机作文650字,作文650字|650字作文大全-查字典作文网
- OFD、PDF电子发票同时打开预览
- AI:机器学习的正则化 (Regularization)
- uni-app自适应刘海屏
- AQS的前世,从1990年的论文说起
- java中的cascade,详解Hibernate cascade级联属性的CascadeType的用法
- 什么是A股什么是B股,为什么有AB股之分?