用 Ngrok 和树莓派绕过防火墙访问内网

绝大多数安全研究人员所面临的一个常见问题,就是如何在目标网络部署了严格的企业级防火墙或路由器时,如何访问目标企业网络内的办公计算机或者本地设备。在很多情况下,我们的办公室电脑会在防火墙的保护下接入互联网。那么问题就来了,在默认情况下,它并不会允许来自外部网络的流量进入内网。这也就意味着,你可以使用办公室电脑与互联网中的外部主机进行通信,但远程设备却无法与你的办公室电脑连接。

PS:本文仅用于技术讨论与分享,严禁用于任何非法用途

如果你想用家里的电脑访问办公室电脑中的文件或其他资料的话,这就非常令人头疼了。那现在该怎么办呢?我们有没有什么办法去访问路由器或防火墙背后的联网设备呢?

我们能想到的有如下四种方法:

1. 添加防火墙规则,并允许指定的远程IP绑定指定端口来访问办公室电脑

2. 端口转发

3. 反向SSH

4. Ngrok

Ngrok

Ngrok这种服务允许我们利用外部端口转发并通过任何网络来连接任意设备(LAN/WAN)。Ngrok最大的一个优势就在于,如果你想访问某个网络中的设备时,你并不需要让自己的设备同样处于同一本地网络之中。在Ngrok的帮助下,你可以通过SSH、FTP或Web服务器来访问目标设备。(Ngrok 参考资料)

既然我们已经了解了Ngrok的功能,那么接下来我们会使用Ngrok来设置办公室电脑来接受远程设备的SSH连接。我们会给大家提供一个简单的Ngrok使用样例,我会在公司内网的办公室电脑中开启一台SSH服务器(端口22),并设置Ngrok,然后使用Ngrok链接从外网访问这台办公室电脑。

第一步:设置账号

访问 ngrok.com 创建一个Ngrok账号。

完成了账号注册之后,你将会得到一个认证令牌,你需要使用这个令牌来连接你的树莓派和Ngrok账号,这个需要注意。

第二步:下载Ngrok

使用下列命令在你的树莓派上下载Ngrok:

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

接下来,使用下列命令提取文件:

unzip ngrok-stable-linux-amd64.zip

如果一切顺利的话,你将会看到一个名叫“ngrok”的文件:

第三步:创建你的账号

使用下列命令来设置你的认证令牌(authtoken):

./ngrok authtoken 4BSL861jeVz9wt7AM91QM_aksO43YvcKgmtC4pxv

第四步:运行Ngrok

现在你可以使用下列命令运行Ngrok(端口22):

./ngrok TCP 22

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

Web Interface http://127.0.0.1:4040 Forwarding tcp://0.tcp.ngrok.io:36428 -> localhost:22

上面的数据表示,任何指向‘0.tcp.ngrok.io’(端口36428)的链接都将被重定向到目标设备(端口22)上。

第五步:使用远程PC访问你的办公室电脑

现在,你可以使用下列命令从远程PC上访问你的办公室设备了:

ssh user@0.tcp.ngrok.io -p 36428

没错,一切就是这么简单,你可以使用这种方法随时访问你的办公室电脑。

转自 freebuf.com,作者 Alpha_h4ck

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

MAKER:SteveMann/译:趣无尽 Cherry(转载请注明出处)

我们这一款EyeTap智能眼镜,使用3D打印组件,内置光学微型显示器,微型摄像头和带wifi功能的树莓派ZeroW。具有电子记录功能(类似车载记录仪)和快照功能。以下是项目团队对该项目的说明。

欢迎各位了解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:将微型显示屏连接到树莓派ZeroW

1、微型显示屏附带的连接器总共有7根导线,其中只使用4根。如图所示,每端使用2根电线,并将其他3根电线切断。

2、每根导线都有颜色编码,并具有以下功能。

红线:电源

黑线:地线

白线:另一个地线

橙线:视频传送线

3、同样你还需要准备4根35cm长的黑色导线。你可以先放弃3根,或以备留用。这4根黑色导线将用于将树莓派连接到微型显示屏的连接器上。

4、将四根彩色导线焊接到35cm长的四根黑色导线上。

5、如图所示将四根黑色导线焊接到树莓派。

6、将微型显示屏的连接器插入到微型显示屏,并将黑色导线穿过头部框架内侧并返回到树莓派。框架内侧的标签用于容纳和保护电线。

7、将树莓派放入它的机箱内。

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

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系统镜像。如果你需要分步说明如何在SD卡上安装图像,请点击此处。

自动执行程序

提供的图像具有设置为自动启动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://make.quwj.com/project/45

via

使用 Adafruit 读取 DHT11 温湿度传感器

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

DHT11 规格

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

湿度检测范围 : 20-80% (5% 精度)

温度检测范围 : 0-50°C (±2°C 精度)

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

硬件连接

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

DHT Pin Signal Pi Pin 1 3.3V 1 2 Data/Out 11 (GPIO17) 3 not used – 4 Ground 6 or 9

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

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,这个传感器虽然没有湿度数据,但是其易用且稳定,有兴趣的朋友可以进一步阅读以下两个教程:

Adafruit的树莓派教程:DS18B20温度传感器

树莓派 SAKS 扩展板实用应用 之 数字温度计

树莓派+nodejs打造物联网图传控制履带车

本文来自 float 的投稿,介绍了一套基于树莓派平台的遥控小车机器人项目,支持图像传输和远程控制。项目的软件部分是开源的,在这里推荐给趣友和树莓派爱好者。

项目的灵感来自皮克斯动画《机器人总动员》的主角瓦力(wall.e)。一个在末日的废墟中幸存并日复一日清洁着地球的可爱机器人。

这是一个十分有趣的物联网项目!它运行在基于arm架构的raspiberry(树莓派)开发板上。借助性能出色的node和多平台兼容的硬件框架johnny-five,我们创建了这个项目。 ​ 此项目包括了服务端到前端程序,开发语言选用javascript,功能上包括了视频监控,温度数据采集,远程遥控,距离测量,gps定位等功能。 欢迎对物联网感兴趣的开发人员Issues。

技术栈

johnny-five

vue

express

chart.js

mongoDB

目标功能

[x] 支持视频实时监控 (完成)

[x] 支持摄像头转动(完成)

[x] 支持手动控制电机运行(完成)

[x] 支持温度采集(完成)

[ ] 支持gps定位

[ ] 支持距离探测

[ ] 支持循迹功能

[ ] 支持自由巡航

环境配置和依赖

树莓派开发板(Raspberry Pi 3 Model B)

ubuntu mate16.0.4操作系统

node && npm

MJPG-streamer

运行项目

项目下载

git clone https://github.com/zexiplus/WALL.E.git cd WALL.E npm install

开发模式运行web界面程序

npm run dev // then open the browser at http://localhost:1234

生产环境运行web界面程序

npm run build npm run local //then open the browser at http://localhost:2999

运行服务端程序

npm run board

材料准备

模块 价格 数量 树莓派开发板 ¥200 1 履带底盘 ¥350 1 AD转换器 ¥15 1 红外传感器 ¥3 6 SG90舵机 ¥15 1 树莓派摄像头 ¥80 1 电池 ¥30 1 gps模块 ¥50 1 MPU6050集成传感器模块 ¥20 1

接线说明

接线参考图如下:

目前接入电路的模块有电机驱动模块,mpu6050集成模块,servo伺服电机模块,摄像头模块。

电机驱动模块接收io引脚发出的高低电平,输出12v的电压从而驱动电机。

servo伺服电机模块用来转动摄像头,摄像头固定于伺服电机支撑的转轴上。

mpu6050模块可以感知周边温度,测量加速度等。

由于gps模块的通信信道与wifi冲突,暂时无法引入,gps定位会在之后的版本中完成。

本项目树莓派io引脚采用wiringPi编码,如图:

接线描述:

伺服电机的信号线接树莓派开发板 1引脚(wiringPi编码,下同)。

mpu6050传感器SCL接树莓派开发板 3引脚,SDA接 2引脚。

电机驱动模块四个输入端分别接树莓派 21,22,23,24 引脚。

项目展示

这里有一个项目的Web控制页面 DEMO,以下是视频演示。

小车实物图:

项目维护人

GitHub | float

Maker 趣无尽项目页面

项目许可协议:GPL

在树莓派3B 上安装 Windows 10 ARM 版的方法

早先关注我们的朋友可能对《国外开发者尝试在树莓派3上运行Windows 10桌面版》有印象。本文转自 amatfan.com,文末视频来自 daveb778(感谢柠栀和刺分享),给出了如何在树莓派3B上安装Windows10 ARM版,是的,这次并非IoT版,而是功能与PC一致的ARM版。需要注意的是,这个方法并非官方提供的,可用性上会有一些坑,热衷于尝试的玩家可以一试!

准备项目:树莓派3B以上型号,16G以上SD卡,显示器,键盘鼠标,电源。

1.格式化SD卡

2.使用DiskGenius,打开

格式化为2个分区,第一个100MB,格式为FAT32,第二个为NTFS,大小是剩余的全部容量。

下载镜像链接: https://pan.baidu.com/s/11Pwk1QwgNvr8mh_p6y-VpA 密码: tfyp

右键用Windows资源管理器打开

下载软件:DISM++,百度网盘链接: https://pan.baidu.com/s/1Bkq20DWnf7QPs_qMTAw8yg 密码: dgp4

选择:恢复功能:系统还原

目标映像打开刚才打开的ISO文件中的sources\install.wim文件

写入位置选择刚才格式化的大分区

点击确定开始恢复

等待恢复期间,下载UEFI与驱动:

UEFI:下载

驱动:下载

下载后解压打开,找到UEFI中的RaspberryPiPkg\Binary\prebuilt\2018May22-GCC49\RELEASE

将里面全部文件复制进入SD卡小的分区

等待恢复完毕,我们需要手动创建引导文件。请以管理员身份打开cmd

依次输入以下命令:(2,3条顺序可以颠倒。)

bcdboot X:\Windows /s Y: /f UEFI /l zh-cn bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} testsigning on bcdedit /store Y:\efi\microsoft\boot\bcd /set {Default} nointegritychecks on

其中,X是你的NTFS分区,Y是你的FAT分区

以我的电脑为例,我的sd卡的FAT分区是D:,NTFS分区是F:

则我需要输入如下命令:

bcdboot F:\Windows /s D: /f UEFI /l zh-cn bcdedit /store D:\efi\microsoft\boot\bcd /set {Default} testsigning on bcdedit /store D:\efi\microsoft\boot\bcd /set {Default} nointegritychecks on

然后安装驱动(更新驱动也是一样的)

其中F是刚才大的NTFS分区, C:\Users\gloom\Downloads\rpi 是驱动下载保存的位置

dism /image:F: /add-driver /driver:C:\Users\gloom\Downloads\rpi /forceunsigned

插入树莓派,开机。然后按esc键来到Uefi设置页面

选择 Device Manager

进入Raspberry pi configeration

选择第一个

更改为EL1

退出重启,去除连接树莓派上的键盘,鼠标,等待系统设置完成(插键盘会蓝屏)

接下来设置与普通Windows一样,设置完成就可以使用了!

以下是 daveb778 提供的视频教程:

用树莓派和宜家台灯玩转AR投影黑科技

MAKER:Nord Projects/译:趣无尽 Cherry(转载请注明出处)

这是一款用树莓派(Raspberry Pi)和宜家台灯制作的智能家具,应用 Android Things 系统来实现 AR(增强现实)投影灯。

Nord Projects 表示我们已经制作了一些类似的 AR 智能家具的项目,如:投影给时钟显示约会标记、投影给扬声器显示当前正在播放的歌曲。

在不久的未来,将使用投影来呈现环境信息,以及日常物体中的相关用户界面。与屏幕不同,当台灯的投影不再需要时,它们就会慢慢消失。

这是一个非常明晰的教程,用照片和GIF很好地加以说明。这个项目不需要大量的实践经验,你只需要3D打印出所有组件,将所有的东西组合在一起即可,因为一切都是开源的,感兴趣的趣友们动手试试看吧:)

项目将使用宜家的灯具、激光投影仪和Android things创建一个互联的投影仪。通过配套的应用程序设置迷你的应用程序,在线连接数据反馈并显示预计的用户界面。

改造的核心是Android Things,一款来自Google的新操作系统,专为嵌入式设备和物联网而设计。 Android Things更容易实现软件与设备的连接,尤其是对于已经熟悉Android的移动开发人员!

台灯投影仪使用宜家的Tertial灯现成部件,3D打印附件和我们的开源软件。

如果你以前没有使用过Android的东西也不必担心。 我们将引导你完成这一过程,以便立即启动并运行这个项目。

所需材料

宜家 Tertial 台灯 x1

10mm x 2m编织电缆护套x1

电缆扎带x4

M2 x 4mm自攻螺丝钉x6

M2.2 x 8mm自攻螺丝钉x3

M3 x 20mm自攻螺丝钉x5

M48mm翼形螺丝钉x2

M410mm螺丝钉x2

UO智能光束投影仪x1

Raspberry Pi 3 B型x1

Raspberry Pi V2摄像头(可选)x1

ADXL345加速传感器x1

母对母跳线(75mm)x4

MicroSD卡(大于2GB)x1

直角microHDMI转HDMI高清线 x1

直角(下弯)microUSB延长线x2

Micro-USB电源线 6英尺(约183mm)x2

双端口USB电源适配器x1

所需工具

螺丝刀(十字头,型号PH1,PH0)

Rasp文件(+副选项)

量角器或数码角度标尺 x1

磨砂纸(80砂砾) x1

烙铁+焊料(刀头可选)

剪切工具(用于切割灯丝,电缆扎带) x1

内六角扳手4(用于灯头平头螺丝+插入尺寸4) x1

类似锥子或螺丝刀这样可以取下灯泡罩的小尖头物品 x1

步骤1:台灯内部的准备工作

1、将电源线从灯中取出

松开灯架侧面的螺丝,然后切断灯头附近的电源线,通过金属手臂将电源线拉出。

2、拆下灯泡附件

使用六角扳手,卸下固定电缆的螺丝。在灯头的侧面插入一把小螺丝刀。 轻轻撬起塑料卡舌以松开插座。 (把它弄松可能有点棘手。)将灯头转过来并取下固定插座的塑料螺丝。 你现在可以取下灯泡附件了。

3、修改灯臂

从手臂上拧下灯头,然后取下塑料夹。将手臂接口的直角磨成到半圆形。

4、夹住灯头

从手臂上拧下灯头。 从金属延伸件上取下所有部件。将金属夹的边缘磨平,使它们均匀平滑。

5、处理塑料垫片

取出从金属附件的塑料垫片。 使用砂纸将其两端磨成约4.5mm厚。处理后的塑料片可以更好地固定金属部件,防止头部随着长时间的使用而滑落。

6、拧紧螺丝

拧紧灯上的所有螺丝钉,使它可以很好地移动。

步骤2:3D打印附件

1、测量灯的角度

每个灯都会不同,所以需要调整CAD模型。 使用量角器或数码角度尺,测量凹槽和灯臂之间的角度。

2、获取CAD

在OnShape中打开CAD模型(开源项目免费使用)。 这是一份公开文件,所以请复印一份供你调整。

3、调整CAD

点击标题为’EDIT THIS – arm pilot holes’的草图。选择上面标有显示的测量值并将数值更改为步骤1中测量的角度。输入后将相应的旋转相关特征。

4、导出你的模型

三个部分中的每一个,右键单击附件名称并导出。 使用以下设置:

格式:STL

STL格式:二进制

单位:毫米

分辨率:良好

选项:下载

5、3D打印

使用3D打印机打印文件。我们使用了Ultimaker 2+,但你可以随意使用任何型号的3D打印机。

我们的Ultimaker 2+设置:

材料:PLA

喷嘴:0.4毫米

使用默认设置,微调:

增加10mm的边缘

第一层的喷嘴温度为200°C

剩下部分的喷嘴温度为210°C

打印顶部部件(顶盖和手臂)时,壁厚度设置为3毫米。

步骤3:组装硬件

1、焊接加速度传感器

将一行的9个针头引脚焊接到加速传感器上。确保它们延伸出电路板的正面。

2、嵌入投影机

将投影机按入底座;使它安置妥当。将微型HDMI电缆插入投影机。

3、组装手臂和盖子

使用2 x 20毫米M3螺丝钉将3D打印的手臂连接到配套的盖子上。小心地将手臂的底座与盖子上的定位器对齐。

4、螺纹固定插件

使用六角扳手,将10mm M4螺纹插件拧入臂顶部的两个孔中,直至它们与表面齐平。

5、连接跳线

使用跳线将加速度传感器与Raspberry Pi上的I2C总线连接。务必慢慢来,确保这两个组件安装到的正确引脚上!

6、安装相机(可选)

提起相机连接器上的夹子并插入带状电缆。将夹子向下推,将其固定到位。将相机安装到位。

7、连接树莓派

将Raspberry Pi移动到位并用3个8mm M2.2螺丝固定。

8、连接加速度传感器

使用2个M24毫米螺丝将加速传感器连接到底座。

9、连接盖子和手臂

使用3个20毫米M3螺丝将盖子和手臂连接到底座。

10、HDMI高清线

将HDMI高清线插入Raspberry Pi。

步骤4:接线

1、切割护套

将编织电缆护套切成166CM长。我们建议在烙铁上使用刀具附件以防止电缆护套散开。

2、穿线套

将两根USB电缆穿过编织电缆护套。

3、将电缆传入灯罩内

将Micro-USB电缆的两端插入灯头后部。

4、直角连接器

将电缆穿过3D印刷臂的侧面。 连接直角Micro-USB延长线。 插入USB电源适配器。

步骤5:设置软件

1、 获取Android Things

准备好你的microSD卡,并按照以下步骤操作https://developer.android.com/things/hardware/raspberrypi.html#flashing_the_image 刷新SD卡上的Android Things。

2、启动Android Things

将microSD插入Pi并连接USB电源。

3、设置WiFi

运行“android-things-setup-utility”。出现提示时,选择“2 – 在现有Android Things设备上设置Wifi”,然后选择“1 – Raspberry Pi 3”。接下来,通过网络将Raspberry Pi连接到你的计算机(或路由器),然后按“Enter”键。按照屏幕提示设置WiFi。现在你可以拔掉Raspberry Pi。

4、安装并运行代码

从GitHub下载代码并在Android Studio中打开它。一旦Gradle同步,打开一个终端窗口并输入:

adb连接android.local

然后选择‘things’设置按绿色键为上传并运行代码。

如果获取错误?请查看我们的故障排除指南。

5、给投影机供电

将Micro-USB插入投影机并打开电源。检查显示器,如果以错误的屏幕分辨率启动,灯会自动重启,因此你可能需要等待完成。当你看到启动画面时,你完成了,太棒了!

如遇到问题?请查看我们的故障排除指南

步骤6:组合在一起

1、连接硬件

将组装好的硬件插入灯头。务必检查摄像头和投影机是否垂直对齐。

2、拇指固定螺钉

一旦排好后,用手指固定螺丝。

3、电缆扎带

用小电缆扎带将电缆固定到位。在灯头附近留出足够的余量以便将硬件装入和取出。

步骤7:下一步会是什么?

在手机上安装相应的应用程序(使用Android Studio)并使它与台灯连接。

向下、向前或向上移动台灯,投影画面在默认通道之间切换。

通过点击手机页面上的方向选择来改变频道。

最后下一步

定制你的专属台灯 – 混合搭配宜家灯具部件或喷涂你自己的灯具。按照本指南制作自己的频道。以下是我们想到的一些事情:

桌面上下载你喜欢的新闻软件APP,或者你的WeChat

一个用来逗猫的光点

使用网络摄像头和计算机摄像头用作你的台灯的相机投影系统

尝试处理Android Things

故障排除指南

adb connect android.local 返回错误

可能是你的网络无法解析该名称,或者您的设备未连接到WiFi。 打开投影机并查看Android Things Launcher – 它会告诉你本地网络上的IP地址。

如果列出了IP地址,请在终端中输入 adb connect

如果这不起作用,或者你的设备没有IP地址,那么你的WiFi网络可能不支持此类设备。 尝试再次配置WiFi,如果可能的话,连接到不同的网络。

源代码

所有源码均可在 GitHub 下载,包括用于 Android Things 的源码、运行投影仪和 Android Mobile 相关 APP 源码。

GitHub:https://github.com/nordprojects/lantern

项目主页:http://nordprojects.co/lantern

MAKER 趣无尽页面:http://make.quwj.com/project/54

树莓派实验室全新改版中

MCC 172是一个两通道DAQ HAT,用于通过IEPE传感器(如加速度计和麦克风)进行声音和振动测量。它的每个通道具有24位A/D,最大采样率为51.2 kS/s/Ch。

使用树莓派构建一个婴儿监视器

香港很湿热,即便是晚上,许多人为了更舒适,在家里也使用空调。当我的大儿子还是一个小婴儿的时候,他卧室的空调还是需要手动控制的,没有温度自动调节的功能。它的控制器只有开或者关,让空调整个晚上持续运行会导致房间过冷,并且也浪费能源和钱。

我决定使用一个基于树莓派的物联网解决方案去修复这个问题。后来我进一步为它添加了一个婴儿监视器插件。在这篇文章中,我将解释我是如何做的,它的代码在 我的 GitHub 页面上。

设计空调控制器

解决我的问题的第一个部分是使用了一个 Orvibo S20 可通过 WiFi 连接的智能插头和智能手机应用程序。虽然这样可以让我通过远程来控制空调,但是它还是手动处理的,而我希望尝试让它自动化。我在 Instructables 上找到了一个满足我的需求的项目:他使用树莓派从一个AM2302 传感器上测量附近的温度和湿度,并将它们记录到一个 MySQL 数据库中。

使用压接头将温度/湿度传感器连接到树莓派的相应 GPIO 针脚上。幸运的是,AM2302 传感器有一个用于读取的 开源软件,并且同时提供了 Python 示例。

与我的项目放在一起的用于 AM2302 传感器 接口的软件已经更新了,并且我使用的原始代码现在应该已经过时了,停止维护了。这个代码是由一个小的二进制组成,用于连接到传感器以及解释读取并返回正确值的 Python 脚本。

将传感器连接到树莓派,这些 Python 代码能够正确地返回温度和湿度读数。将 Python 连接到 MySQL 数据库很简单,并且也有大量的使用 python-mysql 绑定的代码示例。因为我需要持续地监视温度和湿度,所以我写软件来实现这些。

事实上,最终我用了两个解决方案,一是作为一个持续运行的进程,周期性(一般是间隔一分钟)地获取传感器数据,另一种是让 Python 脚本运行一次然后退出。我决定使用第二种方法,并使用 cron 去每分钟调用一次这个脚本。之所以选择这种方法的主要原因是,(通过循环实现的)持续的脚本偶尔会不返回读数,这将导致尝试读取传感器的进程出现堆积,最终可能会导致系统挂起而缺乏可用资源。

我也找到了可以用程序来控制我的智能插头的一个 Perl 脚本。它是解决这种问题所需的一部分,因此当某些温度/湿度达到触发条件,将触发这个 Perl 脚本。在做了一些测试之后,我决定去设计一个独立的 checking 脚本,从 MySQL 去拉取最新的数据,然后根据返回的值去设置智能开关为开或关。将插头控制逻辑与传感器读取脚本分开,意味着它们是各自独立运行的,就算是传感器读取脚本写的有问题也没事。

配置一个打开/关闭空调的温度值是很有意义的,因此,我将这些值转移到控制脚本读取的配置文件中。我也发现,虽然传感器的值一般都很准确,但是,偶尔也会出现返回不正确读数的情况。这个传感器脚本被修改为不向 MySQL 数据库中写入与前值差异非常大的值。同样也在配置文件中写入了连续读取的温度/湿度之间允许的最大差异值,如果读取的值处于这些限制值以外,这些值写不会提交到数据库中。

虽然,做这个自动调节器似乎花费了很多努力,但是,这意味着,记录到 MySQL 数据库的数据是有效的、可用于进一步去分析识别用户使用模式的有用数据。可以用多种图形方式去展示来自 MySQL 数据库中的数据,而我决定使用 Google Chart 在一个 Web 页面上显示数据。

添加一个婴儿监视摄像头

树莓派开放的性能意味着我可以不断地为它增加功能 —— 并且我有大量的未使用的可用 GPIO 针脚。我的下一个创意是去添加一个摄像头模块,将它放在孩子的卧室中,配置它去监视婴儿。

我需要一个能够在黑暗环境中工作的摄像头,而 Pi Noir 摄像头模块是非常适合这种条件的。Pi Noir 除了没有红外过滤之外,同样也是树莓派常用的摄像头模块。这意味着它在白天时的图像可能有点偏紫色,但是它可以在黑暗中借助红外灯来显示图像。

现在我需要一个红外光源。由于树莓派非常流行,并且进入门槛很低,因此它有大量的外围配件和插件。也有适合它的各种红外光源,我注意到的其中一个是 Bright Pi。它可以从树莓派上供电,并且它很适合为树莓派的摄像头模块提供红外光和普通光。它唯一的缺点是太考验我的焊接技能了。

我的焊接技能还是不错的,但是可能花费的时间比其他人更长。我成功地连接了外壳上所有的红外 LEDs,并将它们连接到树莓派的 GPIO 针脚上。这意味着树莓派能够编程控制红外 LED 是否点亮,以及它的亮度。

通过一个 Web 流去公开捕获的视频也很有意义,因为这样我就可以从 Web 页面上查看温度和湿度的读数图表。进一步研究之后,我选择了一个使用 M-JPEG 捕获器的 流软件。通过 Web 页面公开 JPG 源,我可以在我的智能手机上去连接摄像头查看程序,去查看摄像头的输出。

做最后的修饰

没有哪个树莓派项目都已经完成了还没有为它选择一个合适的外壳,并且它有各种零件。在大量搜索和比较之后,有了一个显然的 赢家:SmartPi 的乐高积木式外壳。乐高的兼容性可以让我去安装温度/湿度传感器和摄像头。下面是最终的成果图:

在这以后,我对我的这个作品作了一些改变和更新:

我将它从树莓派 2 Model B 升级到了树莓派 3,这意味着我可以使用 USB WiFi 模块。

我用一个 TP-Link HS110 智能插头替换了 Orvibo S20。

我也将树莓派插到了一个智能插头上,这样我就可以远程重启/重置它了。

我从树莓派上将 MySQL 数据库移走了,它现在运行在一个 NAS 设备上的容器中。

我增加了一个非常 灵活的三角夹,这样我就可以调整到最佳角度。

我重新编译了 USB WiFi 模块,禁用了板载 LED 指示灯,这就是升级到树莓派 3 的其中一个好处。

我因此为我的第二个孩子设计了另外一个监视器。

因为没有时间去折腾,我为我的第三个孩子购买了夜用摄像头。

想学习更多的东西吗?所有的代码都在 我的 GitHub 页面上。

想分享你的树莓派项目吗?将你的故事和创意发送给我们。

via: https://opensource.com/article/18/3/build-baby-monitor-raspberry-pi

作者:Jonathan Ervine 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

树莓派加无线网卡配置WIFI热点的方法

树莓派实验室按:本文转自小莱沃博客,一般将树莓派作为WIFI热点使用会用到板载的有线网口接入互联网,然后配置内置或外接一块无线网卡为WIFI热点。而作者用树莓派3B内置的无线网卡加上一块USB无线网卡,将树莓派配置成了无需连接有线网卡的WIFI热点。下面看看他具体是怎么配置的吧。

一直想入手树莓派玩玩,最后受到一位大神的启发(懒人在思考)琢磨了另一种树莓派WIFI的用法。使用树莓派本身的系统,添加一个外置无线网卡,使其成为可移动的无线解决方案,当然主要还是为了能够安装某些S类的软件。

从淘宝购入硬件设备,下面开始折腾。

配置网络

安装 dnsmasq 和 hostapd

sudo apt-get update sudo apt-get install dnsmasq hostapd udhcpd

将无线接口wlan0的IP配置成静态地址。外置无线网接口wlan1默认DHCP配置并接入因特网。在树莓派系统中,默认是DHCPCD配置网络接口。所以要告诉系统我们给wlan0分配静态IP地址,操作是打开配置文件并增加配置参数指令。

sudo vi /etc/dhcpcd.conf

interface wlan0 static ip_address=192.168.88.1/24

修改 /etc/network/interfaces 设置 wlan1 为 DHCP 并自动连接WIFI, wlan0 为固定IP

# 表示使用localhost auto lo iface lo inet loopback # wlan1 自动获取IP auto wlan1 iface wlan1 inet dhcp pre-up wpa_supplicant -Dwext -i wlan1 -c /etc/wpa_supplicant/wpa_supplicant.conf -B # wlan0 为静态IP auto wlan0 allow-hotplug wlan0 iface wlan0 inet static address 192.168.88.1 netmask 255.255.255.0

重启树莓派

sudo service dhcpcd restart sudo reboot

配置 UDHCP

编辑配置文件/etc/udhcpd.conf

start 192.168.88.100 #配置网段 end 192.168.88.150 interface wlan0 # The device uDHCP listens on. remaining yes opt dns 192.168.1.1 8.8.8.8 opt subnet 255.255.255.0 opt router 192.168.88.1 # 无线lan网段 opt lease 864000 # 租期10天

配置 HOSTAPD

创建hostapd.conf

sudo vi /etc/hostapd/hostapd.conf

添加如下配置

interface=wlan0 driver=nl80211 ssid=H-Pi hw_mode=g channel=6 wmm_enabled=1 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=abc12345 wpa_key_mgmt=WPA-PSK rsn_pairwise=CCMP

修改 /etc/default/hostapd ,让系统每次启动都自动加载AP模式下的配置。

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

设置开机启动

sudo update-rc.d hostapd enable

配置 DNSMASQ

备份默认配置文件

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak

添加以下内容

interface=wlan0 bind-interfaces server=218.2.2.2 server=114.114.114.114 server=8.8.8.8 domain-needed bogus-priv dhcp-range=192.168.88.2,192.168.88.254,12h

设置 IPV4 转发

打开系统配置文件sysctl.conf,去掉IPV4转发那一行的#注释

sudo vi /etc/sysctl.conf

# Uncomment the next line toenable packet forwarding for IPv4 net.ipv4.ip_forward=1

外置无线接口共享给wlan0上网,需要配置NAT:

sudo iptables -F sudo iptables -X sudo iptables -t nat -APOSTROUTING -o wlan1 -j MASQUERADE sudo iptables -A FORWARD -i wlan1 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT sudo iptables -A FORWARD -i wlan0 -o wlan1 -j ACCEPT

保存以上防火墙规则

sudo sh -c “iptables-save> /etc/iptables.ipv4.nat”

在 /etc/network/interfaces 末尾增加一行,设置为开机启动

up iptables-restore < /etc/iptables.ipv4.nat 编辑 /etc/network/if-pre-up.d/iptables 添加下面两行代码: #!/bin/bash /sbin/iptables-restore < /etc/iptables.ipv4.nat 保存退出,然后修改 iptables 权限: sudo chmod 755 /etc/network/if-pre-up.d/iptables 通过获取DHCPCD来运行NAT需要创建一个新文件 sudo vi /lib/dhcpcd/dhcpcd-hooks/70-ipv4-nat sudo iptables-restore < /etc/iptables.ipv4.nat 重启服务及树莓派 sudo service hostapd start sudo service dnsmasq start sudo reboot 其他配置 设置 wlan1 自动连接区域内WIFI sudo vi /etc/wpa_supplicant/wpa_supplicant.conf 在文件的末尾添加WIFI网络的名称以及密码,将要连接的wifi名称和密码替换即可。 network={ ssid="SSID" psk="wifi_password" } 使用sudo wpa_cli reconfigure命令启动连接 pi@raspberrypi:~ $ sudo wpa_cli reconfigure Selected interface 'wlan0' OK 转自小莱沃

树莓派基金会:树莓派3B+发布

树莓派基金会在3.14(π日,圆周率日)宣布树莓派3B+版本发布,还制作了一段介绍视频。

下面就让树莓派实验室给大家划重点。

树莓派3B+的定价依然是35美元,主要特性如下:

1.4GHz 64位4核 ARM Cortex-A53 CPU

双频 802.11ac 无线网卡和蓝牙 4.2

更快的以太网(千兆以太网 over USB 2.0)

1G LPDDR2

PoE 支持(Power-over-Ethernet,with PoE HAT)

改进 PXE 网络与 USB 大容量存储启动

树莓派3B+是采用 BCM2837B0 型号 CPU 构建,是之前 3B 上用的博通处理器的更新版本,这个处理器包含完整的性能优化和散热器。这允许更好的时钟频率,并能更准确地监控芯片温度。

双频无线网卡和蓝牙采用 Cypress CYW43455 “combo” 芯片,与上一代产品相比,3B+ 在2.4GHz 频带的数据传输表现更好,并且在 5GHz 频带的表现将更好!

Tx bandwidth (Mb/s) Rx bandwidth (Mb/s) Raspberry Pi 3B 35.7 35.6 Raspberry Pi 3B+ (2.4GHz) 46.7 46.3 Raspberry Pi 3B+ (5GHz) 102 102

以往的树莓派设备使用 LAN951x 系列芯片,它将 USB HUB 与 10/100 以太网控制器结合在一起。对于树莓派 3B+,升级版 LAN 7515 支持千兆以太网,而当 USB 2.0 连接应用处理器限制了可用带宽。与树莓派 3B 相比,我们仍然看到吞吐量大约增加了三倍。

Tx bandwidth (Mb/s) Rx bandwidth (Mb/s) Raspberry Pi 3B 94.1 95.5 Raspberry Pi 3B+ 315 315

下面是各版本树莓派 CPU 频率和温度的测试数据,供参考。

常见问题:

是否会停止了早期的树莓派版本?

不,我们有很多行业客户希望暂时坚持现有的产品。只要有需求,我们会继续生产。 Raspberry Pi 1B +,Raspberry Pi 2B 和 Raspberry Pi 3B 将分别继续以25美元,35美元和35美元的价格出售。

A+ 型号会发布吗?

树莓派1代A+ 暂时仍然是价格为20美元的入门级树莓派。我们正在考虑在适当的时候生产树莓派 3A+ 的可能性。

计算模块呢?

CM1,CM3和CM3L将继续可用。根据客户的需求,我们可能会在适当的时候提供BCM2837B0版本的CM3和CM3L。

你还在使用 VideoCore 吗?

是。 VideoCore IV 3D 是唯一公开记录的基于 ARM 的 SoC 的 3D 图形核心,我们希望树莓派随着时间的推移而变得更加开放,而不是更少。

目前树莓派3B+在国内暂无货源,敬请关注树莓派实验室后续消息!

用 Ncdu 分析树莓派的磁盘用量

使用树莓派部署、下载了很多软件和文件之后,你可能经常需要清理一下,这时要去搜索占用 SD 卡空间的都是哪些东西。树莓派 Raspbain 系统有一个很有用的工具叫 Ncdu,可以列出可以清理的磁盘空间占用。下面树莓派实验室给大家介绍。

安装 Ncdu 磁盘分析器

Ncdu 已经被 Raspbian 默认安装好了,如果没有则需要手工安装,可以用下面的命令。

sudo apt-get update sudo apt-get install -y ncdu

运行 Ncdu

终端输入命令运行:

ncdu

它会给出当前目录下的磁盘占用情况。

你可以切换到你想清理的目录下面运行 ncdu 命令,或者像下面这样指定某个路径查看:

ncdu /home/pi

ncdu /

建议在指定目录时尽量选择一个比较合理的目录结构,如果目录下文件和子目录太多则需要等待 Ncdu 分析很久。

你可以使用方向键、回车键选择或进入下一层目录。

Ncdu 快捷键

这里提供了快捷键列表。按下“?”可进入。

快捷键划重点:

? – 显示帮助界面

up, down j, k – 上下移动光标

right, enter, l – 打开所选目录

left, <, h – 返回上层目录 n – 按照文件名排序(再按一下倒序排列) s – 按照文件大小排序(再按一下倒序排列) C – 按照项目数排序(再按一下倒序排列) a – 切换磁盘用量显示 d – 删除所选的文件或目录 i – 显示所选项的更多信息 r – 刷新/重新计算当前目录 b – 在当前目录下打开 shell 这里列出了界面上符号的释义: 总而言之,用了这个工具之后,手动清理磁盘空间不再繁琐了,希望对您有所帮助。 原文,翻译:树莓派实验室,转载本译文请保留此声明。

用树莓派搭建低成本VOIP服务器与电话系统

作者:树莓派杂志中文版

利用 Asterisk 来实现一个低成本的电话系统

在研究了一些为小企业提供VoIP(Voice over Internet Protocol)和IP电话服务,包括支持新趋势 UC(统一通信)的技术解决方案之后,我个人认为用树莓派提供一个非常低成本的解决方案是完全可行的。相对于100美元的投资和一个专用的 VoIP/UC 服务器解决方案,树莓派和相应配件在成本方面的优势是无法比拟的。

树莓派的解决方案是通过在 Raspbian 系统上运行 Asterisk VoIP/UC 软件来实现的。这个开源解决方案提供了高度灵活的配置项,当然也可以用于许多不同的领域和应用。

本文说明了 VoIP/UC 的解决方案并不一定是高风险的,在实施的时候也不一定是需要很高投入的。

简介

在过去的几十年中,电话技术发展迅速,从模拟通信迁移到了基于VoIP的数字通信和IP电话。这也让统一通信成为了可能,统一通信是对实时通信服务,例如即时消息(聊天),电话,数据共享,视频会议,语音识别等和非实时通信服务,例如语音信箱,电子邮件、短信和传真等的集成。统一通信并不是指某一个单一的产品,而是一系列提供了一致的,统一的,跨多个设备和媒体类型的用户界面和用户体验的产品。(http://en.wikipedia.org/wiki/Unified_communications)

VoIP 是利用某个网络协议,比如SIP协议 (Session Initiation Protocol) 和 RTP协议 (Real-time Transport Protocol) 等,从而实现通过因特网来传输声音。

基础

要实现一个 VoIP/UC 解决方案,系统必须满足各种行业标准,而且网络设备也必须能够区分出对语音视频数据和其他类型数据的使用。

基本组件

本方案对硬件和软件的要求很简单。你需要做的可能只是下载软件而已。

硬件:

树莓派

4 GB SD卡 (最低配置)

1A 电源

网线

可选的 SIP 电话或者 SIP适配器(本文使用 Dlink DPH-150SE)

软件:

Raspbian

Asterisk 通信软件

LinPhone 虚拟电话软件 (支持 iOS, Android, Blackberry, Linux, Windows and OSX)。你可以通过下面链接下载。 http://www.linphone.org

安装

初始安装设置的时候,你可能需要使用一个USB键盘和鼠标连接到 Raspberry Pi 上,再连上一个显示器。配置成功以后,树莓派就可以不需要这些而自己运行了。

获取 Asterisk 软件最好的和最容易的方法是从这个网站 (http://www.raspberry-asterisk.org/downloads)下载最新的 SD 卡映像文件,它是一个预装了 Asterisk 通信软件和 FreePBX 图形用户界面的 Raspbian 系统。该映像文件是通过在这个网页上(http://www.raspberrypi.org/documentation/installation/installing-images/)的步骤被写到SD卡上的。

当系统启动后,用 root 身份和 raspberry 密码登陆。如果愿意,你也可以远程登陆树莓派系统。在 Windows 上安装 PuTTY SSH 客户端并用 root@raspbx 连接树莓派。如果是苹果的 Mac,只需简单的打开终端,输入命令 SSH root@raspbx.local 。你可能以后会想禁止通过 SSH 登陆 root 用户,因为这有可能造成一个安全漏洞。当你登录系统以后,你需要运行的第一个命令是:

raspbx-upgrade

这个命令将更新所有的软件到最新版本,包括 Raspbian 和 Linux 内核。

接下来你需要做的是配置静态IP地址。你需要在你的路由器或者猫上指定你想使用的静态IP地址,网络掩码和网关。命令:

ifconfig

将提供你当前的IP地址,网络掩码。你的新的静态IP地址的前三个字节应该跟你当前的IP相同,最后一个字节必须在你的路由器当前已使用的动态IP地址范围之外。如果想查找网关地址,请输入:

netstat -r

通过下面的命令编辑 interface 文件:

nano /etc/network/interfaces

编辑好的 interface 文件应该看起来跟下面截图中的一样。

注意你需要将 eth0 那一行上的 “dhcp” 替换为 “static”, 并确保你使用的是 键来达到需要的缩进。

保存这个文件以后,重启树莓派让新的网络设置生效。现在开始,你就可以使用新的静态IP或者 raspbx 主机名了。例如我现在就可以使用 PuTTY 通过静态IP来连接树莓派: root@172.31.15.11 。

Asterisk的配置

我们现在要通过 FreePBX 的图形用户界面来配置 Asterisk 软件。这样可以让整个配置过程变得简单和容易。 FreePBX 是已经在我们下载的那个映像文件里预装好了的软件。

如下所示的是一个示例架构图:

要运行 FreePBX, 请打开浏览器并在地址栏输入 http://raspbx 或者树莓派的静态 IP 地址。(对于苹果的 Mac,你需要输入 http://raspbx.local)。这样就打开了 FreePBX 的管理界面。

这里有三个选项:

FreePBX Administration 用于配置 Asterisk User Control Panel 供用户调整他们的个人设置 Get Support 将打开 FreePBX 的官方网站

点击 FreePBX Administration, 默认的登录名是 admin,登陆密码也是 admin。这个软件的菜单有多种选项,包括分机(Extensions),会议(Conferences)和响铃组(Ring Groups)等。请点击分机(Extensions)。

由于当前没有分机存在,所以你将添加一个新的分机。Device 选项请选择 Generic SIP Device,然后点击提交(Submit)进入下一个页面。这个页面也有很多的选项,但我们只需要设置用户分机号码为 300,显示名称为 Walberto 和密码为 ext300。单击 Submit 添加该扩展。

在屏幕的右边,点击 300 来查看你刚刚添加的分机。验证端口(port)选项被设置为 5060。点击 Submit 提交,然后点击那个红色的 Apply Config 按钮来保存所做的更改。

重复这个过程添加其它你需要的分机号,在这里我添加了 301 和 302 分机。

现在,我们需要配置 IP 电话。这个过程根据你的电话设备的型号而不同,在这里我们将使用 Dlink DPH-150SE 作为一个示例。最重要的设置是禁用 DHCP 选项,确认 SIP 电话端口号为 5060,还有注册的服务器是你的树莓派的 IP 地址。在后面的章节中,我们将通过 Proxy 选项来启用服务器注册。

对于 SIP Account 设置选项,我们需要输入之前通过 FreePBX 添加分机时使用的数据。Authentication User Name 就是之前添加的分机号码,而 Authentication Password 就是我们之前设定的那个密码(即ext300)。

虚拟电话配置

启动 Linphone 并在 Options 菜单中选择 Preferences。确认网络设置如下图所示。

在 Multimedia settings 选项中, 确认 Echo cancellation 被选上。在 Manage SIP Accounts 选项中输入你的显示名称。在我的例子中,虚拟电话的分机号为302, 所以用户名也为 302。由此而生成的 SIP 地址为 。单击 Add 按钮在 Asterisk 上注册该分机的帐号。

按照下图所示,输入你的 SIP identity 和 SIP Proxy address(即你的树莓派的 IP地址)。

然后你将被要求输入密码。对于302分机,我设定的密码是 ext302。单击确定,注册就完成了。

通过 FreePBX 和 Asterisk 可以实现各种服务,如会议室,IVR(交互式语音应答),呼叫组等,还可以通过普通的PSTN电话,SIP中继线或互联网进行呼入和呼出。

未来

VoIP和互联网通讯的发展正在推动统一通信系统融合成一个整体的系统和环境。 FreePBX 和 Asterisk 是一个非常好的例子,它演示了如何用很低的成本来实现复杂的通讯系统。

作者:树莓派杂志中文版

链接:https://www.jianshu.com/p/4789d030fee3

Pi-Micro:用树莓派ZeroW制作的掌上电脑

你有没有想过制作一台可以放在手掌上的电脑? 我就很想,所以我制造了这款被我称之为 Pi-Micro 的小型笔记本电脑。 这是 Pi-Micro 的第三版,制作了将近一年的时间,因为它足够精细了,所以来与大家分享。 Pi-Micro 可以运行完整的 Linux 操作系统。能够浏览网页、编辑文档、使用终端、创建自定义编程脚本以及玩游戏。

据我所知,它是使用 Raspberry Pi 制作的最小的电脑,它还拥有全键盘。 使用树莓派 Zero W 制作,内置 WiFi 和蓝牙。

Pi-Micro规格介绍:

512 MB RAM

1GHz处理器

内置WiFi和蓝牙

3.5″触摸屏

1000mAh锂离子内置电池

16GB内部存储

完整的QWERTY键盘 108mmX19.5mmX70mm

自制 Pi-Micro 的心路历程

(如果你想要干货,请直接跳过此部分。)

这款笔记本电脑已经打磨了一年多了,在这一年里,我经历了很多不同版本的设计和原型。我设计的前两款都比较重,并且两种旋转轴的重量都不适合屏幕/主板。

a.V1.0(黑色)我的第一版Pi-Micro是2017年5月6日制作的。它使用3D打印的旋转轴,它太松,不能够让屏幕自行站立。但它的键盘是内置在我喜欢的,但是非常厚实和笨重。箱子顶部和底部的边缘也不是圆形的,外壳非常的便宜。

b.V2.0(Blue)我的第二版Pi-Micro是2017年10月左右制作的。我试图用超小的黄铜做的旋转轴,修复这个问题,但它们还是太松了。在这个版本中,我为了让它看起来更漂亮,把所有的边缘都变成圆形,并通过在3D建模程序为树莓派制作接口,代替焊接的铁质接口。关于这个版本的一个独特的地方,就是旋转轴和键盘连接处可以随意上下拆卸。但是,我最终不喜欢它的外观,因为它看起来并不像笔记本电脑。

项目免责声明

最好的项目从来都不容易。为了这台掌上计算机,我花费了一年多的时间,经历了几个版本通过几个版本的改机才获得现在的成品。这个项目有许多困难的焊接/拆焊,以及对Linux和Raspberry Pi的基本了解。如果你自己受伤或其他任何事情,我不负任何责任。请始终佩戴适当的保护装置,不要连接红色和黑色电线,也绝对不要刺破电池。小心!

3D 打印外壳

模型文件可在本项目文件库下载。

http://make.quwj.com/project/44

打印参数设置如下:

长丝:ESUN PLA +

厚度:0.2MM

外壳:3

填充:80%

组件清单

树莓派 Zero W × 1

3.5 寸触屏显示器 × 1

3D 打印机 × 1

移动电源 × 1

迷你蓝牙键盘 × 1

Micro SD 卡 × 1

USB 插座 × 1

缝纫针 × 2

电线 × 1

螺丝 × 1

胶水 × 1

拆卸移动电源

拆卸的目的是获得薄型电池/充电器组合,电源开关,5v输出。

第1步,从机箱上卸下螺丝,然后从铝壳上拆下内部组件。

第2步,将电线从太阳能电池板切割到控制器板。

第3步,断开电池,然后把它与控制器板之间的两根3英寸长导线重新连接。

第4步,拆卸USB端口,并将焊线焊接到控制器板的正极和负极输出端。

准备屏幕组件

重要提示:此步骤基于Waveshare 3.5"显示器,如果你使用不同的显示器,请更换焊接电线的引脚以符合你的显示器规格。

更多详细信息查看文章下链接

1.拆除触摸屏上的外壳。就我个人而言,最简单的方法是使用冲洗刀具将其剪下,然后使用烙铁从电路板上单独移除引脚的下半部分。

2.焊接导线到引脚1,2,6,11,18,19,21,22,23,24和26。

3.标记所有电线,以便你分辨清楚,如图所示。

4.仔细检查标签。

5.在3D打印的显示部件中钻孔,以便它们可以组合在一起。

6.再次检查标签。相信我,它会省下很多挫折。

7.将屏幕放置在零件内部,并将其组合在一起。

将USB插座焊接到树莓派

我将USB接口安装在电脑的右下角。

1.首先使用钢丝钳剪下USB插孔两侧的小标签(不是四个引脚中的任何一个),因为不是利用它们将USB固定。

2.将四个引脚以90度角向下弯曲,让它们延伸出背面,但插口并没有伸出底部。

3.将线焊接到每个引脚上,确保它们足够长可以从外壳的一侧延伸到另一侧,如有必要,用热缩管将端口绝缘。提示:使用不同颜色的电线;它有助于分辨哪些是你要将它们连接到Pi。

4.使用上面的电路图,将导线焊接到Pi的焊盘。

将电池焊接到树莓派

1.焊接从电源5V输出Pi 5V引脚的红线。

2.将电源GND输出的黑线焊接到Pi GND引脚。

将屏幕焊接到树莓派

这一步非常的棘手,一定要小心。

1.请尽量缩短电线长度。如果你的电线太长,它们会堆积在底壳内,使其难以关闭。尝试测量每根导线需要的距离,并精确的切割它们,以便在显示器和下半部分布置时,底壳边缘与显示器边缘之间会有2CM的间隙。

2.将带标签的导线连接到Pi上的相应引脚。请一定确认好每根引线。

安装软件

你至少需要8GB大小的Micro SD卡,不过你选择使用的大小将决定Pi-Micro内部存储的容量。

这是一个重要的步骤,因为它也有助于确定屏幕和电池是否已连接正常。

1.将Micro SD格式化为FAT32。

2.在此处下载用于Waveshare显示器的预制系统镜像。

3.使用Etcher,将系统镜像写入到Micro SD上。

4.将卡插入Pi,打开电池然后静待佳音。

5.如果一切顺利进行,说明你的安装没错。如果有问题,请仔细检查所有焊点和接线。

6.将蓝牙键盘与Pi配对。这意味着稍后我们不必访问键盘上的配对按钮,并且每次启动时都会自动连接。

缩小键盘大小,并将其焊接到树莓派

对于Pi-Micro的键盘,我们将使用电池的迷你蓝牙键盘,然后将其焊接到Pi。

1.打开键盘外壳。我发现最简单的方法是弯曲键盘,直到盒子的顶部和底部之间出现裂缝,然后用平头螺丝刀将其撬开。

2.卸下微型USB充电端口。直接加热端口后面,用烙铁完成这一操作,当焊料熔化时,它很容易滑落。

3.拆除电池。

4.将两根电线焊接到电池用于连接的端口上。

5.打开它。 (当我们将它连接到Pi时,务必确保它会同时打开。)

6.将电池正极端子的电线焊接到Pi上的3.3V引脚

7.将电池负极端子上的导线焊接到Pi上的任何GND引脚。

组装所有组件

提示:这是最令人头疼的部分,各位趣友耐心点哦。对于旋转轴部分,我决定使用针作为转轴。如果安装的整个过程中,如有阻力,请勿强行挤压。把壳内的物品整理一下比生拉硬拽好的多。

1.确保一切尺寸合适。把所有组件放入壳内,把盖子放在下半部分,并确保它是齐平的。如果不能,请微调一下。

2.用热胶来固定一切(除了电池,它有可能爆炸)。这样就可以确保当你摇动完成的计算机时不会有任何移位,并且在尝试使用USB和充电端口时不会将其推入计算机。

3.现在所有东西都是安全的,把盖子放在下半部分,用螺丝来固定它。你可能需要预先钻孔,因为可以使用的螺钉厚度不同,所以我没有将这些孔放入设计中。

4.将显示器放在下半部分。确保它可以安装在底部旋转轴上,并且可以旋转。

5.安装针。我建议使用最大直径的针头,由于旋转轴会变硬,你也许需要用一块木头的尖端或其他东西来推动它们。

6.如果需要,请使用烙铁将针头两端的塑料熔化,以免滑出。

7.如有需要,绕过下半部分的底部和盖子的边缘,并使用烙铁焊接任何有间隙的地方。

DONE!完成啦!希望趣友们喜欢这个项目!

via

改造桌子,让 Google Home 用上 “实体专辑”

现在谁还在收集实体专辑的,请举举手。

相信,还在买 CD 或者黑胶的用户其实还有不少。

爱范儿在之前谈黑胶的时候就已经提到,现在有不少年轻用户还会追黑胶唱片。他们的着眼点并不在体验传统的味道上,而是觉得收集黑胶或者其他实体专辑是一种支持歌手出唱片或提升“仪式感”的行为。

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

确实,现在要听个实体专辑确实也不容易。黑胶的话经不起折腾,听 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 上。你可以在这个主页上查到它用过的设备和代码,自己做一套相同的出来。

(Hoveeman 整套方案的内容物)

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

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

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

转自 ifanr

Google 升级AIY套装:可DIY智能音箱和摄像头

对于普通消费者来说,在智能家电产品上往往会选择成品;但对于拥有娴熟技能或者充足动手能力的人来说,往往希望能够根据自己的需求来定制DIY出想要的产品。搜索巨头Google本月在Target商城上架了AIY最新套件,可以打造处类似于Google Home的智能音箱和能够识别面部和手势的智能摄像头。

2017年年初,Google正式发布了AIY项目(Artificial Intelligence Yourself),目的是鼓励开发者们和爱动手的技术发烧友自己在家搭建AI小硬件,让更多人能学习、探索并体验人工智能。

今天在Target上架的两个新套件分别为AIY Voice和AIY Vision。Google希望通过这两款套件,帮助社区开发者能够让智能音箱和智能摄像头变得更加智能。在本周一的官方博文中宣布了升级版套装,也表达了帮助提高学生计算机科学技能的兴趣。

两款套装中都包含了树莓派的单板计算机(Raspberry Pi Zero WH),而且AIY Vision套装还包含树莓派的摄像头。此外Google还发布了配套的APP以便于更好的组合和配置数码设备,用户也可以前往Google的AIY网站下载相关的文档。

AIY Vision 零售价为89.99美元。

via