使用wpa_cli命令行配置Wi-Fi无线网卡

wpa_cli是命令行界面下的无线网连接工具。

通过wpa_cli管理备选的网络列表。在备选网络中启用的网络,树莓派会自动试图连接。

输入sudo wpa_cli启动wpa_cli的命令行界面(必须sudo)。常用的指令如下:

status:列出目前的联网状态。

list:列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。

add_network:增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。

set_network [network_id] ssid “Your SSID”:设置无线网的名称(SSID)

set_network [network_id] key_mgmt WPA-PSK:设置无线网的加密方式为WPA-PSK/WPA2-PSK

set_network [network_id] psk “Your Password”:设置无线网的PSK密码

enable_network [network_id]:启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。

disable_network [network_id]:禁用网络。

save_config:保存配置。

举个栗子:

> add_network 4 <--- 记住这个号码! > set_network 4 ssid ‘”Your SSID”‘ OK > set_network 4 key_mgmt WPA-PSK OK > set_network 4 psk “Your Password” OK > enable_network 4 OK > save_config <--------别忘了这个,否则重启之后网络配置可能丢失 OK 如果是图形界面,请用桌面上的Wi-Fi Config工具。图形工具的使用很简单就不做教程了……

用树莓派实现网络批量自动安装CentOS

一个让网络安装centos更轻松的项目。

使用树莓派 + Archlinux + tftp + dhcp + vsftp 来实现.

你只需要做的事就是搞一个ks.cfg, 放到指定的位置, 然后带着树莓派和USB供电线去机房就OK了.

下载地址

(含centos5.3安装程序, 密码请修改ks.cfg文件, 大小: 5.85G)

http://kuai.xunlei.com/d/ikrmAgI6GgCfDUtSbbe

(纯净版, 即不含/srv/ftp/iso目录下的安装镜像, 大小: 529.1M)

http://kuai.xunlei.com/d/ikrmAgKbGgAPFUtS6e4

简要安装说明

解压后是一个.img文件, 使用dd拷到你的SD卡上即可, 上电即可使用

如果你下载的是纯净版, 你还需要使用类似gparted的软件调整下分区大小, 以便有足够的空间可以在/srv/ftp/iso目录下面放安装镜像的解压缩的文件

用户名和密码都是保持默认的root/root

相关配置内容

tftp, ftp的存储目录位于 /srv

/srv/ftp/ 下面放置ks.cfg

/srv/ftp/iso 下面放置centos的安装iso解压后的文件

/srv/tftp 下面放置网络启动需要的引导文件

/srv/tftp/pxelinux.cfg/default 该配置文件中配置ks文件的网络地址, 如果你修改了 raspberry pi 的 IP 的话, 就需要修改这里

/etc/dhcpd.conf DHCP的配置文件, 默认分配 192.168.100.1 到 192.168.100.200 的 IP, 也就是说默认是只支持这么多机器同时安装

/usr/lib/systemd/system/tftpd.service 可以修改tftp的目录, 默认目录/srv/tftp。

/etc/conf.d/network@eth0 可以修改本机的IP地址, 子网掩码, 广播地址, 网关地址, 默认值分别是: 192.168.100.250, 24, 192.168.100.255, 192.168.100.250

相关的控制命令

tftp — systemctl status tftpd.socket

vsftp — systemctl status vsftpd.service

dhcp — systemctl status dhcpd4.service

其他

tftp, vsftp, dhcp 已经设置为开机自启动了。

ks.cfg 的生成请注意CentOS版本, 不同版本的CentOS的软件包可能有所出入,不正确的软件包选择会导致自动安装停止。

现在还没有测试效率如何, 感觉树莓派的I/O是瓶颈,不过现在给一台电脑装的话没啥响应速度问题。

在考虑是否有必要开发个网页界面用来显示安装进度,毕竟现在看不了安装的进度。

项目主页:http://ety001.github.io/raspberry-pi-network-setup-centos/

给树莓派装上触摸屏

准备设备:

1.树莓派1个

2.带触摸功能的液晶显示屏(在购买之前一定要确认触摸芯片是否是eGalax的芯片,我的芯片型号是XPT2046 )

操作步骤:

1.下载基于最新debain-02-09版本上编译的系统镜像(推荐用8G的卡导入镜像,部分4G卡会提示空间不足)

网盘地址:http://pan.baidu.com/s/1cKfZI

2.刷好系统启动树莓派,使用lsusb命令查看触摸屏是否识别:

pi@raspberrypi ~ $ lsusb Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 1c4f:0002 SiGma Micro Keyboard TRACER Gamma Ivory Bus 001 Device 005: ID 0eef:0001 D-WAV Scientific Co., Ltd eGalax TouchScreen

如果看到有eGalax,恭喜你的的触摸屏已经找到了,如果没找到请确认触摸屏的usb接口是否正确连接,确认触摸屏的芯片是否是eGalax的。

3.登录树莓派,进入图形界面,运行xinput_calibrator程序软件调校屏幕(镜像中已经安装了软件)

pi@raspberrypi ~ $ xinput_calibrator

屏幕会出现提示,让你去点击对角线的小叉,点击完后屏幕会提示一个调整信息,如下:

Calibrating EVDEV driver for “eGalax Inc. USB TouchController” id=8 current calibration values (from XInput): min_x=1938, max_x=114 and min_y=1745, max_y=341 Doing dynamic recalibration: Setting new calibration data: 121, 1917, 317, 1741 –> Making the calibration permanent <– copy the snippet below into ‘/etc/X11/xorg.conf.d/99-calibration.conf’ Section “InputClass” Identifier “calibration” MatchProduct “eGalax Inc. USB TouchController” Option “Calibration” “121 1917 317 1741″ Option “SwapAxes” “1″ EndSection 4.按照提示将以下内容复制这部分内容 Section “InputClass” Identifier “calibration” MatchProduct “eGalax Inc. USB TouchController” Option “Calibration” “121 1917 317 1741″ Option “SwapAxes” “1″ EndSection 5.编辑文件”/usr/share/X11/xorg.conf.d/01-input.conf“,将刚才复制的内容添加到文件的最后,并保存。 pi@raspberrypi ~ $sudo nano /usr/share/X11/xorg.conf.d/01-input.conf 6.重启树莓派,好好享受的你触摸屏吧!

介绍树莓派初级用户工具“NOOBS”

New Out of Box Software (NOOBS)是树莓派官方发布的工具,是一种新颖的设置程序,很方便的让第一接触Linux和树莓派的玩家能更轻松的运行上树莓派。可以抛开各种复杂的网络和镜像安装软件,甚至可以抛开电脑就能让你安装上你想要的系统。你只需要一张拷入NOOBS文件、容量大于4GB的SD卡就可以实现(推荐使用 更大容量 Class10 级别的SD卡 确保有更多可用空间和更高的读写速度)。

1.首先格式化你的SD卡(格式化为FAT32),并下载最新版本的NOOBS文件(下载地址)

2.然后解压NOOBS压缩包,将NOOBS文件夹的全部内容拷贝到SD卡的根目录中

3.将SD卡插入树莓派,并插上相关配件(显示器,鼠标键盘等)

4.NOOBS会自动将你的SD卡分区

5.然后会弹出安装窗口,可以看到目前几个主流的树莓派系统都包含在NOOBS文件中,无需上网,也无需其他电脑辅助,你可以根据自己的喜好选择其一安装,这里我选择了Raspbian

6.按下“Install OS”安装系统就会开始安装,完成后会然你确认,然后Raspberry Pi会重启

到此,你的系统就安装完成了,树莓派也能正常启动了!

不过NOOBS的功能,不仅仅在于此,它还为大家提供能系统恢复功能(Recovery),当你的系统不经意损坏后,可以恢复初装系统,类似电脑上GHOST工具的功能吧!

下面我就简单说说如果下载一个新的系统并使用NOOBS工具恢复更新

1.下载新的系统镜像压缩包(NOOBS目前只支持.XZ和.ZIP的压缩格式),拷入SD卡的images文件夹中,修改文件名替换你要更新的系统镜像(为了少点空间,可以删除不用的镜像)

2.按住键盘的Shift键,启动树莓派,进入恢复模式

3.选择你的系统,然后点击安装,然后重启

树莓派+温度传感器实现室内温度监控

实现家庭室内温度远程监控只是“智能家居”的初步,目的是下班前如果发现家里温度过高,可提前用手机发送指令提前5-10分钟打开空调降温(如何通过手机发送指令控制空调有机会在进行介绍)。

一、硬件准备

1、树莓派(Raspberry Pi)一个

2、DS18B20温度传感器一个(淘宝大概5元左右)

3、4.7kΩ电阻一个 或 DS18B20模块一个(笔者用,淘宝1.5元一个,其实就是店家帮忙把电阻焊好了,接线稍好看些)。

4、杜邦线三根(双头母)

二、接线方式(如图所示)

三、确认硬件接线是否正确并生效,并读取温度

1、首先升级内核(可忽略,但如果版本较老,可能影响设备读取)

apt-get update apt-get upgrade

修改配置:

sudo nano /boot/config.txt

在最后一行手动添加这个,保存并重启树莓派。

dtoverlay=w1-gpio-pullup,gpiopin=4

根据官方的说法,在2015-02-16之后的Raspbain版本,为了防止GPIO的冲突,使用了新的dt策略,查看 /boot/overlay/readme

2、确认设备是否生效

sudo modprobe w1-gpio sudo modprobe w1-therm cd /sys/bus/w1/devices/ ls

显示结果:

pi@raspberrypi:~$ cd /sys/bus/w1/devices/ pi@raspberrypi:/sys/bus/w1/devices$ ls 28-00000494cb79 w1_bus_master1

28-00000494cb79就是笔者外接的温度传感器设备,但并不是每个客户端都显示一样的,这个是传感器的序列号。

3、查看当前温度

cd 28-00000494cb79 cat w1_slave

显示结果:

70 01 4b 46 7f ff 10 10 e1 : crc=e1 YES 70 01 4b 46 7f ff 10 10 e1 t=23000

第二行的t=23000就是当前的温度值,要换算成摄氏度,除以1000,即当前温度为23000/1000=23摄氏度。

四、用python读取温度值

文件存放:/home/pi/temperature.py

内容如下:

#/home/pi/temperature.py #打开温度传感器文件 tfile = open(“/sys/bus/w1/devices/28-00000494cb79/w1_slave”) #读取文件所有内容 text = tfile.read() #关闭文件 tfile.close() #用换行符分割字符串成数组,并取第二行 secondline = text.split(”

“)[1] #用空格分割字符串成数组,并取最后一个,即t=23000 temperaturedata = secondline.split(” “)[9] #取t=后面的数值,并转换为浮点型 temperature = float(temperaturedata[2:]) #转换单位为摄氏度 temperature = temperature / 1000 #打印值 print temperature

在命令行运行,即可得出结果数值:

python /home/pi/temperature.py

五、上报到yeelink

yeelink是国内比较知名的免费物联网数据平台,国外有COSM(https://cosm.com)。

申请yeelink账号及添加设备和传感器,以及API的学习,本文跳过,请大家自行去学习一下。

根据yeelink API的规则,我们需要提供一个文本文件,内容为一段JSON,如下:

{ “timestamp”:”2012-03-15T16:13:14″, “value”:294.34 }

若未指定timestamp, 服务器会自动加上当前时间,所以本文的操作不添加该字段

1、修改python,将温度值用JSON格式保存到一个文本文件,全部如下:

#/home/pi/temperature.py tfile = open(“/sys/bus/w1/devices/28-00000494cb79/w1_slave”) text = tfile.read() tfile.close() secondline = text.split(”

“)[1] temperaturedata = secondline.split(” “)[9] temperature = float(temperaturedata[2:]) temperature = temperature / 1000 res = ‘{“value”:%f}’ %temperature output = open(‘/home/pi/datafile.txt’, ‘w’) output.write(res) output.close

python将温度值写入:/home/pi/datafile.txt

2、新增yeelink.sh脚本

文件位置:/home/pi/yeelink.sh

内容如下:

sudo python /home/pi/temperature.py curl –request POST –data-binary @”/home/pi/datafile.txt” –header “U-ApiKey:XXXXXXXXXXXXXXXX” http://api.yeelink.net/v1.0/device/1969/sensor/2533/datapoints

将U-ApiKey:XXXXXXXXXXXXXXXX替换为自已账户的API Key。

后面的URL也需要替换为自己申请的传感器URL。

3、添加到计划任务

#为脚本增加可执行权限 sudo chmod +x yeelink.sh #将脚本加入cronjob(计划任务) sudo crontab -e #在cornjob文件中添加下面一行,并保存(表示10分钟执行一下脚本,时间可自行修改) */10 * * * * /home/pi/yeelink.sh

完了!我的温度传感器数据展示页面:http://www.yeelink.net/devices/1969

参考文档:

http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/temperature/

http://blog.turningdigital.com/2012/09/raspberry-pi-ds18b20-temperature-sensor-rrdtool/

http://webshed.org/wiki/RaspberryPI_DS1820

新系统更新后gpio读不了w1了的解决办法:

http://bbs.nxez.com/thread-67-1-1.html

把树莓派配置成无线路由器

准备拿树莓派做个应用,当作无线路由器,配置的结果就是把树梅派的网络连接通过无线网卡分享出来。做分享的无线网卡当然就不能同时来连接网络了。

实现无线共享需要的软件包是hostapd。raspbian官方安装源提供的hostapd需要无线网卡支持nl80211协议,不是所有的网卡都能配置成功,如果不慎购买了不支持nl80211协议的网卡,需要自行编译适合网卡的hostapd软件包。

因此选用无线网卡的时候要留意,我选用的网卡型号是Tenda w311mi,芯片是Ralink Rt5370 可以完美支持hostapd,同款芯片的都应该可以成功配置。以下是配置全过程。

1.配置无线网卡为固定ip地址

输入命令

sudo nano /etc/network/interfaces

编辑网络配置文件,找到这几行注释掉。

#allow-hotplug wlan0 #iface wlan0 inet manual #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf #iface default inet dhcp

添加以下几行。

iface wlan0 inet static address 192.168.10.1 netmask 255.255.255.0

这里需要说明的是 192.168.10.1是给raspberry pi 做的路由器分配的网关 ip,这个不能跟局域网里其他路由网关ip重复。

2 安装hostapd

输入命令

sudo apt-get install hostapd

编辑hostapd 默认配置文件

sudo nano /etc/default/hostapd

找到

#DAEMON_CONF= “”

修改如下

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

编辑 hostapd 配置文件

sudo nano /etc/hostapd/hostapd.conf

# 把无线网卡wlan0 作为接入点 interface=wlan0 # 使用nl80211驱动 driver=nl80211 #共享网络的SSID是RaspberryPi ssid=RaspberryPi # 网卡工作在802.11G模式 hw_mode=g #无线网卡选用11信道 channel=11 # WPA2 配置 wpa=2 #wpa密码是raspberry wpa_passphrase=raspberry #认证方式为WPA-PSK 加密方式为CCMP wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP rsn_pairwise=CCMP beacon_int=100 auth_algs=3 wmm_enabled=1

保存退出,输入命令。

sudo service hostapd restart

启动hostapd 服务。

3.安装dhcp服务

输入命令

sudo apt-get install isc-dhcp-server

备份配置文件

sudo mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak

编辑新的配置文件

sudo nano /etc/dhcp/dhcpd.conf

复制粘贴以下内容

default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.10.0 netmask 255.255.255.0 { range 192.168.10.10 192.168.10.100; option routers 192.168.10.1; option broadcast-address 192.168.10.127; option domain-name-servers 8.8.8.8,8.8.4.4; default-lease-time 600; max-lease-time 7200; }

保存退出,重新启动服务。

sudo service isc-dhcp-server restart

这个时候可以在无线网络列表里面连接RaspberryPi,连接成功以后会分配一个IP。

4.配置路由转发

通过前面的配置过程,已经可以通过无线网络连接到Raspberry pi的无线网卡,但是还不能连接到互联网,下一步就是让从无线网卡 wlan0 进来的数据 转发到 有线网卡 eth0上面 通过有线网卡连接网络接到互联网。

因为eth0是获取的动态ip,所以这里通过iptables来实现简单的路由转发。

输入命令

sudo iptables -F sudo iptables -X sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE sudo bash iptables-save > /etc/iptables.up.rules exit

输入命令

sudo nano /etc/network/if-pre-up.d/iptables

把下面两行复制粘贴到编辑窗口

#!/bin/bash /sbin/iptables-restore < /etc/iptables.up.rules 保存退出,输入命令。 sudo chmod 755 /etc/network/if-pre-up.d/iptables 开启内核转发,输入命令。 sudo nano /etc/sysctl.conf 找到这里。 # Uncomment the next line to enable packet forwarding for IPv4 #net.ipv4.ip_forward=1 去掉 net.ipv4.ip_forward 前面的#,保存退出,输入命令。 sudo sysctl -p 配置完毕 通过无线连接上以后ping一下外网,可以通了,这样就可以把Raspberry Pi 当作路由器来用了。

用树莓派建立家庭媒体中心

树莓派是最近英国发布的“微PC”,只有信用卡大小,并具有丰富的接口,很适合做家庭媒体中心HTPC。

从Raspbmc网站上下载最新优化好的xbmc系统(更多下载内容可以参考本站页面),烧到SD卡上,整个系统就可以跑了。不过不建议用Raspbmc的Installer,从国外网站下载实在太慢,所以可以直接下载镜像,解压后得到sd.img,用Win32DiskImager烧到SD卡中。

插上HDMI,电源适配器,鼠标,SD卡,网线(最好连路由,可以自动获取IP),就可以开机了,等一段时间,就可以看到XBMC的初始画面了。

这里遇到了一个小问题,启动之后,USB鼠标不工作,换USB口也无济于事。后来查国外论坛后才意识到是电源适配器的问题,因为树莓派的电源接口是5V 1A的micro usb接口,我用了一个山寨的苹果充电器,可能达不到1A,除去树莓派本身的电流消耗,分给USB的电流可能带不动鼠标,所以鼠标没反应。换了一个正牌的手机充电器(5V 760mA)之后,鼠标运行正常,可见山寨不禁用啊。由此我也初次认识到硬件比软件更复杂,出问题的原因更多样化,以后找问题得仔细了。

进入系统之后改字体,改中文,改时区,安装中文看视频插件合集一切顺利,可以看优酷,土豆,搜狐等视频。视频效果挺不错,都是720P的高清视频,基本不卡顿,不过在播放视频时,因为视频分节,所以在每播放大约6分钟时会有几秒的黑屏,不过不影响观看。

用IPod Touch试了一下Air Play,在IPod上播放音乐时,通过无线转到电视上播放,还有可视化效果,很好很强大,又一次佩服苹果的理念了。

试了一下用电视的遥控器通过HDMI当做遥控器控制树莓派,结果无反应。可能国内厂家的电视HDMI没有支持CEC协议,后悔没有买国外的电视啊。

只能曲线遥控了,在XBMC上打开远程遥控remote control,就可以用ios或者Android的xbmc客户端当做遥控器用了。免去了鼠标,在沙发上遥控电视体验更棒,落满灰的IPod终于又有用处了呵呵。

这一切都是现成的,当然得感谢网络上的贡献开源代码的高手,让一切的美好变得更简单。没有开源就没有现在的发展,倡导开源,是每一个IT人应该做的。

后记:因为树莓派的usb供电我给接到了电视的usb口上,所以在每次关电视的时候一块儿把树莓派强制关机,有几次在强制关机后,raspbmc无法启动,只能重装,看来树莓派还是应该一直独立供电,7*24小时工作的。

现在的raspbmc-finally版好像有问题,就是看一会视频后声音自动关闭,直到播放到下一节视频时才又声音,而这种情况是以前版本没有的。所以现在用的是xbian,没有以上的这些问题。

开启UPnP协议后,还可以用智能手机暂停后点击分享到xbmc上,就可以像AirPlay或者小米盒子一样在电视上看手机上的媒体了,测试了图片,音乐和视频都可以支持到,又多了一个实用功能。

现在我可以在我的大屏幕电视上在线看优酷、搜狐等网站视频,可以放移动硬盘中的高清电影,可以无线看电脑下载好的视频,还可以分享手机上的一切媒体,这么多功能就在一个小盒子上实现,树莓派值得拥有。

via

树莓派超频指南

如果2012年有什么硬件产品能让你心生爱慕的话,那一定是树莓派这个小可爱了,现在这个在英国设计生产的微型电脑已经风靡了整个世界。配备ARM处理器、能运行各种操作系统(最佳选择是按照定制版的Debian)、只有信用卡般大小,但性能上确一点不弱,足够用于做家庭服务器、影音中心等工作。

可是,有一些用途可能需要更强的性能,对此你可能会说……

树莓派的硬件

树莓派配备的是作为一台可用电脑的最低配置——否则怎么能做到这么小?

256MB的RAM,700MHZ的ARM11处理器。比上AMD或Intel的处理器,当然是弱了很多,但树莓派的长处并不是性能,而是它的灵活性。正是因为这种灵活性,它可以轻松的超频。需要注意到的是后续版本的树莓派加大了RAM容量并扩充了外围接口的种类。

怎么样才能将树莓派超频

你需要首先安装raspbian操作系统(基于Debian的linux系统),我们之前的只能能帮助你顺利完成这一步。

如果你已经使用树莓派一段时间,需要先更新Raspi-config,以便配置程序添加新功能。使用下面的命令:

sudo apt-get update && sudo apt-get install raspberrypi* raspi-config

这会更新设备固件,完成之后重启树莓派并运行Raspi-config。它会让你设置一些选项,其中一项就是超频。

如图所示,在Raspi-config中选择合适的选项,接着在列出的时钟频率中做出选择。

如果你不想更新Radpbian操作系统,还有另一种方法,创建一个config.txt文件,可以用notepad++在windows上先创建好。

安装好notepad++之后,打开设置>选项>新文档格式,选择Unix格式。关闭设置窗口按CTRL+N打开一个新的文件,输入:

carm_freq=800 gpu_freq=300 sdram_freq=450

上面的命令将CPU频率设到800MHZ,你所要做的只是修改carm_freq这个参数,就能实现超频!现在你只需要将config.txt这个文件放到SD卡的启动分区中。

求救,我的树莓派不能启动了!

不幸的是,如果你设置了过高的时钟频率,树莓派可能就启动不了了。别担心,可以通过重设频率的方法来解决这个问题。

当你启动树莓派的时候,按住SHIFT键,再次运行Raspi-config程序并设置一个低一些的频率。

如果你使用的是配置config.txt的方法,修改这个文件中的参数,设置一个低一些的频率。

树莓派的官方网站推荐用Quake 3来测试当前的频率设定是否合适。注意要是你的小Pi通风不是很顺畅,你可能需要调整出风口。一些在线商家已经开始出售树莓派的专用散热器,如果你想超频到900MHz以上,推荐你买一个。

鲜美的树莓派!

还有些方面你需要注意。并不是所有的树莓派都是一样的,这也就意味着并不是别人能超到什么样的频率,你的树莓派就一样可以。

同样的,你应该给你的树莓派配置稳定的电源,最好是一个质量上乘的电源适配器,加上结实的电缆或是micro USB连接器。超频对一些常见任务的性能提升会比较明显,比如浏览网页、文档编辑,但如果是作为媒体中心,可能就收效甚微了。

为了获取最佳的效果,建议开始时设置低一些的频率,慢慢调高,再测试,获取最佳的体验!

基于树莓派构建强大的家用自动化系统

夏天最棒的事情莫过于在家里搞树莓派了,“派”上那一层冰激凌更为美味,尤其是能免费搞到的时候。Smartenit ZBPServer这个软件正是把你的树莓派变成“家庭辅助派”的那一层奶油,它是一个非常成熟的自动化网关,基于ZigBee,INSTEON和X10协议,可以管理家庭或者大型建筑内的自动化网络。在Smartenit提供的几种USB自动化接口中选择一种,就可以使用有巨大生态系统的很多自动化设备,包括光照,HVAC(采暖通风与空调),灌溉,家电控制,能源管理,水源管理等。

下文的“How To”部分教你如何把Smartenit软件装到树莓派上,并搞出些特殊的玩意儿。

所以抓起你的树莓派,兼容型Smartenit自动化控制接口,搭起一台ZBP服务器,就可以享受到一个强大又廉价的家庭自动化网关了。然后你就会觉得,家庭辅助派是最棒的了!

它是如何工作的

用户界面:安卓,iOS应用,桌面软件,或者用浏览器通过宽带连接到网关。

ZBP服务器增强网关: 装载了ZBP服务器固件的树莓派,通过ZigBee 和/或 INSTEON连接到设备的生态系统,再通过网络连接到用户。可以通过局域网访问也可以通过外网访问。ZBP服务器软件包含了一些设定,把网关变成了一个强大而灵活的自动化控制器。

自动化接口: 通过RF或电力线连接到自动化设备,通过USB连接到网关。接口可以是一个支持3种协议的设备,也可以只支持ZigBee或INSTEON。

设备的生态系统: 和ZigBee, INSTEON,X10兼容也就意味着草动系统,以及光,门,窗户,家用电器,洒水器,HVAC,炉子,水池等等的感应器可以在好几个制造商处买到。

技术细节

这部分是给极客们看的:

将Linux打造成强大的家用/建筑内用的自动化网关

ZBP服务器软件是一个Linux“间隔层”,可以实现并且管理多个自动化网络。服务器连接了低层(物理)接口和ZigBee,INSTEON以及X10网络,以及一些高层的用户应用,通常是一些web应用,手机应用或是桌面客户端。ZBP服务器把有着不同自动化协议的各种设备,抽象出了一个逻辑对象,从而简化了客户端应用。ZBP服务器监控并且控制各个结点,负责网络管理,自动化事件响应,场景生成和管理,所以客户端软件只要专注于图像界面的设计就可以了。

ZBP服务器可以处理一个典型的自动化应用中所需的一切功能。无论使用的协议是什么,结点数目是多少,使用了多少个自动化网络,结点,网络,系统,区域,事件,场景对象的信息都可以直接传递给客户端程序。服务器中包含了一个强大的事件引擎(Actions),让自动化事件的设置变得简单。给客户端的接口包括D-Bus(用于Linux进程间通信)和用于在安全TCP端口上通信的一系列XML及Google Protobuf。服务器中包含的驱动和协议支持Smartenit的ZBPLM,USB-CID和Smarthome的PLM(的所有版本)。

如何搭建

下文介绍如何把树莓派打造成强大的家用自动化网关,和我们生产的Harmony网关功能一样。就和做派一样简单!只要搞一个我们的接口,从我们的服务器上下载ZBP服务器软件并且安装,嘿!一个Harmony网关就建好了,还附加有树莓派的全部功能。

选择一个自动化接口

USB-CID: 支持带有家庭自动化控制的ZigBee Pro协议。

ZBPLM:支持带有家庭自动化控制的ZigBee Pro,INSTEON和X10协议。需要一个USB转DB9连接器。

EZIComm:支持INSTEON和X10协议。需要一个USB转DB9连接器。

在树莓派上安装ZBP服务器软件

请先确定ZigBee或INSTEON接口已经安装(连接)到了你的树莓派上面

第一步:打开SSH客户端,输入下文的命令;

第二步:打开软件源列表

pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list

第三步:在列表最后加入下面一行

deb http://harmonygateway.com/repo/ZBPServer/debian/arm/RPi /

(译注:原文表达不确切,稍作修改)

第四步:更新软件源

pi@raspberrypi ~ $ sudo apt-get update

第五部:安装ZBP服务器

pi@raspberrypi ~ $ sudo apt-get install zbpserver

第六步:重启树莓派

pi@raspberrypi ~ $ sudo reboot

搭建好的树莓派网关和我们的Harmony网关的操作是相同的。

下载地址

TCP客户端API:用来和ZBP服务器通信的XML API

iSmartenit AIR:2013年2月更新 - Windows, Mac和Linux桌面的Harmony客户端。需要Adobe Air。

Debian安装包

BerryIO:用浏览器控制树莓派

BerryIO是一个基于Web浏览器的树莓派控制系统。目前项目托管在Github上,采用GPL V3许可证。BerryIO在树莓派官方的Raspbian Wheezy系统上测试过,应该也能在其他系统上工作。想使用BerryIO很简单,只需要一台运行Raspbian系统的树莓派以及一个Web浏览器就可以了(IE8之前的版本不支持)。

安装步骤请参考项目的 Installation Instructions

项目细节

BerryIO的长远目标就是让开发者能够通过任何一台带有浏览器的设备远程控制树莓派以及它的GPIO端口,而不必麻烦将树莓派连接到一个显示器或者键盘上。新的API模式扩展了之前的功能,使得通过创建移动应用来操作BerryIO成为了可能。

BerryIO的工作方式是这样的:一旦树莓派启动,BerryIO就自动连接到有线网或者其中一个预定义好的无线网中,然后给用户发一个带有Web链接的邮件。用户就可以点击这个链接然后在浏览器中打开控制界面(当然,需要用户输入用户名和密码)。

BerryIO也带有一个命令行界面,所以你也可以按照自己希望的方式通过SSH直接输入命令。

对于那些有兴趣了解这其中的技术细节的人,BerryIO基本上是用 PHP开发的,作为命令行和Web浏览器界面的后端。SPI总线的控制是用C语言完成的,邮件发送是通过msmtp完成的,网络部分可以通过Raspians系统的wpagui来管理(尽管我希望今后能在BerryIO中包含配置网络的功能)

包含的特性

对GPIO的完全控制,包括输入/输出模式的切换以及打开关闭切换

支持树莓派修订版1和2,包含512MB的版本

带有拍照功能,以及调整摄像头的设定(很快会包含视频功能)

SPI总线的DAC控制以及ADC值的显示

能够控制HDD44780或KS0066U兼容型LCD(以及VFD)数字型液晶显示屏

显示CPU的信息,包括温度

磁盘以及内存使用率的信息

可查看网络状态,包括网络连接以及信号强度等信息

支持命令行界面,功能与Web浏览器界面相同

邮件通知功能

集成了系统升级功能

提供用于开发移动应用的API系统

DNSPod动态IP解析更新程序

脚本是Python写的,树莓派上可直接运行。

#!/usr/bin/env python #-*- coding:utf-8 -*- import httplib, urllib import socket import time params = dict( login_email=”email”, # replace with your email login_password=”password”, # replace with your password format=”json”, domain_id=100, # replace with your domain_od, can get it by API Domain.List record_id=100, # replace with your record_id, can get it by API Record.List sub_domain=”www”, # replace with your sub_domain record_line=”默认”, ) current_ip = None def ddns(ip): params.update(dict(value=ip)) headers = {“Content-type”: “application/x-www-form-urlencoded”, “Accept”: “text/json”} conn = httplib.HTTPSConnection(“dnsapi.cn”) conn.request(“POST”, “/Record.Ddns”, urllib.urlencode(params), headers) response = conn.getresponse() print response.status, response.reason data = response.read() print data conn.close() return response.status == 200 def getip(): sock = socket.create_connection((‘ns1.dnspod.net’, 6666)) ip = sock.recv(16) sock.close() return ip if __name__ == ‘__main__’: while True: try: ip = getip() print ip if current_ip != ip: if ddns(ip): current_ip = ip except Exception, e: print e pass time.sleep(30)

替换上你的Email,密码,域名ID,记录ID等参数,就可以运行了。 会在后台一直运行,每隔30秒检查一遍IP,如果修改了就更新IP。

获得domain_id可以用

curl -k https://dnsapi.cn/Domain.List -d “login_email=xxx&login_password=xxx”

获得record_id类似

curl -k https://dnsapi.cn/Record.List -d “login_email=xxx&login_password=xxx&domain_id=xxx”

加入开机自动运行的方法:

编辑/etc/rc.local文件,在“exit 0”那一行前面加上一行

su root -c “python /home/pypod.py”

via

更新:

新的 DNSPod API 有调整,参考:

https://www.dnspod.cn/docs/domains.html#domain-list

https://support.dnspod.cn/Kb/showarticle/tsid/227/

树莓秀:世界上体积最小的苹果机

图为乔布斯的模型耸立在1/3比例的迷你苹果机旁。

这台苹果机比乔布斯的模型还要矮一点,可以放在你的手心里。上面运行的系统是System 6,一定会让那些长久以来追随苹果公司的mac粉们尖叫起来。

这是世界上最小的苹果机。

刚有条关于世界上最老的,还能工作的苹果机的新闻,这个听上去可能有点不起眼。John Leake, RetroMacCast的联合主办人之一,用一块树莓派板子,PVC塑料,一些现成货做成了一台苹果机,这台苹果机也许是世界上最小的,是通过在Linux上运行Mac模拟器来实现的。他把这台机器叫做“迷你苹果机”。

为什么要做这个?Leake在他的博客上说:“我最喜欢做没有实际作用的东西了!”

亲爱的,我把电脑变小了

这台迷你苹果机是1/3比例的。Leake用PVC塑料(白色3M Sintra)制作的外壳,这种塑料可以轻松地用X-Acto小刀切开。用锉和砂纸打磨切面,特别要注意屏幕附近的曲线。侧面,底部的前面的板子用胶水粘成一块,上面和背面的板子粘成另外一块。

在讨论迷你苹果机的播客中,Leake提到组装这些外壳用了一共大约12个小时。如果他下次还要做这种超可爱的苹果机,他可能会用3D打印,不再手动去做外壳了。

迷你苹果机放在完全大小的苹果机旁

显示器是一块3.5英寸的复合LCD屏,用两块板子和几个Velcro tab固定起来。树莓派(也就是主板)放在一个4口USB分线器左边。两个USB接口朝外,两个朝里。

拥挤的内部包括一个树莓派(左边),几个USB分线器和供电系统

一个USB接口上连着WiFi适配器,另一个是蓝牙适配器。顶部是一个2接口的USB充电器,为树莓派和显示器充电。为了让空间布局合适一些,Leake不得不再做一点调整。

对于树莓派,我切掉了一部分SD卡,让SD卡的边缘几乎和树莓派板子平齐。我还切掉了顶部USB分线器的很大一部分,让它能在箱子顶部弯下去。最后我还得从电源上引一条线,直接焊在树莓派板子上。

机箱的背面有两个USB口,一个HDMI口和一个以太网口。

这可能是世界上唯一一台有HDMI输出接口的迷你型苹果机了吧!

对于这位苹果的超级粉丝而言,自己创造一些东西不是什么新鲜事。在2010年他就把一台Mac Plus变成了连环画Bloom County中臭名昭著的Banana Junior。(这里面会不会有什么商机?)

在软件方面,树莓派上运行的系统叫Rasbian,是Debian Linux的一个修改后的版本。Rasbian上面运行着Mini vMac模拟器,模拟器上运行System Software 6.0.8。最开始Leake觉得屏幕太小可能什么都看不清,后来发现效果其实可以的。

他说:“没有我想象中那么糟, 特别是为了让Mini vMac全屏运行,我改了启动配置文件,把显示输出改成512×384, 在屏幕上实际的分辨率是320×200。”

另一段视频中有迷你苹果机设计的一些细节,还展示了正在运行的迷你苹果机的一些画面(没有声音,树莓派上的Mini vMac的声音输出有些问题):

在RetroMacCast上有更多信息,RetroMacCast已经快300集了,John,干得好。

什么时候可以订购一台呢?

Leake和他新造出来的迷你苹果机

Windowns 下安装树莓派系统到SD卡

如果你使用的是 macOS 或 Linux 桌面版,请阅读这篇《使用 Etcher 给 SD 卡安装树莓派系统》。

准备工作

1.一张8G以上的SD卡,最好是高速卡,因为卡的速度直接影响树莓派的运行速度。

2.下载树莓派系统镜像文件,地址如下:

https://shumeipai.nxez.com/download 这里有很多种适用于树莓派的操作系统镜像,选择一个适合自己的。

3.Windows 下安装镜像的工具 win32diskimager,也可以在以上页面找到下载。

安装实战

1.解压下载的操作系统镜像压缩文件,得到 img 镜像文件(文件名后缀就是 img)。

2.将SD使用卡托或者读卡器后,连上电脑。

3.解压并运行 win32diskimager 工具。

4.在 win32diskimager 软件中选择系统镜像(img文件),“Device”下选择SD的盘符,然后选择“Write”,期间出现对话框选择是。

5.安装过程可能有些慢,根据你SD卡的速度而定的。

等到出现对话框 write successful 就说明成功了。

如果 Windows 提示你是否要格式化 SD 卡,请不要格式化,否则可能导致安装在隐藏分区中的系统被擦除而无法进入系统。

常见问题

1、安装完成之后,你会发现 SD 卡所显示的容量低于预期。这是因为在 Windows 系统中只能显示出 FAT 格式的 boot 分区,只有几十个 MB,更大的分区是 Linux 分区,Windows 系统是无法看到的,这并不影响树莓派系统的工作。

2、如果你尝试在装过系统的 SD 卡上重新安装系统,或者将 SD 卡转作为它用需要恢复隐藏分区。可以使用 SD Formatter 工具对磁盘进行格式化。步骤如下:

运行 SD Formatter,!!!仔细检查分区盘符三遍,避免出现格式化其他磁盘的惨剧!!!

点击 “Option”,“Format Size Adjustment” 选择 “ON”。

点击“Format”、“OK”。

完成。

可以看到 SD 卡可显示的容量已经恢复到正常了。“Exit”退出。

2019-4-16 更新。

首次使用树莓派,如何安装、启动及配置

使用树莓派所需的装备

1.8G 以上安装了树莓派系统的 SD 卡(安装系统参考 Windows下安装树莓派系统到SD卡、使用 Etcher 给 SD 卡安装树莓派系统)。

2.5V/3A 以上的 MicroUsb 接口电源适配器。

3.USB 接口的键盘鼠标一套。

4.HDMI线,用于接显示器,或者HDMI转VGA的,或者HDMI转DVI的,主要看你的显示器接口。

装入SD卡、连接外设

1.先将安装好系统的SD卡插入树莓派。

2.再将USB接口的键盘和鼠标接上树莓派。

3.用HDMI线连接树莓派和电视或显示器。如果你的显示器是 VGA 接口输出,那么还需要一根 HDMI 转 VGA 线缆。

4.用网线连接树莓派和路由器。(可选)

5.接上电源线,并打开电源。

启动树莓派

当你看到树莓派主板上红色电源指示灯亮起,绿色指示灯间或闪烁说明系统已经开始启动。顺利的话这时会看到树莓派的 Logo。

如果你使用的是 Lite 版本的系统,将出现登录的命令提示符。

请输入用户名:pi,密码:raspberry ,如果你发现键盘按键没有反应,说明兼容问题,请换键盘试试。

初始化设置

桌面版本在启动之后会自动进入初始化设置向导。

在引导下根据实际情况配置国家、语言、时区,设置好登录密码、WiFi。

如果你使用的是 Lite 版本的系统,建议查看树莓派开箱配置之更改键盘布局这篇教程进行设置。

其他使用方法

另外,可以使用Putty或VNC远程桌面连接到树莓派,在无显示器的情况下使用。详情请参考以下页面。

使用PuTTY登录到树莓派

树莓派 VNC Viewer 远程桌面配置教程

树莓派开启 SSH 服务的方法

寻求帮助

如果在安装过程中遇到问题,可以在树莓派论坛发帖求助。

https://talk.quwj.com/node/support