《树莓派实战秘籍》——2.8 技巧28监视Pi的IP地址

2.8 技巧28监视Pi的IP地址

当然,你可以在每次需要知道Pi的IP地址时使用ifconfig命令,或者你也可以在任何时候随时查看它。

这个技巧全部都是关于获取Pi的IP地址的。除非你将Pi一直连着显示器和键盘,或者静态分配它的IP,你没有其他简单的方法确定其IP地址。但如果使用一点点硬件和很少的软件,你就可以在任何你想了解的时候回答这个问题,只需要瞟一眼Pi就可以,如图2-12所示:

我们如何实现这个神奇的壮举?好了,关键在于另一个Adafruit项目套件:LCD Pi Plate1。Adafruit的那些可爱又有才华的人们设计了一种简单的方法把一块16×2的LCD以及右侧的一个简单的键盘放到树莓派上面。它是一个未组装的套件,但组装起来非常简单。

2.8.1 打造LCD Pi Plate

要组装LCD Pi Plate,你需要:

  • 烙铁(以及焊锡)
  • LCD Pi Plate套件(它包括一个16×2的蓝色LCD,不过Adafruit也销售其他颜色的产品)
  • 细钢丝钳
  • 窄尖的十字螺丝刀
  • 高堆叠插头连接器2(可选)连接LCD到树莓派有许多不同的方法,但是对于这个技巧来说,LCD Pi Plate有一些显著的优点。Adafruit使用的LCD需要大量数字管脚(取决于LCD设备的功能,一般有6到9个),如果你直接连接该设备到树莓派上去,则会为了一个简单的液晶显示器功能占用大量的GPIO引脚。

但是LCD Pi Plate提供了一种可叠加的方式添加LCD(想想Arduino功能扩展板),它只使用了两个引脚(I2C引脚)。当然,因为I2C总线的工作方式,你也可以将其他设备连到这些引脚上,让它们也出现在I2C总线上(只要它们没有冲突的地址)。最重要的是,这种方法让你还得到了控制LCD的5个按钮。

Adafruit有一个梦幻般的教程3,可以引导你完成LCD Pi Plate的组装。不过即使你因为某种原因无法观看该教程,套件本身的组装也是很直观的。

基本上,你需要将两个220欧姆的电阻(有红色、红色、棕色、金色环标记)焊接到标记有RED和BLUE丝印的位置,剩下的一个电阻(330欧姆,有橙色、橙色、棕色、金色环标记)焊接到标记有GREEN丝印的位置,焊接完成后剪去多余的引脚。然后,将所有的按钮插入到标记有按钮示意图的位置(插入到与板平齐)并焊接好它们。

接下来,把电位器(它有三条“腿”)焊接到标记有Contrast的位置,把MCP23017 I2C端口扩展芯片焊接到标记(MCP23017)的位置。要保证将芯片的缺口对准丝印轮廓的缺口,否则芯片将无法工作。

此时,我们的推荐将稍稍偏离一下Adafruit套件。Adafruit套件配备了一个正常高度的插头连接器(看上去像一个黑色塑料矩形,两面分别是插孔和插针),它可以正常工作,但如果你希望能通过LCD Pi Plate连接其他设备(比如说,Pi Cobbler),你应该买一个具有更高高度的堆叠插头4。无论是原装还是新买的,你都需要将插头放在板的下面,并让其针脚穿过板上插孔来到上面。这里的插头将连接到树莓派的GPIO引脚,然后(从主板顶部)焊接好插头。

接下来,将橡胶缓冲片粘到电路板的底面,正对着你焊接按钮的地方。将它贴平,并尽可能的让它覆盖按钮区域,但不要和左边重叠也不要超出板边。

从排针折下16针长度(如果你买了不同的需要更多引脚的LCD,则可能需要折下18针的长度),并将其长的引针从LCD Pi Plate的正面(top面)向上插入,使得长针脚朝上。然后将LCD放入,将插孔对准排针的长针脚,并焊接板背面以及LCD顶部的每一个引脚。

此刻,它已经是完全组装好了(且连接紧固)。你可以把它放到你的树莓派上,将GPIO引脚插入到连接器中,并使其整齐地贴放在树莓派上面。

同样地,如果上述任何步骤有不清楚的地方,由于Adafruit的在线教程非常优秀,你不妨在觉得迷惑的时候去那里参考一下。

2.8.2 安装软件控制LCD Pi Plate

Adafruit令人尊敬的地方还因为他们开源了所有驱动其所售硬件的软件。LCD Pi Plate有一个专为其编写的Python库,用户可以使用这个库对LCD和按钮进行访问和编程。你可以从他们的GitHub库5中获得代码副本,不过我们在本书的GitHub库6中也包含了一份副本(连同我们写的用来在Pi上监视Pi的IP地址的一些其他代码)。

来吧,克隆我们的GitHub库到你的树莓派上(如果你还没有这么做的话):

为了让本软件的所有功能都可以工作,你需要在Linux内核中启用I2C支持。如果你正在使用一个自定义的内核(在任何Linux版本上),并如技巧22中所述配置,那么你无需再做其他事情。如果你正在运行的是Pidora或Occidentalis,即使没有使用自定义内核,你也拥有了需要预配置所需要的所有东西。

但是,如果你正在运行的是Raspbian实例并使用了它的自带内核,你将需要一些额外的配置才能启用I2C支持。具体来说,你需要运行下面的命令:

此外,你还需要编辑edit /etc/modules文件,并在文件末尾添加如下行:

在任何发行版上,你都需要安装一些软件来添加对系统管理总线(SMBus,你可以认为SMBus是一个更严格版本的I2C)的Python模块、python-rpi、I2C实用工具以及python-netifaces模块(你将用这个模块获取IP地址信息)等的支持。

Pidora在18版本(本书撰写之时的当前版本)没有python-smbus的打包版本,所以我们在本书的GitHub库中为你提供了一个RPM软件包。

在Pidora上,运行:

在Raspbian/Occidentalis上,运行:

2.8.3 运行代码

安装这些软件之后,你可以扫描I2C总线(总线1)查找LCD Pi Plate:

不出所料,你在I2C总线上看到了Adafruit LCD Pi Plate,其设备号为20。

现在继续前进,将当前目录变更到你checkout我们Github库生成的文件下面的Adafruit_CharLCDPlate/目录:

在此目录下,你可以看见一些Python文件,这些文件中的大多数都提供了访问LCD Pi Plate的必要的功能库。如果你只是想要测试一下你的连线和焊接是否工作正常,你可以运行Adafruit测试脚本:

当你按下Pi Plate上的按钮时,LCD的颜色会循环变化并在屏幕上显示文本字符串。如果你使用的是本套件通常配置的蓝色16×2的LCD,由于它并不支持不同的背景颜色,因此根据你所按下的是哪个按钮,该程序看上去可能会显示暗淡的背景。如果发生这种情景,不要害怕。

如果LCD上没有显示文字,但你可以看见屏幕闪烁,你可能仅仅调节对比度即可解决。用你的窄尖十字螺丝刀旋转电位器(它是按钮旁边带有十字形槽的圆形旋钮),直到文字出现。

当你对测试脚本结果觉得满意,那么下一步就该是收获的时候了。我们写了一个不同的Python脚本,当它执行时,会运行一个简单的程序来显示eth0和wlan0的IP地址。它也有一个粗略的菜单结构,你可以在LCD Pi Plate上按向上和向下按钮来做切换,分别显示eth0和wlan0的IP地址。而其他按钮将会返回到菜单屏幕。

要运行此程序,只需运行命令:

如果你需要在后台运行此程序,只需要在./LCD-pi-plate-demo.py后面加一个&号即可(但必须在su-c调用的引号之内)。

你应该在LCD面板上看见这些信息:

如果你在LCD Pi Plate上按向上按钮,它会尝试显示eth0的IP地址(如果有的话)。

如果你在LCD Pi Plate上按向下按钮,它会尝试显示wlan0的IP地址(如果有的话)。

尽管我们知道树莓派并没有内置无线网络支持,不过大家一般都是通过连接一个USB无线设备来添加这种支持的。

虽然在我们的脚本中是用编码写死的形式显示eth0和wlan0和IP地址,但如果你想显示其他网络设备的话,也很容易进行修改。这段代码很简单:如果你对Python有一个基础的理解,你就可以找出它们是如何工作的。不妨随意在我们的代码上修改并完善它!

时间: 2024-09-20 10:46:26

《树莓派实战秘籍》——2.8 技巧28监视Pi的IP地址的相关文章

【大数据技巧】MaxCompute中实现IP地址归属地转换

免费开通大数据服务:https://www.aliyun.com/product/odps 大数据平台的成熟使得更多种类的非结构化.半结构化的数据分析成为可能,其中应用非常广泛的一种场景就是日志分析.在日志类型数据的清洗转换过程中把IP地址转换为归属地又是极为常见的一种场景.那么利用MaxCompute如何实现IP地址向归属地的转换呢? 俗话说:巧妇难为无米之炊,要实现IP地址与归属地的转换必须要有IP地址库,不过好在互联网上已经有一些资源,而且还提供免费版本的IP数据库下载详见:www.ipi

《树莓派实战秘籍》——导读

前 言 树莓派的灵感诞生于埃本·厄普顿在剑桥大学负责计算机科学专业学生工作期间(参见前言中的描述),他发现准大学生需要有更多的机会获得编程经验才可以达到大学水平.如我们现在所知的,关于什么将会成为Pi的第一个概念设计诞生于2006年,阿尔法版在2011年年底通过验证,最初的10块板在2012年年初被拍卖,价格高达16 000英镑. 首批10 000台树莓派于开始销售,截至2011年年底,它的SD卡映像文件已经被下载超过了50000次,暗示其普及时代即将来临.当时两家英国的销售商Premier F

《树莓派实战秘籍》——1.13 技巧13给Pi分配静态IP地址

1.13 技巧13给Pi分配静态IP地址 树莓派实战秘籍如果你希望每次都能够通过同一个IP地址连接到Pi,而不是临时去查看它,那么你需要为它分配一个静态IP地址. 许多ISP使用动态IP寻址,这意味着你每次连接到互联网时都会得到一个不同的IP地址.如果你要定期通过SSH连接到Pi(参见技巧12),以使用VoIP(参见技巧32)或者因为其他原因需要每次都要有相同的IP地址,你可以设置一个静态的IP地址. 在Pidora中,如果你运行的是headless模式,那么你可以按照技巧11的说明来做.如果不

《树莓派实战秘籍》——1.12 技巧12连接SSH

1.12 技巧12连接SSH 树莓派实战秘籍 对于任何headless项目.以及任何从方便的角度来说和你相距较远的项目,或者仅仅只是因为你懒得穿过房间,这些情况下你都需要知道如何SSH到你的树莓派上. OpenSSH,由OpenBSD项目为安全通信所创建的开源的工具集,很可能在你选择的任何发行版上都有效. 如果你有一点点复古倾向,请注意"Squeeze"这个在"Wheezy"之前的版本,它并没有在默认情况下运行SSH. 如果你不能确定,你要做的就是尝试SSH到你的P

《树莓派实战秘籍》——1.17 技巧17添加重启按钮

1.17 技巧17添加重启按钮 树莓派实战秘籍也许你已经注意到Pi缺少了某种电子产品中很常见的东西:电源开关.版本2的B型树莓派对此做了一个小小的修补. 从你的计算机中拿走电源的on/off开关,虽不至于造成彻底的不方便,但肯定不只是造成了你的隐约不舒服这么简单,但这就是树莓派现在的情况.一个简单的修补方法是,不管你手中拿着的是什么主板,使用时都将它插入到带on/off开关的电源插板中.不过对于版本2的B型树莓派主板来说,你还有另一种选择. 这种板的一个新增功能是标记为P6的地方,它很容易被忽视

《树莓派实战秘籍》——2.2 技巧22构建一个定制内核

2.2 技巧22构建一个定制内核 树莓派实战秘籍 对于很多技巧来说,标准的预购建Linux内核映像已经足够了,不过有些需要的选项或驱动并没有被标准内核启用.这个技巧打开了一些额外的选项,并将对本书中其他的技巧有用. Linux内核是因为以下几个原因而成为一个奇妙的操作系统核心的:首先是它的多功能性,而且它原生支持了大量的架构和设备:然后是其开源代码库,树莓派基金会提供了预购建的专为支持树莓派硬件的客制化的Linux内核映像及相应的源代码树,让你可以建立你自己定制的可以工作在树莓派上的内核映像.这

《树莓派实战秘籍》——2.6 技巧26仿真Pi

2.6 技巧26仿真Pi 树莓派实战秘籍无论你是在旅行过程中没有带着Pi的情况下需要紧急测试什么东西,还是你的孩子已经接管了Pi而你一时找不着他,这个技巧有时可以很方便地在另一台机器上模拟Pi,这时QEMU就可以帮助你. 快速模拟器(QEMU,Quick EMUlator的简称)是一个开源的.托管的虚拟机管理程序.这意味着你可以用它在你平时的计算机(比如,一个x86的笔记本电脑)上来运行一个树莓派(使用ARM硬件)的Linux发行版. 它有两种模式,第一种是用户模式仿真,可以让你运行不是为你的机

《树莓派实战秘籍》——1.5 技巧05监测树莓派的硬件

1.5 技巧05监测树莓派的硬件 树莓派实战秘籍你是否担心你不在家时你的Pi投身疯狂派对?这个技巧是关于如何弄个摄像头对准它并将视频传输到Internet上的.开个玩笑!这个技巧中的工具只能监测你的这个小巧硬件的物理状态. 一个"正常的"Linux计算机可能会包括板载健康监测传感器,有相当多的监控芯片和元器件被用在各种系统上,但是对于树莓派来说,所有的硬件完全隐藏在Broadcom片上系统里面,因此你无法使用通常的方式访问它. 为了能够使用这些元器件监视你的Pi的健康,需要使用vcge

《树莓派实战秘籍》——2.3 技巧23更新到最新的预建内核

2.3 技巧23更新到最新的预建内核 树莓派实战秘籍 让你的树莓派使用最新的Linux内核?你当然可以这么做,而且有一种方法可以让你不必从源代码构建就能够获取它们. 树莓派基金会的好人们经常努力工作增加新的功能到Linux内核源代码树中,而且他们又进一步定期更新一份预构建的Linux内核映像文件的拷贝.这个内核专门为树莓派配置了一系列选项及模块.使用这个内核意味着你可以确定所有内置到树莓派的硬件,以及任何树莓派的特定功能都可以正确地启动. 发行版特点 一些Linux发行版可能假定某些没有在树莓派