不想错过我的推送,记得右上角-查看公众号-设为星标,摘下星星送给我
去年,第5季back2school,稚晖君分享他的实验室时,有多少人注意到他称之为神器的NAS?
back2school第6季的实战项目,我们就来做一个NAS,还会同步做一个智能家居远程控制系统,这是本季实战技能课程之后的,技能提升延续。
本季Back2School的福利,还有不知道的吗?N重福利等你来领,传送门:树莓派5/SenseCap Kit/6G宝藏资料,3重福利,这回该轮到你了吧!
11月2日(周六)下午13:00-16:00,第六季Back2School结业课,即将在武汉光谷凯悦酒店举行。与妮mo姐,大咖嘉宾面对面的机会不要错过哦,还有各种福利来就送,报名已开启,快来站位吧。
识别二维码,立刻报名
本期完成的NAS和智能家居远程控制系统使用的硬件包含这些:
1)树莓派5,采用运行频率为2.4GHz的64位四核Arm Cortex-A76处理器,与树莓派4相比,CPU性能提高了2至3倍。并且,首次公开单通道PCI Express 2.0接口,为高带宽外设提供支持,可以使用M.2接口的固态硬盘,这下可以把系统或者应用直接部署在固态硬盘了。
2)Argon NEO 5 NVME的外壳,外壳自带PCI的转接板。
3)固态硬盘,这里我给树莓派5安装了一条500G固态硬盘,作为NAS的数据盘,其实由于树莓派5还是千兆网络,也可以直接外挂USB硬盘盒。
4)ESP32-C3-DEVKITC-02U,搭载的是ESP32-C3-WROOM模组。
5)拓展板,上面连接了一个DHT11模块,DHT11的数据口与ESP32-C3-WROOM模组的GPIO4连接。
6)4路继电器控制板,也是使用ESP32-C3-WROOM模组设计的,这块板卡我们只用到了4路继电器,通过原理图我们可以看到这板载的4路继电器分别有GPIO4-GPIO7控制。
7)Seeed STUDIO XIAO ESP32S3 SENSE板卡,使用ESP32S3设计的板卡,上面带了一个OV2640的相机,可以使用它做局域网监控。
以上这些硬件,就组成了这两个项目。
首先是NAS功能,有人可能会说,现在各种云盘非常丰富,为什么还要去自己搭建呢?云存储对于我们个人来讲,一个是隐私问题,一个是安全问题,例如在前面某厂的服务器机房起火,导致用户的数据丢失和数据泄露,而我们存储在自己搭建的NAS,做好防护和备份就基本没这种问题。还有就是在家庭或工作室这种多用户访问的场景,NAS也是非常合适的。
然后智能家居控制系统,从硬件角度来说,ESP32和树莓派,是在学习和工作过程中,一定会接触到的。ESP32是一款高性能的单片机,其 WIFI功能,更是让它出现在很多项目中,而且它的生态也是越来越好,可以说ESP32是电子专业学习必会的一款MCU。在这个项目,我们将会讲解使用ESPHOME环境+ESP32搭建智能家居控制系统,即使小白也能快速入手。而项目中使用的树莓派,想要提升嵌入式开发技能,从单片机开发进阶linux开发,树莓派更是首选。
首先要部署Home Assistant,Home Assistant(简称HA)是一个基于Python 3开发的开源家庭自动化平台,旨在通过单一、适配移动设备的界面来跟踪和控制家庭中的所有设备,实现自动化控制。Home Assistant的版本我们选择的是Home Assistant supervised版本。
搭建第一步还是装系统,这里使用Raspberry pi os lite(64-bit)系统,系统安装完成后,把系统卡插入到树莓派5B,然后连接好网线和电源启动,在路由器终端界面等待树莓派5上线,通过MobaXterm远程连接工具进入系统。
第二步更新系统软件源。
第三步,更新完成就是部署Home Assistant,具体的部署方法也比较简单的,根据这里的文档执行命令就好,到最后一步,会弹出一个设备选择框,根据提示选择树莓派5(https://github.com/home-assistant/supervised-installer)
第四步,在浏览器输入树莓派的IP加8123端口就进入Home Assistant,进入以后首先需要创建用户和配置地址,完成后就进入了仪表盘,到此,Home Assistant就按照部署完成了。
第五步,挂载固态硬盘。既然是将树莓派5作为服务器去用,当然就需要安装一款服务器运维面板的,在安装服务器运维面板前,需要挂载一下固态硬盘,使用命令行查看一下当前挂载的存储,没有发现固态,然后使用“lspci”命令,可以看到固态是识别到的,然后使用“lsblk”命令查看所有磁盘,可以看到nvme0n1p1,然后使用分区挂载命令,将固态挂载到“/home/pi/ssd”目录,然后,还需要配置一下系统启动自动挂载分区的文件,这样每次开机就不需要再去手动挂载磁盘。
第六步,安装服务器运维面板。常用的服务器运维面板有宝塔和1Panel,目前宝塔对树莓派支持不是很好,这里选择的是1Panel,1Panel 是一个现代化、开源的 Linux 服务器运维管理面板,安装也非常方便,我们只需要复制一键安装命令,在目标主机执行即可。在安装过程中,我们需要配置用户名、密码、登录端口以及安全入口,这里随自己喜好定义,也可以全程默认安装。安装完成后,它会将我们的配置打印出来,我们需要把面板登录信息保存下来。
然后,在浏览器的地址栏输入刚刚的面板管理地址,然后登录进来就是面板的概览信息啦。看到这里显示树莓派5的一些硬件负载监控,同时,500G的固态也正常挂载了,在这个面板里提供了非常多的开源软件,有数据库、Web服务、实用工具等,我们NAS的功能就是使用SFTPGo软件实现的。
在应用商店找到SFTPGo软件,点击安装,安装完成以后,使用IP地址加8080端口就进入了SFTPGo的Web管理面板。首先需要创建管理员用户,创建完成以后,就进入到管理界面了,由于SFTPGo是通过Docker安装的,我们需要在Docker里挂载我们的固态,这里只需要编辑一下配置文件即可。然后重启SFTPGo,再次登录到SFTPGo的Web管理面板,在virtual folders里创建挂载卷,挂载卷创建成功后,还需要创建我们的访问用户,这里创建了一个名字为“pi”的用户,然后将刚刚创建的挂载卷添加到pi用户的“virtual folders”配置选项,共享名为“ssd”,完成后进行登录测试,切换登录到WebClient,输入我们的刚刚创建的“pi”用户,即可进入在线文件访问,进入后就看到了ssd的一个文件夹,在这里就可以下载和上传文件。
第七步,将NAS挂载到PC端。可以通过RaiDrive将共享的文件映射到windows的网络驱动器,打开RaiDrive软件,在NAS菜单栏里,选择SFTP,然后在地址栏输入树莓派的IP和端口,端口我们使用的是2022端口,然后在用户名和密码那里,输入我们创建的“pi”用户信息。点击连接即可将NAS挂载到我们的PC上,我们测试一下速度,通过测试,上传和下载的速度都达到了110MB/S, 基本跑满了千兆网口。
到此我们的本地NAS就搭建完成了。
最后怎样才能实现类似于商业网盘一样的公网访问呢?这就需要使用内网穿透工具,这里我使用FrpS+FrpC实现内网穿透功能,在云服务器上配置FrpS,开启5000-5100端口,然后在树莓派上配置FrpC,把SFTPGo使用的2022端口穿透至云服务器的5002端口,配置完成以后,在RaiDrive软件里,将地址跟换为云服务器的地址,端口填5002端口,完成后点击确定即可连接到,我们测试一下下载速度,这会的下载速度只有5MB/s左右,这是因为我的云服务器的带宽就这么大,嫌慢可以购买更大带宽,到此,我们就实现了NAS功能的本地访问和公网访问。
全部节点添加完成后,我们还可以根据自己的喜好配置仪表盘,这是重新配置的仪表盘。
到这一步,我们虽然已经完成了基本在局域网内控制,但是无法再公网控制,这就需要再做一步内网穿透,我们在前面的Frpc的配置文件里添加一组端口,将Home Assistant的8123端口穿透至云服务器的5003端口,我们在浏览器输入我们云服务器地址加5003端口即可访问我们的设备了,还可以使用手机访问,这样我们只要在有网络的地方,都可以访问家里的设备了,真正做到了智能家居私有服务。
本期介绍了2个项目,既有单片机ESP32相关的硬件控制,又有树莓派Linux开发,还有服务器的搭建与使用。既适合刚入门的电子小白,又适合想要做一些实用项目的工程师。当然,不管是ESP32还是树莓派,还有更多的玩法,希望通过本季back2school系列视频的学习,大家都能在大学期间学好技能,并利用这些技能创造出更多好玩有创意更有实际意义的项目。
Back2School “梦想金”
第六季Back2School:
(https://www.bilibili.com/video/BV1vK48evEF6/)
第五期:25分钟详解电源设计怎么做,小白秒懂(含设计实例/关键指标/应用场景)
第六期:PCB知识技能/学习方法/Layout案例分享,1小时保姆级教
Back2School往期内容: