Grafana是一个优秀的开源图表系统,支持多种数据源,其中包括 InfluxDB和Prometheus
[Read More]树莓派3变身iBeacon发射器
iBeacon是apple公司提出的“一种可以让附近手持电子设备检测到的一种新的低功耗、低成本信号传送器”的一套可用于室内定位系统的协议。iBeacon技术通过低功耗蓝牙(BLE),也就是我们所说的智能蓝牙来实现。
[Read More]在树莓派3上搭建监控系统
之前用过tsar做监控,但没有基于浏览器的图表展示,而且tsar收集数据很频繁,容易写坏SD卡。后来一直用Xively SaaS服务,但因为服务在国外,访问速度一直不尽人意。直到今天早上读到InfoQ的一篇文章才知道了Prometheus,看了一下介绍后发现Prometheus的以下特点非常合适在树莓派上部署:
- 采用Go实现支持,天然支持跨平台,配置相当简单,维护和二次开发的成本小;
- 采集数据支持Pull和Push模式,可以自定义不同采集点的采样频率,适合轻量型应用降低能耗;
- 二次计算和查询方式很灵活
- 自带
Grafana
数据可视化工具; - 可配置的内存+磁盘存储大小,采用的时间序列文件和Level DB做索引效率较高,不会让监控软件本身消耗过多的树莓派计算和存储资源
树莓派3初体验
树莓派基金会今年推出的新品Raspberry Pi 3已经到手,官方宣传性能比树莓派2代快50%,比树莓派1代快10倍,第一次使用的64位四核处理器(博通BCM2837)配备了ARM Cortex-A53处理器,内置了802.11 b/g/n 2.4GHz WIFI和蓝牙4.1,显卡没变,还是双核VideoCore IV(并不支持4K视频)。CPU升级也对能耗有了更高的要求,官方说法最好是使用5V 2.5A的电源输入(iPad充电器),实测在无外设的情况下,2A的电流输出也可以让Pi 3正常运行。价格和树莓派2也一样,官方售价税前35美金,国内可以在淘宝上买到,238元一枚,点此购买
我深深的认为每个程序员都需要有一块树莓派,24*7的运行在家里的网络上 ,投入成本在300人民币以内(树莓派加电源:250,SD卡:50),每年电费在10元以内。树莓派支持各种编程语言的开发,安装体验各种操作系统非常简单,丰富的外部接口,支持很多类型的传感器和控制器外设,可以让你轻松设计和实现智能硬件,技术让生活更美好~
外观
树莓派3的规格大小则和树莓派2完全一样,你甚至可以直接用树莓派2的外壳,完全贴合。
背面看略有不同,中间的芯片是1G内存,树莓派3的内存速度快了1倍,右边是CF卡插槽,树莓派2是回弹式卡槽(取出CF卡时只要往力再摁一下就会弹出),树莓派3可能为了降低成本或是因为板卡空间的问题改成了更紧凑的插入式,装上外壳后取出的时候有点费劲,我需要用瑞士军刀的镊子夹出来。
(下图是树莓派3)
安装启动
如果你不需要GUI,推荐安装Raspbian Jessie Lite,大小只有298.3M,下载完成后解压缩成img文件后用dd命令写到CF卡上去。你也可以下载NOOBS完整安装。
WIFI
编辑无线配置文件/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="<无线AP的名称>"
psk="<无线密码>"
}
如果有多个无线网络可以接入,增加network
即可
修改好后如果没有自动生效连上网络可以通过以下命令强制生效
ifdown wlan0
ifup wlan0
非常重要的一点是:如果你希望无线网络一直连接,需要关闭掉无线模块的电源管理,否则没有网络流量后,WIFI会自动关闭。。。
sudo iwconfig wlan0 power off
测试wifi速度:从通过网线连接到极路由2的Mac拷贝文件到树莓派3上,内置网卡的传输速度在4MB/s左右,如果换上300Mbps的USB无线网卡EDUP EP-N1557
则可以达到9MB/s左右,速度要快1倍。结论是内置的wifi模块速度只有150Mbps,如果对网络速度要求较高,最稳定的方法还是插根网线。
安装好nginx
后,用ab
测试最简单的HTML网页性能,树莓派3可以轻松超过1000 QPS,满足个人网站的性能需求。
CPU
树莓派3使用的4核Cortex-A53 BCM2837 SoC为了向下兼容,架构上和树莓派2使用的4核Cortex-A7 BCM2836差不多,在32位模式运行下,速度要快50~60%(时钟频率1.2GHz vs 900MHz),尽管CPU已经支持64位,官方的操作系统Raspbian还是32位,当然树莓派3内存只有1G,运行64位操作系统可能会有点累,。 如果要体验真64位系统,目前可以考虑带2G内存,千兆网口的ODROID-C2,可装Ubuntu 16.04和Android 5.1。
一般情况下,不带散热片的CPU温度在45度左右,我有个脚本会每五分钟上传一下温度:https://personal.xively.com/feeds/1480103458
Node.js
安装5.0.0
wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-armv7l.tar.gz
tar -xvf node-v5.0.0-linux-armv7l.tar.gz
cd node-v5.0.0-linux-armv7l
sudo cp -R * /usr/local/
升级
[Read More]用iptables搭建稳定的加速代理
设置步骤
在阿里云中国和美国都购买一个VPS,用同样的操作系统,都安装好 shadowsocks-libev
( https://github.com/shadowsocks/shadowsocks-libev )
在树莓派上运行Docker
Docker
Docker是目前非常流行的代码运行容器,操作系统虚拟化,运维自动化架构和开源的解决方案。
Docker的基础是Linux容器(LXC)技术,相比传统的VM虚拟化技术, LXC更轻量,性能更好。
Docker采用Golang语言开发,在LXC基础上Docker进行了封装,简化了容器的管理。
[Read More]使用树莓派搭建低成本,便携,多用户的弱网模拟器:高效测试手机App在弱网下的可用性
背景
我们的手机经常会处于弱网情况下,电梯里,高铁上,在地铁站,电影院里。。。如果手机应用不针对弱网做优化,就会出现:白屏页面刷不出来,界面卡死,错误提示一堆,菊花转不停,用户抓狂。。。
移动应用开发团队应该将App在弱网下的可用性作为一个重要的性能指标,在设计和开发阶段考虑在弱网下的体验。
[Read More]自己搭建Airplay高清音乐播放系统
先看一下在iPhone 6 plus上用虾米播放高音质音乐的效果:
[Read More]在树莓派上用Node.js监视网页变化并通知手机
用16M的SD卡启动树莓派,在U盘上安装和运行Linux
树莓派官方的操作系统Raspbian最少需要4G的SDCard,如果你恰好有比较小的SD卡怎么办呢?设计上树莓派只能从SD卡引导启动,但我们可以在SD卡上装一个最小的引导系统,然后把树莓派引导到U盘上启动。SD卡连续运行,读写比较频繁也容易损坏(我已经坏掉3张了。。。),相比之下U盘价格便宜些,读写速度可以比SD卡还高。
制作引导SD卡
这个引导系统只需要16M容量的SD卡,先把SD卡格式化成FAT(windows),然后拷贝下面的文件到根目录。
git clone https://github.com/hugozhu/mini_raspbian_boot
修改 cmdline.txt
中的 root=/dev/mmcblk0p2
为 root=/dev/sda2
以指定用U盘启动
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait cgroup_enable=memory
安装操作系统Raspbian到U盘
方法和安装到SD卡一样,在Mac上使用 dd
命令安装,在Windows上可以用win32diskimager:
sudo dd bs=1m if=2015-01-31-raspbian.img of=/dev/disk4 #/dev/disk4
扩展分区
如果你的U盘容量大于4G,那么上一步安装完后,你的U盘只能看到4G空间,大容量的SD卡的这个问题可以通过自带的raspi-config
命令来解决。
Linux下可以用fdisk
来解决,我的方法是把该U盘插到已经正常启动的树莓派的USB口上,正常识别后,执行sudo fdisk /dev/sda
- 按
p
后打印出分区表:
/dev/sda1 8192 122879 57344 c W95 FAT32 (LBA)
/dev/sda2 122880 6399999 3138560 83 Linux
记住/dev/sda2的起始点
122880',然后按
d,删除掉二个分区,接着按
n重新创建一个分区,起始点就设置为
122880`,结束点可以设置为最大最后按
w
保存新的分区表
插上引导SD卡和系统U盘后树莓派就可以愉快的运行起来了,如果U盘的速度足够快,你会发现系统还变快了。