树莓派常用工具

树莓派官方系统 Raspbian(lite版和桌面版注意分清):

下载地址:https://www.raspberrypi.org/downloads/raspbian/

默认帐号:Username: pi Password: raspberry

镜像烧录工具 Win32diskimager(用来将镜像文件写入 MicroSD 卡):

下载地址:https://sourceforge.net/projects/win32diskimager/files/latest/download

SSH客户端 Putty(远程连入树莓派命令行操作工具):

下载地址:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

WinSCP客户端(远程传输文件到树莓派的工具):

下载地址:https://winscp.net/eng/download.php

SD卡格式化工具:

下载地址:https://www.sdcard.org/downloads/formatter_4/

 

 

Raspbian 中国软件源(2018.7.13版)

使用树莓派 Raspbian 系统的中国用户,通常会遇到从官方站更新和安装软件时候速度比较慢的问题,IoT前哨站整理了一些东亚地区速度比较快的软件源供大家使用(如果有不能用的可通知我们剔除,有新的可信的也可以让我们加进去)。

相关镜像站:

浙江大学
http://mirrors.zju.edu.cn/raspbian/raspbian/

中国科学技术大学
http://mirrors.ustc.edu.cn/raspbian/raspbian/

阿里云
http://mirrors.aliyun.com/raspbian/raspbian/

清华大学
http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/

华南农业大学(华南用户)
http://mirrors.scau.edu.cn/raspbian/

大连东软信息学院源(北方用户)
http://mirrors.neusoft.edu.cn/raspbian/raspbian/

重庆大学源(中西部用户)
http://mirrors.cqu.edu.cn/raspbian/raspbian/

新加坡国立大学
http://mirror.nus.edu.sg/raspbian/raspbian

韩国KAIST大学
http://ftp.kaist.ac.kr/raspbian/raspbian/

使用方式:

编辑/etc/apt/sources.list 文件,参考如下命令:

sudo nano /etc/apt/sources.list

如果是 stretch 版本,用以下内容取代(以此类推):

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free

# Uncomment line below then ‘apt-get update’ to enable ‘apt-get source’
#deb-src http://raspbian.raspberrypi.org/raspbian/ stretch main contrib non-free rpi

保存文件后用root权限执行:

apt update即可。

可根据自己的情况选择就近的站点。

 

怎样为树莓派安装Rust开发包和相关实用软件?

随着软件业的蓬勃发展,越来越多的新技术开始呈现在大家面前。比如Golang和Rust这两门计算机编程语言。

Golang可能大家接触的多一些,毕竟容器和区块链等大量开发者在用。稍晚一年出现的Rust,可能有些朋友不熟悉。

Rust是Mozilla主导开发的注重安全、速度和并发的系统级编程语言,随着Rust的成熟,Mozilla开始尝试用Rust开发Firefox的组件,其中包括核心引擎Servo/Project Quantum。

普通PC和Mac电脑咱们这里就不说了,这里讲讲如何在树莓派上安装Rust开发包和那些没有加入“系统软件库”的Rust软件。

这里还是拿出我的Raspberry Pi Zero W。

在确保网络状态良好的情况下,在命令行执行:

sudo curl https://sh.rustup.rs -sSf | sh

默认安装选1即可,它会自动安装稳定版的Rust for ARM。这里可以看到版本号是1.27.0。

安装成功后可以写个hello world试试是否可以正常编译。

cat > hello.rs << EOF

rustc hello.rs

这个命令可以生成二进制文件直接执行。

从图中我们能看到,树莓派已经可以编译rust程序了。然后我们用cargo这个rust包管理工具来安装一个文件搜索工具 —— fd-find。

执行:cargo install fd-find

下载和编译的过程比较漫长。当然,如果你是高性能PC可以很快。单核ARM的话你就慢慢等吧。

差不多一场世界杯足球赛的耗时,终于编译完成了这个fd-find(我这里用了84分 2.69秒)。

最后就是享受劳动成果了,试试这个由Rust语言开发,传说中可取代“find”命令的小工具吧。

速度快,更简洁,支持正则表达式。还可以和其他Shell命令融合。

欢迎大家和我探讨IoT物联网终端上的开发和应用。

版权声明:本文为“IoT前哨站”原创,转载请注明原文作者和出处。

与树莓派谈共享 —— Windows有现成的NFS客户端?

很多树莓玩家都在用 Winscp 等软件在 Windows 和树莓派之间来回传文件。虽然也能用,但感觉总不像Windows网上邻居的共享那么方便。

如果只跟Windows共享,用Samba倒也可以。如果要让Windows和Linux都能挂载树莓派上的共享区域呢?

其实很多朋友不知道,为了方便跟 Unix/Linux 交互,微软早就在Windows系统里准备了NFS客户端,找到“打开或关闭Windows功能”,将相关工具开启即可使用。

Windows 7及后续版本都支持,不管是服务器版还是桌面版。

步骤如下:首先在远程树莓派上设置好NFS,我的设置和共享目录如图所示。

然后在本地Windows进控制面板,打开“Windows 功能”选项卡,选择相关组件。

功能开启成功后可以对 NFS 客户端进行设置,比如选择TCP协议还是UDP协议。一般我共享视频播放的时候,会选择UDP协议。具体怎么设置请自己考虑。

软挂载和硬挂载的区别:

对硬挂载文件系统来说,如果因为某种原因远程系统的响应失败,比如NFS服务端挂掉等,则NFS客户端将会持续地尝试建立连接,这样可能导致执行df等命令出现挂死的现象。

而对软挂载文件系统来说,同样情况下,在指定的时间间隔后NFS客户端将会放弃尝试建立连接而发送一个错误消息。

默认采用硬挂载文件系统,系统硬挂载尝试失败时,对用户输入的响应也会停止。正是因为这样,有的用户更喜欢采用软挂载,它会使系统在尝试挂载失败后停止尝试。

设置完成后,可以用以下命令进行挂载树莓派上的目录,映射到本地的X盘。

挂载成功后,你会看到Windows系统中多了一个X盘符,点进去会发现树莓派共享出来的目录。

下命从X盘拷贝一个视频到桌面看看,内网速度1.16MB/秒。还凑合。当然,你也可以往里面粘贴文件,读写均可,跟网上邻居一样好用。

本文来自“IoT前哨站”,转载请注明出处。

用 Adafruit 和 树莓派 读取 DHT11 温湿度传感器

DHT11 温湿度传感器尽管不是使用效率最高的温湿度传感器,但价格便宜被广泛应用。之前我们介绍了用树莓派从 DHT11 温度湿度传感器读取数据的教程,其原理理解起来较为复杂,下面我们介绍另一种基于Adafruit DHT 库读取 DHT11 数据的方法。

DHT11 规格

DHT11 有四个引脚,但是其中一个没有被使用到。所有有的模块会简化成3个引脚。

湿度检测范围 : 20-80% (5% 精度)
温度检测范围 : 0-50°C (±2°C 精度)

该厂商不建议读取频率小于2秒,如果这么做数据可能会有误。

硬件连接

需要在电源和数据脚之间串联一个上拉电阻(4.7K-10K),通常情况下,购买DHT11模块的话都自带了这个电阻。不同的模块型号引脚位置略有不同,下面以图上模块为说明:

数据引脚可以根据你的需要自行修改。

Python 库

DHT11 的读取需要遵循特定的信号协议完成,为了方便我们使用Adafruit DHT 库。

软件安装

开始之前需要更新软件包:

sudo apt-get update
sudo apt-get install build-essential python-dev

从 GitHub 获取 Adafruit 库:

sudo git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

给 Python 2 和 Python 3 安装该库:

sudo python setup.py install
sudo python3 setup.py install

示例程序
Adafruit 提供了示例程序,运行下面的命令测试。

cd ~
cd Adafruit_Python_DHT
cd examples
python AdafruitDHT.py 11 17

这两个参数分别表示 DHT11 和数据引脚所接的树莓派 GPIO 编号。成功的话会输出:

Temp=22.0* Humidity=68.0%

如何在其他 Python 程序中使用这个库
参照下面的方法引入 Adafruit 库,然后就可以使用 “read_retry” 方法来读取 DHT11 的数据了:

import Adafruit_DHT

# Set sensor type : Options are DHT11,DHT22 or AM2302
sensor=Adafruit_DHT.DHT11

# Set GPIO sensor is connected to
gpio=17

# Use read_retry method. This will retry up to 15 times to
# get a sensor reading (waiting 2 seconds between each retry).
humidity, temperature = Adafruit_DHT.read_retry(sensor, gpio)

# Reading the DHT11 is very sensitive to timings and occasionally
# the Pi might fail to get a valid reading. So check if readings are valid.
if humidity is not None and temperature is not None:
    print(‘Temp={0:0.1f}*C Humidity={1:0.1f}%’.format(temperature, humidity))
else:
    print(‘Failed to get reading. Try again!’)

另外,温度传感器还有 DS18B20,这个传感器虽然没有湿度数据,但是其易用且稳定,有兴趣的朋友可以进一步了解。

来自:树莓派实验室

用Ngrok穿透防火墙访问内网的树莓派

通常在公网要访问一台内网的设备,比内网互相访问要麻烦。原因不一定是防火墙阻碍,而是内网设备一般都没有公网IP。

那你想用家里的电脑访问办公室电脑中的文件或其他资料的话该怎么办?我们是否有一些高效的办法来访问路由器或防火墙背后的联网设备?

大家可能会想出改路由规则、配置防火墙等等方法。但是很多公司的路由和防火墙是不允许普通员工登陆调试的。

这里要介绍一个叫做Ngrok的服务,它几乎允许我们跨网络(LAN/WAN)连接任意设备。

假设我们要从外网访问内网一个树莓派的SSH服务,我们需要先拥有一个Ngrok网站的一个帐号,然后为树莓派下载正确的Ngrok程序,执行相关命令,就可以获得一个公网地址了。

具体操作如下:

1、访问 https://dashboard.ngrok.com/user/signup 并注册帐号。

完成账号注册后,你会得到一个令牌字符串,你等会需要使用这个字符串来认证你的树莓派。

2、部署Ngrok

让你的树莓派下载Ngrok:

wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-arm.zip

解压,得到一个名叫“ngrok”的文件。

3、让树莓派先做一下认证。

./ngrok authtoken 你得到的令牌字符串

4、运行Ngrok,把树莓派的SSH服务映射到公网。

./ngrok tcp 22

现在,你将会看到如下所示的信息:

上图表示,TCP 连接到“0.tcp.ngrok.io:12119”的访问都将指向我这个树莓派的22端口。

5、用Putty登录0.tcp.ngrok.io,看看是否可以从公网访问树莓了。

OK,搞定了。快试试网速怎么样。

注:如果要固定访问地址,需要额外付费。如果只是临时用用,免费版的足够。有任何问题和建议欢迎给“IoT前哨站”微博或微信公众号留言。

OpenEyeTap:基于树莓派的开源AR智能眼镜

这一款EyeTap智能眼镜,使用3D打印组件,内置光学微型显示器,微型摄像头和带wifi功能的树莓派Zero W。具有电子记录功能(类似车载记录仪)和快照功能。

以下是项目团队对该项目的说明。

欢迎各位了解Open EyeTap项目!我们是一个具有雄心壮志的创作团队,致力于打造世界上最灵活的智能眼镜和可穿戴增强现实的社区。我们希望提供一个框架使AR技术可以蓬勃发展。我们希望与世界各地的设计师分享我们的EyeTap。作为一个社区,我们可以共同改进这种开源技术。

我们在这个项目中的主要目标是简化EyeTap的构建。我们希望它能帮助您建立自己的体系和减少进入AR领域的障碍。也希望你会找到有趣的功能和设计(也许是符合你生活方式的特定功能),都可以添加和分享到我们的网站:openeyetap.com!我们相信,作为一个社区,我们都可以成为开发第一波开源增强现实式眼镜不可或缺的有力臂膀。

下面我们详细介绍这款造价不到200美元的EyeTap的DIY步骤,你就可以打造同款了。简而言之,我们将使用3D打印组件,内置光学微型显示屏,微型摄像头和带wifi功能的树莓派 Zero W。我们目前开发了一种可以用EyeTap运行的电子记录功能(类似车载记录仪),更多其他模块和功能即将推出。

功能1:记录功能(Dash-camera)+ 快照功能

1、按下#1时,可拍摄照片。
2、按下#2时,可视频拍摄。按下按钮可保存1分30秒前的画面和后30秒的画面。如果连接到无线网络,将自动上传到你的YouTube频道。如果你的EyeTap未连接到WiFi,则保存到本地SD卡。

什么是记录功能?

车载摄像头在汽车中很常见,可以记录事故或异常事件。它们在循环缓冲区中运行,不断记录和覆盖旧的影像资料。在类似的运行基础上,我们可以从自己的视角拥有个人的视频纪录。如果你目睹或卷入任何意外事件,或着是想记录有趣或难忘的时刻,都可以按下按钮保存纪录。

当按下按钮#2时,最近的1分30秒,和按下按钮30秒后都将记录并保存为一个视频文件。如果连接到无线网络,这将自动上传到你的YouTube频道,如没有连接WiFi的情况下,则会本地保存。

步骤1:项目所需材料

需要3D打印部件(项目文件库中包含STL文件)

1x 3D打印头架
1x 3D打印左耳机
1x 3D打印右耳机
1x 3D打印鼻夹
1x 3D打印树莓派zero外壳
1x 3D打印树莓派zero盖子
1个3D打印的微型屏幕外壳
1个3D印刷的微型屏幕电路外壳

你可以选择水平或垂直的版本。本项目中,我们将使用水平版本,尽管照片中显示的是垂直的。

所需的电子和机械零件

树莓派Zero W × 1
微型显示屏 × 1
微型摄像头 × 1
微型摄像头Flex适配器 × 1
微型摄像头连接到树莓派的软排线 × 1
鼻夹片和1.5mm螺丝 × 1
分光镜 × 1
35cm电线 × 4
15cm电线 × 4
按钮 × 2

所需的工具

16mm M2螺丝 × 8
14mm M2螺丝 × 2
12mm M2螺丝 × 4
10mm M2螺丝 × 1
8mm M2螺丝 × 3
1.5mm螺丝用于固定鼻夹 × 1
螺丝刀 × 1
钳子 × 1
焊接用具 × 1
热熔胶 × 1

步骤2:3D打印EyeTap部件

如果你可以在家中,学校或附近的公共图书馆使用任何类型的3D打印机,则可以下载本项目文件库中的STL文件并自行打印部件。

如何成功3D打印部件,这里可以提供一些技巧。

1、100%填充所有部件,特别是头部带状框架,20%的填充物太脆弱,不适合玩耍。
2、如果打印正确,则不需要支撑材料的部件有:头部框架、微型显示屏、电路外壳、树莓派外壳和盖子。
3、需要支撑材料的部件有:耳塞,显示器外壳,鼻托支架。

步骤3:组装EyeTap框架

1、打印好组件后,先卸下支撑材料。多余的材料可以用在耳机支架和微型显示屏外壳上。
2、将右耳机滑动到头部框架上,组装EyeTap架。
3、从末端数起,听筒应位于第二个凹槽。
4、听筒应朝使用者头部内侧弯曲。使用两颗螺钉(M2x16mm)和螺母将听筒固定在头框上。重复使用左听筒。

步骤4:组装微型显示屏

1、将M2x8mm螺钉嵌入微型显示屏组件的中心部分。
2、将微型显示屏装入3D打印的微型显示屏外壳中。微型显示屏的两个突出接口应该插入外壳内,插入时稍许用点力。
3、将电路板固定在3D打印的电路板外壳中。让黄色部分自然弯曲在外壳的底部。之后,用螺丝将电路板外壳固定在微型显示屏外壳上。
4、使用三个螺钉(两个M2x8mm和一个M2x10mm),将分束器固定到微型显示屏模块上。
5、使用两个M2x12mm螺丝将模块固定在EyeTap头框上。

步骤5:组装鼻托模块

1、将金属鼻托插入3D打印的鼻托支架中,用螺丝固定。
2、将两个鼻片插入金属鼻托,并用螺丝拧紧。
3、在所有硬件连接并集成到框架上之前,请先不要固定鼻托模块。接线完成后,将鼻托放在EyeTap头框上并用M2x12mm螺丝固定。鼻托部件突出于头部框架,朝着使用者的方向安装。

步骤6:使用微型摄像头构建树莓派模块

如图所示,连接软排线,带电线PCB板、微型摄像头和树莓派。确保树莓派和PCB板两端的蓝色面朝上。确保微型摄影机排线的银色面朝上。

步骤7:将微型显示屏连接到树莓派Zero W

1、微型显示屏附带的连接器总共有7根导线,其中只使用4根。如图所示,每端使用2根电线,并将其他3根电线切断。
2、每根导线都有颜色编码,并具有以下功能。
红线:电源
黑线:地线
白线:另一个地线
橙线:视频传送线
3、同样你还需要准备4根35cm长的黑色导线。你可以先放弃3根,或以备留用。这4根黑色导线将用于将树莓派连接到微型显示屏的连接器上。
4、将四根彩色导线焊接到35cm长的四根黑色导线上。
5、如图所示将四根黑色导线焊接到树莓派。
6、将微型显示屏的连接器插入到微型显示屏,并将黑色导线穿过头部框架内侧并返回到树莓派。框架内侧的标签用于容纳和保护电线。
7、将树莓派放入它的机箱内。

步骤8:将按钮连接到树莓派Zero W

1、 两个按钮将连接到树莓派,其中一个(#1)用于“拍照功能”,另一个(#2)用于“Dash-Cam视频功能+ YouTube上传功能”。
2、准备两个按钮,两个10k电阻和四根15cm长的电线。
3、 按原理图所示连接按钮。按钮#1连接到GPIO 17,接地用于图片功能。按钮#2连接到GPIO 18,接地用于Dash-Cam功能。
4、图片中包含树莓派Zero GPIO图。黄色突出部分是使用部分,标出以供参考。

步骤9:集成硬件和其他机械零件

1、将树莓派Zero W插入3D打印的树莓排机箱中。确保按路线安装好微型显示屏的连接器,将按钮置焊接到树莓排外壳上。
2、将电线安装在头部框架的内侧,一直延伸到微型显示屏。
3、将连接器插入微型显示屏电路板。现在连接树莓派,以便屏幕显示输出。
4、将树莓派机箱固定在头部框架的左侧末端。
5、将微型摄像机安置在头部框架外表面。用强力胶将微型摄像机粘到EyeTap的主框架上。它应该位于用户鼻子的上方,与用户眼睛的朝向相同。
6、在树莓派机箱内轻轻折叠微型摄像机。用树莓派机箱上的4个M2螺丝将树莓派机箱盖固定在机箱上。
7、用热熔胶固定好两个按钮。

EyeTap的组装工作已完成

所有硬件组件都符合人体工程学的机械装配,现均已正确连接。唯一缺少的组件是软件。此时,如果你知道如何使用树莓派和Python,那么你已经完全有能力编写自己的所要的功能。线上有丰富的资源和无限想法,这正是我们最终建立自己的Wearable AR社区的原因,我们可以共享自己的新项目供其他人试用。但是,如果你想测试我们现有的程序,请参阅接下来的2个步骤!

步骤10:软件#1 纪录功能(dashcam) +快照功能

你下载和“即插即用”的第一个选项是记录功能(dashcam) +快照功能。你可以使用预先配置好了的Raspbian系统镜像。

自动执行程序

提供的图像具有设置为自动启动dashcam的功能——在任何时候按下ctrl + c可终止此过程,并禁止自动删除或编写/home/pi/.bashrc file ”中的“python /home/pi/Eyetap/dashcam/dashcam.py”。

在dashcam文件夹中提供了一个名为autostart.sh的脚本,该文件夹可自动设置为自动启动dashcam功能(如果它尚未设置为自动启动)。

通过运行命令/home/pi/Eyetap/dashcam/autostart.sh来执行此操作。

将EyeTap连接到你的YouTube频道

dashcam代码被设置为自动上传到YouTube,但它需要你的个人YouTube账号。当第一次运行代码时,它应该通过网页浏览器将你重定向到YouTube,你可以安全地输入你的YouTube登录账号。然后它会生成一个.youtube-upload-credentials.json文件,你可以将其放在你的主目录(/home/pi)中。你还可以更改上传视频的标题和说明以及代码中所述的分辨率,帧率和视频长度等参数。

步骤11:启动EyeTap!

完成SD卡设置后,将其插入树莓派Zero W。为EyeTap提供电源,连接电源——将Micro-USB插入树莓派Zero W上,将USB连接到便携式电池(任何可连接到手机充电器的便携式电池都可以)。将便携式电池放入你的口袋中,在EyeTap运行时可随身移动!

本项目所需的资源可在项目文件库中找到:
http://maker.quwj.com/project/45

来自:树莓派实验室

在Raspberry Pi 3B上跑Resin balena容器引擎

物联网正在快速发展,它是智慧设备的高度互联网络,这些设备包括环境传感器、健康跟踪器、家用电器和工业设备等。到 2020 年,预计有 200 亿个设备将连入网络,这超过 PC、智能手机和平板电脑加起来的数量的两倍。开发人员正在快速开始为 IoT 创建应用程序,而使用容器可在不同方面为他们带来帮助。

容器是一种轻量型的虚拟化方法,开发人员可使用该方法快速、大规模地开发、测试、部署和更新 IoT 应用程序。此前也有许多 Web 和移动应用程序开发人员使用虚拟机管理程序(比如 VirtualBox)来运行虚拟机 (VM),在一个跨平台的开发、测试和部署工作流中虚拟化物理硬件。道理异曲同工,但容器肯定更轻量。

Balena就是这样一个基于“Moby”的轻量级开源容器引擎,可以兼容32位到64位多种ARM架构,精简又轻便。可以跑在树莓派上。

安装也非常简单,一个命令搞定。

curl -sfL https://balena.io/install.sh | sh

不过缺点也是有的,比如没有Swarm集群、插件、云日志、应用层网络、非boltdb支持的商店。当然在IoT场景中,这些特性的需求度不高。

我在树莓派3B上测试了这个容器引擎,感觉还挺方便。

以后balena将在ResinOS里代替Docker,相信其他一些Docker相关的初创公司也会慢慢走上这条道路。恩,我指的是各种基于Moby的容器引擎替代Docker的。

买不到称心的智能镜子,就DIY一面吧

智能镜子可谓是科幻电影的必备道具。作为未来世界中信息泛滥的最佳展现形式,它随时能为主人公提供需要的消息。

然而,如此高大上的设备,制造起来其实还挺简单的……

所以,别再等众筹网站上不靠谱儿的项目了,不如自己动手组装一面~

材料:

一块树莓派3主板,或者有Wi-Fi 功能的旧型号。

一台有HDMI接口的显示器。显示器的尺寸就是智能镜子的最终尺寸,显示器还应该带USB接口,这样就不需要再为树莓派拉根电源线。

一面双向镜。尺寸当然和显示器一样。

鼠标、键盘,用来设置树莓派。

一幅画框,用来框镜子。当然,如果你有更好的创意,也可以不用画框~

工具若干。

制作:

制造智能镜子最难的并不是编程,因为需要的软件,Michael Teeuw创建的《智能镜子计划》网站(https://magicmirror.builders/)都给你打包好了。基本上,只要链接好树莓派,再安装上MagicMirror2;软件就行,甚至不需要下载,只要在树莓派上运行一行代码就成。

bash -c “$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)”

为防你想要亲力亲为…… GitHub上也有手动安装指南,地址如下:

https://github.com/MichMich/MagicMirror#manual-installation

安装时长在10-20分钟之间,一旦完成,编程上就没别的活儿了。不过还需要做一些设置,比如关掉屏保、旋转屏幕(镜子大部分都是竖着的嘛~),还有保证在待机状态下 Wi-Fi不会断开。

接下来就是真正有趣的部分了~

设置镜子界面:MagicMirror自带了时钟、当前天气、天气预报、新闻、问候语、Hello World,和闹钟模块。其中一些模块是需要额外设置的,比如说注册API钥匙,添加地址什么的。

MagicMirror还是个开源软件,这意味着第三方开发者会不时为它增添新的模块,让你持续完善自己的智能镜子。

一旦你把所有需要的模块都设置好了,就可以把显示器变成智能镜子了~

把双向镜放在显示器上(当然是镜面那面朝外),框好相框,你的智能镜子就做好了。

如果你想要做的再完美(彻底)点,还可以把显示器的硬件从塑料外壳中拆下来,让它一劳永逸地做面镜子~

来源:sohu

为什么说最适合IoT开发人员的发行版是Ubuntu

一句话前言:本文说的是用来“写”代码的机器,不是主要用来“跑”代码的机器。

适合做开发的桌面系统很多,但适合做IoT开发的并不多。

首先要支持各种硬件驱动和外设,再则要方便安装各种开源或闭源的IDE和插件。

很多朋友可能会说Mac OS X不错啊,Mac OS X是不错,但对应的Macbook实在不合群,一旦要用到USB口或者以太网口什么的……

Windows更适合用来进行Windows IoT版开发,而大部分嵌入式设备跑的是Linux……

好吧,那我们在Linux阵营里找。

此刻的答案可能要多如牛毛了,每个发行版的粉丝们都会讲出自己的理由。但我还是要说出我的选择 —— Ubuntu Desktop。

Eclipse 基金会在2017年四月完成了由 713 位开发者回答的 IoT 开发者那个调查,他们被问到了有关 IoT 编程语言、云平台、IoT 操作系统、消息协议(MQTT, HTTP)、IoT 硬件架构等问题。

当被问及大家在IoT开发时采用的操作系统/Linux发行版时,Raspbian 以 45.5% 的比例遥遥领先,Ubuntu/Ubuntu Core 紧随其后,使用比例达到了 44.0%。

嗯,答案看起来应该是Raspbian才对。

可大家别忘了Raspbian一直是跑在树莓派上的,而我们这里说的是技术人员平时用的开发环境。

Ubuntu/Ubuntu Core的官方支持列表大家有目共睹,不管是树莓派还是Orange Pi、DragonBoard 410c、Intel NUC……都能跑。

况且市面上很多公司的产品都在基于Ubuntu Core做定制,不管是大疆、Erle Robotics的无人机还是Rigado的IoT网关。

这样一对应,用Ubuntu的桌面来开发Ubuntu IoT这类系统的软件似乎再合适不过。很多包和组件都是配套的,有官方支持。

为各类设备做内核编译等操作的时候,运行Ubuntu Desktop的高性能X86桌面电脑可以快速交叉编译,搞定你需要的组件。不管是Ubuntu系统的,还是Raspbian系统的。

另外,近期开始流行的跨发行版Snappy包管理器,最初就是为Ubuntu系统构建的。其管理的Snap 包可对 App 和 Ubuntu Core 软件本身进行原子级事务性更新。具有沙箱的属性,不可以随意访问外部资源,和系统的其它部分隔离开来,并通过设计好的安全策略与其他 Snap 进行交互。这也是 Ubuntu Core 具有极强安全性的原因。

写了半天,突然发现Ubuntu官网已经把18.04 LTS这一“长期支持版”正式上线了。

是的,作为一个IoT开发平台,LTS —— “Long Term Support”也很重要。也许这就是我喜欢用Ubuntu Desktop来写代码的原因吧!

版权声明:本文为“IoT前哨站”原创,转载请注明原文作者和出处。