给树莓派装个Web界面的仪表盘

大部分人都习惯界面友好的系统监视器,以便直观的了解系统的实时运行情况。

哪怕是一个正在跑着简单应用的树莓派。

最近看到有些朋友在用一个叫“Pi Dashboard”的仪表盘程序,感觉还挺清爽。

于是也装了一个试试。如图所示。

该应用后端是PHP,前端使用了bootstrap和jquery,安装也很简单,标准的LAMP或者LNMP环境都可以。

sudo apt-get update

sudo apt-get install nginx php7.0-fpm php7.0-cli php7.0-curl php7.0-gd php7.0-mcrypt php7.0-cgi

启动完nginx 和 php7.0-fpm之后,编辑Nginx配置文件。

sudo nano /etc/nginx/sites-available/default

把location那一整个大括号区域替换成如下内容即可:

location / {
index index.html index.htm index.php default.html default.htm default.php;
}

location ~\.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
#fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

如果是已经在跑Apache的PHP环境,直接运行即可。此应用在Raspbian Stretch系统 和 树莓派3B/3B+ 上均测试成功,感觉可以在后面加入温度显示。

注:该项目来自NXEZ.com的树莓派实验室,使用GPL v3.0许可证。

项目地址:https://github.com/spoonysonny/pi-dashboard

如何在树莓派的终端测试网速

Ookla 的 Speedtest 网速测试相信做网络的人大多都用过。 这在PC桌面和移动APP上是很简单。登陆点击“Go”即可。

它会自动测试你的机器到最近服务器的网速。 如果你只有树莓派终端,那怎么在命令行下做测试呢?

首先,我们要安装speedtest-cli这个包,树莓派直接apt-get一下即可。如图所示。

直接执行speedtest这个命令,就可以自动测试了,这里我的树莓派在访问北京电信的一个服务器。这里可以看到下载速度3.40 Mbit/s,上传速度3.87 Mbit/s。

如果想查看北京还有那些其他服务器,可以用:speedtest-cli –list | grep -i beijing 这个命令。另外,如果你还想生成一张图发给 别人的话,可以在后面加个“–share”参数。

然后就可以得到对应的图片网址了。如图所示。

从这个图上可以看到,我这个网速比全国62%的机器都要慢,略有遗憾。

 

微软宣布软硬结合的IoT安全解决方案:Azure Sphere

第27届RSA大会于4月16日至19日在美国旧金山Moscone中心举办,来自世界各地的网络安全团队在此切磋交流,微软在本次大会上举办了一场安全通报会,正式宣布了面向物联网(IoT)安全的解决方案。

事实上该项目早在一年前就已启动,随后在去年4月份推出了名为“Project Sopris”的低成本物联网设备。其队伍包括 George Letey、Ed Nightingale、Galen Hunt 等研究人员,旨在为大家带来“大量低成本的安全联网设备”。

本次公布的Azure Sphere同时涵盖软件和硬件。微软还为此开发了“全新级别”的微控单元(MCUs),性能是旧款MCU的五倍。而且这些设计可以无授权费地授权给合作厂商,首款主板来自于联发科。

通过Azure Sphere授权的MCU运行Azure Sphere OS,这是基于Linux的定制发行版本,包含“多个安全层”。该系统针对物联网系统进行优化,并融合了Windows系统的诸多安全功能从而创建高度安全的软件环境。

来自:Microsoft资讯

麦迪文:这次支持微软 Azure Sphere 解决方案 的芯片为联发科的MT3620,微软开发的安全系统跑在上面。

用树莓派和 RFID 做能识别音乐专辑的桌子

有不少年轻用户还会追黑胶唱片。

他们的着眼点并不在体验传统的味道上,而是觉得收集黑胶或者其他实体专辑是一种支持歌手出唱片或提升“仪式感”的行为。

虽然不怎么听,但买起来也不会少。

确实,现在要听个实体专辑确实也不容易。黑胶的话经不起折腾,听 CD 也不方便。而且现在的人已经习惯了那种以单曲、EP 为主的音乐消费模式,很少人能够坚持把一张专辑完完整整听完的。

所以在声音体验也没有差太多的前提下,与其去不断切歌、换碟,倒不如直接用流媒体来得方便。

但其实,现在有人还想去玩“实体专辑”。GitHub 上有一位用户,就通过树莓派做了一个识别感应器,让自家的 Google Home 用上“实体专辑”。

根据 The Verge 的报道,这位来自 GitHub 上的用户叫“hoveeman”,他将一个射频识别读卡机和树莓派 Raspberry Pi Zero 连接起来,并开发了一套专用的程序。安装上这套程序后,树莓派能够给家中的 Google Home 发出指令,让它播放相应的专辑。

在这套组合中,射频识别读卡器 RFID 模块的任务就是用来识别“实体专辑”。

这些“实体专辑”,其实是 hoveeman 自己做的一些小卡片。小卡片的表面印着专辑封面、名称和表演者,卡片内部则呆在了一块小型识别芯片。当用户将芯片放到 RFID 模块上,模块就能够识别出相应的信息,传输到 Raspberry Pi Zero 上。电脑处理后,就会发送的 Google Home 上,让它播放相应的专辑。

这个模块能够隐藏在家居产品当中,不管是木桌还是凳子,只要不阻碍 RFID 识别的,都能够藏在里面。虽然这套设备带来的解决方案有点“多此一举”,但现在看起来有点意思。至少,它比你经常换 CD 来得方便。

现在,Hoveeman 将这套解决方案都上传到 GitHub 上。你可以在以下网址:

https://github.com/hoveeman/music-cards

查到它用过的设备和代码,自己做一套相同的出来。

这个其实有点像用 RFID 来控制 Spotify 的方案,那个方案也是用识别卡片来让智能设备播放 Spotify 中的专辑或特定播放列表,做法和实现目标基本上没有什么大分别。

这些方案对于开发者来说,也都是自娱自乐的东西而已。

毕竟,现在的人确实也不怎么喜爱这种消费方式。他们只需要一个简单的听歌方案,而流媒体服务正好能够给他们最简单直接的体验,有这个来确保基本需求之后,其他东西也不重要。

转自 ifanr

Windows平台也高效的GNU编译工具链 —— MSYS2

MSYS:Minimal GNU(POSIX)System on Windows,是一个小型的GNU环境,包括基本的bash,make等等。

而MSYS2除了集成了MinGW这个精简的Windows编译器以外,还集成了包管理器等等。

MSYS2可以在Windows下搭建一个完美的类Linux环境,包括bash、vim、gcc、make等工具都可以通过pacman这个包管理器来添加和卸载 。使用界面如图所示。

如果要安装git工具,可以这样。

是不是很方便?顺便说一句,高性能 Web 平台OpenResty的64位Windows版本也是用这个编译的。

安装限制:

  • MSYS2 不能安装在FAT* 分区。
  • MSYS2 仅支持Windows XP以后的版本。

基本工具包使用:

  • pacman -Sy 更新软件包数据
  • pacman -Syu 更新所有包
  • pacman -Ss xx 查询软件xx的信息
  • pacman -S xx 安装软件xx

Python 推出新一代 PyPI 发布站点 —— Warehouse

PyPI 团队的成员 Sumana Harihareswara 发表博客表示,Python 已推出新的 PyPI 网站(Python 的官方第三方软件存储库),浏览器流量和 API 调用(包括”pip install”)已从旧版 pypi.python.org 重定向到新网站,而旧的 PyPI 网站将于 4 月 30 日关闭。

不过现在旧的代码库在 https://legacy.pypi.org 上仍然可用。

目前,权威的 PyPI(Python Package Index) 地址是:https://pypi.org/,使用了新的 Warehouse 代码库。

https://pypi.org 测试版早于 3 月 26 日已提供,到 4 月 16 日正式推出,而旧的 PyPI 网站 https://legacy.pypi.org 则计划于 4 月 30 日关闭,pypi.python.org 则继续重定向至新网站。

有关更多详细信息,请参阅路线图:https://wiki.python.org/psf/WarehouseRoadmap

如果你仍在使用 pypi.python.org,现在开始应该迁移至使用 pypi.org,迁移指南:https://warehouse.readthedocs.io/api-reference/integration-guide/#migrating-to-the-new-pypi

从小抓起!最值得推荐的少儿编程入门书籍清单

纵观国外的一些科技大佬都是从小就开始学习编程,如比尔盖茨在13岁的时候就开始学习Basic编程;扎克伯格、苹果创始人乔布斯从12岁开始学编程;推特创始人杰克·多西学习编程的时间更早,从8岁就开始了……

而在国内,从小就开始学习编程的儿童却寥寥无几,假如你的孩子正好对互联网、电脑感兴趣的话,那么,编程技术的学习一定会是从小培养的首选。

正好,昨天就是世界儿童读书日,忙碌的家长们假如想教孩子们编程,下面要推荐的这些书就是不错的选择。

1、《Scratch少儿趣味编程》

优点:结合漫画卡通人物,趣味性比较好

适合人群:小学1—3年级学生入门

Scratch 是麻省理工学院设计开发的一款编程工具, 包含了编程语言最基本的元素:变量、函数、循环等,很是适合孩子入门编程,本书作者阿部和广师从PC之父、面向对象之父、图灵奖得主艾伦·凯博士。近年来多次举办面向少儿的编程讲座,在儿童编程方面经验十足。

书中结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教读者如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,让孩子不会感到枯燥乏味。

学习编程最主要的就是兴趣,所以本书十分适合中小学生等初学者自学或在家长的帮助下学习。

2、动手玩转Scratch2.0编程

优点:讲解细致,由浅入深

适合人群:儿童成人都适用

《动手玩转Scratch2.0编程—STEAM创新教育指南》的目标是将Scratch 作为工具,教会读者最基本的编程概念,同时揭示Scratch 在教学上的强大能力。本书也是以示例来演示,不过里面还穿插了数据结构等计算机科学方面的知识。

所以,此书阅读人群最好是对编程明确感兴趣的,并且已经有一点基础的中学生。

3、Scratch少儿趣味编程2

优点:结合漫画卡通人物,趣味性强

适合人群:中小学生

本书是《Scratch 少儿趣味编程》系列的第二本,采用升级版本Scratch 2.0 教大家如何用Scratch 设计程序,内容贯彻STEAM 教育理念,综合了数学、科学、音乐、实践等科目,旨在引导读者通过实践来探索、发现并理解现实中的知识,在激发创造力的同时提升思考能力和与他人的协作能力。适合中小学生等初学者自学或在家长的帮助下学习。

4、父与子的编程之旅

优点:浅显易懂,卡通人物场景

适合人群:小学生编程入门

当你家孩子学完Scratch这类图形化编程后,如果孩子真的对编程有浓厚的兴趣,希望进一步学习,真正地学习代码类编程语言,那么从Python编程语言入门就是个不错的选择

《父与子的编程之旅》最适合零基础学编程,内容十分浅显易懂,有不少计算机常识的铺垫,同时里面还融入了很多卡通人物的场景对话,让孩子轻松愉快进入编程世界。

5、《Hello Ruby:儿童编程大冒险》

优点:编程与冒险故事相结合,集故事性、趣味性、知识性于一体

适合人群:幼儿园、小学生入门

作者琳达·刘卡斯(LINDALIUKAS)是芬兰赫尔辛基的一位程序员、作家和插画家。全书通过特别有趣的小故事,向孩子们介绍了与编程有关的知识和思维方式,没有一个生涩难懂的专业术语,特别适合孩子阅读,也增强了理念的代入感。并且随书附的一套编程桌游,可以让孩子们通过游戏,锻炼编程思维。

建议家里有3-9岁孩子的亲们,不妨给孩子添置一本这样的编程启蒙书。

6、《和孩子一起玩编程》

优点:国内编写,贴合中国孩子习惯

适合:9岁左右的孩子

国内家长编写的一本Python编程入门书籍,贴合中国孩子的任职习惯。书中的内容大部分都是小故事,以孩子生活的场景为例,介绍了Python编程的基础知识,并且让孩子以闯关的形式持续挑战和学习

7、我的第一本编程书

优点:与生活例子相结合,讲解详细、连贯

适合人群:初学者

本书是编程的入门书,目的在于教会读者编程的基本思路和方法。书中使用专门的工具Sunaba,向读者展示如何从零开始一步步做出一个完整的程序。书中内容讲解详细、连贯,并采用了大量能与现实生活相结合的例子。特别是在对编程思路的介绍上进行了详细的说明。

这本书主要以编程思维培养为起点出发,让还孩子逐渐培养编程的基本思路和方法,喜欢编程,又不喜欢枯燥的可以尝试从这本书入门。

8、程序是怎样跑起来的

优点:图文并茂、通俗易懂

适合人群:有点编程思维的人群,初高中

本书从计算机的内部结构开始讲起,以图文形式详细讲解了二进制、内存、数据压缩、源文件和可执行文件、操作系统和应用程序的关系、汇编语言、硬件控制方法等内容,让读者更直观的了解从用户双击程序图标到程序开始运行之间到底发生了什么。同时还以人物形象来讲解程序的运行原理,生动有趣。

总体图文并茂,通俗易懂,非常适合计算机爱好者及相关从业人员阅读,无论是新学者还是复习者,都是不错的选择

9、网络是怎样连接的

优点:对话的形式介绍网络术语的词源

适合人群:初高中

本书以探索之旅的形式,从在浏览器中输入网址开始,到显示出网页内容为止的整个过程,同样以图文形式讲解了网络的全貌,并重点介绍了实际的网络设备和软件是如何工作的。目的是帮助读者理解网络的本质意义,理解实际的设备和软件,进而熟练运用网络技术。同时,专设了“网络术语其实很简单”专栏,以对话的形式介绍了一些网络术语的词源,颇为生动有趣。

来自:程序员书库(微信号:CodingBook)

新版打包树莓派和摄像头 谷歌更新AI相机DIY套件

去年 Google推出 AIY Vision Kit 计划的初衷就是让人人皆可轻松组装一台 AI 相机,进而让人认识深度学习与神经网络。只可惜还需要使用者自备 Raspberry Pi Zero W 与 RaspberryPi Camera 2 才能组成。

最近,谷歌对这套设备做了更新,让DIY爱好者和入门玩家上手门槛更低。

AIY全称是Artificial Intelligence Yourself,顾名思义就是利用AI来进行的DIY功能套件。去年年底推出Vision Kit套件内容包含了VisionBonnet电路板、镜头组、硬纸板机壳、背光按键、蜂鸣器以及扣具等,组装和调试后它可以识别一千个普通物体以及面部表情。

但是,它缺少你在调试中需要的核心设备,比如树莓派Zero W以及存储卡。

此次更新后的AIY Vision和AIY Voice套件,包括Raspberry Pi Zero WH板和预先配置的SD卡,而Vision Kit也引入了Raspberry Pi Camera v2。省去了额外购买的过程。

最重要的是Google此次还新增了 Android 版 AIY 专属 APP(iOS等其他版本正在开发中)。

下载地址:https://play.google.com/store/apps/details?id=com.google.android.apps.aiy

整体而言,升级后的整套软硬件更方便大家用了。

更新后的套件

价格方面,Vision和Voice的售价分别为90美元和50美元,目前已在部分境外电商平台供货。

麦迪文点评:这次再也不用担心零件凑不齐或者设置过程复杂了。真“套件”! ​

想要更多,请关注“IoT前哨站”微博或微信公众号

CPU与MCU的区别与联系

对于一些初学者来说,CPU与MCU的区别与联系是难懂的问题。今天,小编就为您介绍一下CPU与MCU的区别与联系。

图为89C51芯片

MCU(Micro Controller Unit),又称单片微型计算机(Single Chip Microcomputer),简称单片机,是指随着大规模集成电路的出现及其发展,将计算机的CPU、RAM、ROM、定时数器和多种I/O接口集成在一片芯片上,形成芯片级的计算机。 MCU按其存储器类型可分为无片内ROM型和带片内ROM型两种。对于无片内ROM型的芯片,必须外接EPROM才能应用(典型芯片为8031)。带片内ROM型的芯片又分为片内EPROM型(典型芯片为87C51)、MASK片内掩模ROM型(典型芯片为8051)、片内FLASH型(典型芯片为89C51)等类型。 以上这些,均为MCU。

图为8051芯片

CPU是中央处理单元(Central Processing Unit)的缩写,它可以被简称做微处理器(Microprocessor),不过经常被人们直接称为处理器(processor)。

CPU是计算机的核心,其重要性好比大脑对于人一样,因为它负责处理、运算计算机内部的所有数据,而主板芯片组则更像是心脏,它控制着数据的交换。CPU的种类决定了你使用的操作系统和相应的软件。CPU主要由运算器、控制器、寄存器组和内部总线等构成,是PC的核心,再配上储存器、输入/输出接口和系统总线组成为完整的PC(个人电脑)。 寄存器组用于在指令执行过后存放操作数和中间数据,由运算器完成指令所规定的运算及操作。

CPU和MCU之间的界限并不是很清晰,不过CPU主要用在计算机上,也算是控制器,而MCU主要是工业控制领域。

图为CPU

CPU(Central Processing Unit,中央处理器)发展出来三个分枝,一个是DSP(Digital Signal Processing/Processor,数字信号处理,本文不讨论),另外两个是MCU(Micro Control Unit,微控制器单元)和MPU(Micro Processor Unit,微处理器单元)。

简单来说,二者的区别是MCU集成了片上外围器件,CPU不带外围器件(例如存储器阵列),是高度集成的通用结构的处理器。

延长树莓派上SD卡的使用寿命

据说SD卡的写入次数是有限的,那么这是否意味着用树莓派当作服务器会存在一些问题呢?也许吧,目前只是个别文章报告了SD卡会报废,但并没有完全的定论。于是我开始寻找一些方法把SD卡的写入次数降到最低,理论上有助于延长它的使用寿命。

在一个SD卡上运行GNU/Linux的最佳实践

一张容量更大的卡 假设写操作在卡上的各个地方都有可能进行,这样越大的卡在同一区域多次书写的概率越小。对于大多数的树梅派GNU/Linux发行版来说,一张4GB的卡够用了,但8GB或者16GB从这个角度来看更合适。让我们把4GB提高到8GB,那么在同一区域进行写操作的概率会减少一半。

坚持选个好牌子 已经有许多文章都提到要坚持选择顶级品牌的SD卡。我没有整理出一份品牌列表也没有特别支持哪个品牌,但幸运的是已经有很多文章显示了顶级品牌和它们的报废率。调整GNU/Linux写入到内存而不是SD卡上 这使用了一个叫“tm

pfs”的功能,它是GNU/Linux提供的一个非常酷的玩意。Tmpfs能够像写入一个正常的文件系统一样让写操作写入内存中。它快捷,高效并且易于使用。下面会详细介绍。SD卡设置为只读模式 这实际上把GNU/Linux变成了一个只读模式,类似于你从Live CD启动的GNU/Linux。这样阻止了任何的写操作从理论上来讲延长了SD卡的寿命。但这也有许多缺陷。首先,你得在配置上花点功夫,

这已经超出了本文的范围。其次,所有的改动会在系统重启后消失因为它们没有写入SD卡里。对于我来说,GNU/Linux运行在只读模式实在是要命所以我不推荐这么极端的做法。

使用Tmpfs

如我前面所说,tmpfs会写入到内存中而不是本地磁盘(树梅派上实际是SD卡)。使用它非常简单。你要做的只是增加一个到/etc/fstab文件的入口(挂载你想写入到内存的文件夹到内存里)并且重启(这样每次服务开始写文件之前都会把这些文件夹先挂载到内存里)。

剩下的事情系统内核会替你搞定,把写操作写入到内存里的虚拟文件系统。这还有个巧妙之处,系统内核只会使用写操作所需数量的内存而不是整个挂载的大小。让我们举个例子,我想要把下面这一行加入到/etc/fstab文件中:

tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0

系统内核将会把/var/log挂载到内存中,然而在文件真正被写入到/var/log之前不会使用任何内存。当文件被写入到/var/log时,系统内核将会把它保存在内存里并且只占用用于保存文件的内存空间。当文件从/var/log中删除时,相对应的内存空间将被释放。

这意味着它只占用用于保存文件的内存空间,这是非常高效的。

在/etc/fstab中,你也可以为每个挂载指定内存配额。在上面的例子里,我们设置的是”size=100m”所以/var/log最多使用100m的内存空间。这是为了防止一个文件系统占用了全部内存以至于系统速度变慢甚至崩溃。通过运行”mount”命令,我们可以看到在上面的例子里/var/log被挂载为一个tmpfs在内存里的卷,大小是100MB。

Filesystem Size Used Avail Use% Mounted on
tmpfs 100M 596K 100M 1% /var/log

在GNU/Linux里有许多可能会频繁写入到地方。下面是一个我初步整理的应该可以适用于大多数发行版的列表。

tmpfs /tmp tmpfs defaults,noatime,nosuid,size=100m 0 0
tmpfs /var/tmp tmpfs defaults,noatime,nosuid,size=30m 0 0
tmpfs /var/log tmpfs defaults,noatime,nosuid,mode=0755,size=100m 0 0
tmpfs /var/run tmpfs defaults,noatime,nosuid,mode=0755,size=2m 0 0
tmpfs /var/spool/mqueue tmpfs defaults,noatime,nosuid,mode=0700,gid=12,size=30m 0 0

你看我使用了”size=”参数来避免试图保存大量的数据时占用大量内存的问题。出于安全和性能方面的考虑,”noatime”和”nosuid”参数也推荐设置,”mode=”和”gid=”对应的权限和用户组要与原来存在于SD卡上的文件系统保持一致。

恩,tmpfs也可以进行权限控制。通常情况下,所有在/etc/fstab下挂载的文件和标准的Unix/Linux文件没什么区别。所以即使因为一些原因挂载失效了,写操作也会成功写入到SD卡上。

需要记住的一点是所有挂载到tmpfs的文件将会在重启时丢失。所以上面的例子里/var/log文件会在关机时或重启时清空。所以不要把tmpfs用于那些你需要在重启后依然存在的文件。

我正在积极的使用这些设置,到目前为止结果还不错。时间会告诉我们这对于树莓派和/或者SD卡的寿命延续有何作用,但是现在已经有很多文章说能够正常运行很久,因为我们知道GNU/Linux不像其他操作系统一样需要频繁重启。上面的方法希望可以延长使用寿命,特别是你打算一年365天,每周7×24小时的开着树莓派。

本文来自:树莓派实验室

想要更多,请关注“IoT前哨站”微博或微信公众号