DragonBoard 410c开发套件试用上手报告-搭建一个家庭智能管家的大脑

来源:互联网 发布:saas软件服务协议 编辑:程序博客网 时间:2024/04/30 13:16

DragonBoard 410c开发套件试用上手报告-搭建一个家庭智能管家的大脑

很荣幸参与创意我的无限智能应用 DragonBoard 410c开发套件免费试用有奖活动,感谢主办方的厚爱。

板子邮寄过来之后第一眼看。跟树莓派的大小差不多。相比我手头的树莓派2,内存同样为1G,DragonBoard 410c的cpu性能更高一些,联网功能上多了wifi+蓝牙。并且自带emmc的储存芯片。

我的设想是通过开发板,搭建出一个能够监控家庭各项数据进行汇总,并能够远程来控制家里的一些家电。

由于工作缘故,拿到板子后没有太多时间进行折腾。前后刷了三次系统,一次Android,两次linux。最终决定使用linux来作为家庭智能中控的管理系统。不过因为外设配件没有齐全,很多设想没办法实现,不过我们可以假装我们的DragonBoard 410c板子已经连接好摄像头、红外感应、红外控制器等等一系列传感器。文章的最后,我会介绍一下如果传感器都用上了能做出什么样的功能。O(∩_∩)O哈哈~

我将通过以下几个步骤分享一下我的折腾过程:

  • 系统安装运行
  • frp实现外网连接设备
  • 日常环境搭建
  • 设想篇:如果有传感器家庭智能管家能做到什么程度

下面我们就开始吧~


系统安装运行

拿到板子之后,我们需要做的第一件事情就是给它安装系统,系统就是安装到emmc的储存芯片上。我们可以通过将系统烧录到sd卡来进行安装。也可以直接配置好adb环境。将开发板用普通Android usb线与电脑进行连接,通过fastboot的方式进行刷机。动手能力强的朋友也可以自己编译系统来。

系统的镜像我们可以从这个站点获得:96boards

sd卡烧录方式

如果你是选择直接烧录到sd卡。可以下载一下几个镜像:

  • Android: dragonboard410c_sdcard_install_android-118.zip
  • Linux-带界面dragonboard410c_sdcard_install_debian-283.zip
  • linux-纯命令行dragonboard410c_sdcard_developer_debian-283.zip

如果你喜欢ubuntu,可以根据命名规律找到对应文件夹下的镜像文件下载。

下载好镜像之后,在win上我是通过Win32DiskImager来烧录到sd卡。具体安装包自行搜索。
烧录好sd卡之后我们将sd卡放入开发板,连接上HDMI、usb鼠标键盘。同时将板子背面四个开关的位置,调到0110的位置,0为开关靠近板子边缘,1为开关靠近板子内侧。调整好开关之后。插入电源。系统就会启动进入到安装的界面。在这个界面直接点击install之后就会自动安装。安装完成后。记得把开关调回到0000的位置。再开机。系统就已经安装完成可以正常进行使用。默认的账号密码都是linaro,进入之后需要切换到root权限。输入sudo -i即可。

fastboot刷写方式

如果你手头没有sd卡,并且电脑上有adb环境的话,我们可以选择用线刷的方式来刷入系统。线刷分为几个步骤:

  • 烧写bootloader
  • 烧写boot 镜像
  • 烧写root镜像

完整的步骤参考了这位仁兄的博客初识DragonBoard 410c

这里面需要主要的是,镜像的下载我们需要根据命名去区分好。不要下载错。debian跟ubuntu都有分带界面跟不带界面两种。名字里面含有devloper的都是不带界面的。如果自己不会通过命令去连接wifi之类的。建议刷带界面的。

frp实现外网连接设备

安装完系统后,我们日常把板子放着,就可以通过内网ip进行访问。但是,仅仅是内网访问,对于一个管家来说肯定是不够的,一个称职的管家,需要做到我们在外头也能够了解家里的各项数据。并且可以通过手机或者网页等方式,来远程控制管家进行一些操作。

通过外网访问局域网内的设备,一般有几种方式:

  • 开通静态ip
    跟网络运营商投诉,要求提供外网可访问的ip。这个不是很现实,现在很多运营商会将整个小区组成一个局域网,单独分配ip给你的可能性太低

  • 数据中转
    通过自己开发各种数据接口,由开发板传输给一台服务器,通过服务器进行中转。费时费力,适合喜欢折腾的朋友

  • 端口映射
    通过花生壳等第三方,在路由器上实现端口映射。这个方案的缺点是要钱。并且带宽跟流量都有限制。不过在查找这类方案的时候发现一个开源免费,并且效果十分好的东西:frp

frp需要的唯一条件就是自己有个外网可访问的服务器,我们在服务器上部署frpserver。本地通过frpclient与服务器连接,并约定好常用的一些端口规则,即可通过访问服务器固定端口,转向内网开发板对应规则的端口的效果。

安装frp服务器端

我们通过在服务器使用wget命令下载frp,版本可以自己从这里根据自己的服务器类型选择。我是centos 64位,因此选择frp_0.13.0_linux_amd64.tar.gz。

wget https://github.com/fatedier/frp/releases/download/v0.13.0/frp_0.13.0_linux_amd64.tar.gz

ps:如果服务器访问github有难度。建议梯子下载到本地。再用ftp工具上传。

下载完成后,解压 tar -zxvf frp_0.13.0_linux_amd64.tar.gz 得到frp文件夹。

进入frp文件夹: cd frp_0.13.0_linux_amd64 可以看到几个文件:

frpc :客户端运行文件frpc.ini:客户端配置文件frpc_full.ini:客户端完整配置文件,涵盖所有配置方式,可参考frps:服务端运行文件frps.ini:服务端配置文件frps_full.ini:服务端完整配置文件,涵盖所有配置方式,可参考

在服务端跟客户端,我们可以分别删除另一端的文件。只留下有用的。
使用vi命令编辑frps.ini文件 vi frps.ini 编辑以下内容

[common]bind_port = 7000vhost_http_port = 8080 [ssh_410c]listen_port = 3838[web_410c]type = httplisten_port = 80custom_domains = 410c.daguye.com

其中:
bind_port:绑定端口,客户端必须同样配置这个端口
ssh_410c:约定标签,通过标签区分多个设备配置
listen_port:监听的端口,外网访问服务器此端口时,转发给对应设备

配置完成后,建议以screen或者常驻进程方式去运行,在这里我用的事screen。如果系统没有安装,可以先用如下命令:
sudo apt-get install screen
接着,创建一个screen会话:screen -dmS myfrp,并进入此会话:screen -r myfrp,这里的frp设置为自己记得住的名字即可。方便下次修改配置之后直接进来重新启动。在会话中,先进入到frp所在目录。执行一下语句:./frps -c ./frps.ini &这里的-c指的是使用后面的frps.ini配置文件。 &表示持续执行此命令。不会因为ssh窗口关闭而关闭。

410c板子配置frp客户端

在开发板上同样通过wget命令下载,410c的cpu是arm指令集,因此选择frp_0.13.0_linux_arm.tar.gz。
下载完成,依然是解压。删除服务器版frps相关文件,使用vi命令编辑frpc.ini文件:

[comm]server_addr=35.201.196.***server_port = 7000[ssh_410c]type = tcplocal_ip=127.0.0.1local_port = 22remote_port = 3838[web_410c]type = httplocal_port  = 80remote_port = 80custom_domains = 410c.daguye.com

在这里,comm部分是跟服务器的统一配置,指定需要连接到哪一个远程服务器server_addr,服务器监听的端口是多少server_port,后面的标签则分别是服务器与客户端约定的一些标签,ssh_410c 的内容表示通过转接tcp 3838端口的传输,访问服务器的3838端口即可自动转发到开发板的22端口,也就能实现我们的ssh。web_410c 则是约定通过80端口使用指定的410c.daguye.com 访问服务器时,自动转发到开发板的80端口上。在开发板我们安装好lnmp等php环境,并做好域名绑定。就可以通过外网,直接访问到开发板上的web服务。

配置完成后,我们一样通过安装screen,创建screen会话来运行frp客户端。这里的命令就变成了:./frpc -c ./frpc.ini &
运行成功之后。我们就可以在非局域网环境。通过外网ip+端口来远程ssh到开发板。

日常环境搭建

在ssh连接到410c开发板之后,建议第一时间切换到root用户:sudo -i。在root权限下。我们可以实现任何我们想要做的事情。这里,简单介绍几个常见的环境搭建。

  • lnmp环境
  • svn环境

lnmp环境

我个人习惯用php来写一些服务给外网访问。后续在接入传感器等内容之后。可以通过python获取到传感器的相关数据。储存到mysql数据库当中,并且通过php网页展示数据给外界查看。甚至是开放一些控制性的功能,由php网页来调用python脚本去实现。因为就需要用到lnmp环境。这里推荐两个比较流行的一键脚本:
1.https://lnmp.org/install.html
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
2.OneinStack

apt-get -y install wget screen curl pythonwget http://aliyun-oss.linuxeye.com/oneinstack-full.tar.gztar xzf oneinstack-full.tar.gzcd oneinstackscreen -S oneinstack./install.sh 

以上两个脚本基本都是傻瓜式配置,根据步骤配置好相关参数即可。
有能力的同学也可以自己一步步搭建。
搭建完成,我们只需要上传代码到开发板。配置好域名解析。并且按照规则。配置好开发板以及服务器上的配置项,就可以通过域名的方式直接访问到开发板上的web服务。

svn服务器

由于日常自己开发的一些程序,在公司以及家里的电脑不定期都会更新一些内容,因此配置一个svn或者git服务器会更方便一些。不过gitlab相对配置要求要高一些。没有双核2g以上还是不要搭建git为好。这里我就选择了svn环境。svn服务的安装很简单,一句话:sudo apt-get install subversion 等待进度走完即可。
安装完成后。我们可以通过subversion -v 来判断是否安装成功。接着。我们可以创建一个目录。mkdir svn ,然后进入到svn目录。执行svnadmin create xxx 来创建我们的svn仓库。执行完就可以看到相关的文件生成。进入到conf目录。进行账号密码权限等配置。接着在frp的客户端服务端配置同样设置相关的端口转发就可以访问svn,来管理我们日常的一些代码啦~

设想篇:家庭智能管家能够做到哪些事情

通过前面几个步骤,我们知道了410c完全可以当一个强有力的linux服务器使用,并且这个服务器还能够利用外部感应器设备,获取家里的一些数据信息。

以此来扩展。我们可以约定扩展出更多的辅助服务,例如通过配件搭建视频流服务器实现实时家庭监控等等。或者搭建一个远程下载服务器,远程访问开发板让开发板预先帮我们下载好想看的高清资源。回家直接链接到开发板在线播放。

这里我们按照类别梳理一下:

  • 在没有传感器的情况下,我们可以用开发板搭建一个媒体服务器。通过安装samba等媒体服务,日常在外时远程控制开发板预先去下载视频等大文件。回到家通过手机,机顶盒等设备就可以直接在线观看高清视频。
  • 智能管家的眼耳鼻:通过外接传感器设备,采集家庭中的温度、湿度、视频、音频等数据。能够让我们实时了解到家里的一切状况。
  • 智能管家的手脚:我们可以通过给门窗、电器增加一些通用协议的wifi控制插座,电机等等,实现由开发板去控制家里的家电,门窗。
  • 未来的未来。在开发板的性能越来越强大之后,我们还可以搭建一些简易的AI程序。通过对开发板内的相关数据做分析。自动去控制家里的一些家电。做一个称职的家庭智能管家~~
阅读全文
1 0
原创粉丝点击