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程序。通过对开发板内的相关数据做分析。自动去控制家里的一些家电。做一个称职的家庭智能管家~~
- DragonBoard 410c开发套件试用上手报告-搭建一个家庭智能管家的大脑
- 基于Dragonboard 410c设计的智能管家
- 基于Dragonboard 410c的家庭共享云服务搭建
- 利用dragonboard 410c开发版快速搭建你的智能安全监控摄像头
- 基于Dragonboard 410c的家庭智能环保卫士——(2)方案设计
- 基于Dragonboard 410c的家庭智能环保卫士——(3)室内路径规划
- 基于DragonBoard 410c的家庭智能环保卫士——(8)室内栅格定位
- 基于DragonBoard 410c的家庭智能环保卫士——(9)数据库设计
- 基于DragonBoard 410c的家庭智能环保卫士——(12)环境数据融合
- 基于DragonBoard 410c的家庭智能环保卫士——(13)融合多数据处理的运动控制
- 基于DragonBoard 410c的家庭智能环保卫士——(4)A*路径搜索算法
- 基于DragonBoard 410c的家庭智能环保卫士——(5)获取kobuki位置信息
- 基于DragonBoard 410c的家庭智能环保卫士——(6)kobuki位置信息传输及显示
- 基于DragonBoard 410c的家庭智能环保卫士——(7)室内栅格地图位置更新
- 基于DragonBoard 410c的家庭智能环保卫士——(10)数据库python代码实现
- 基于DragonBoard 410c的家庭智能环保卫士——(11)室内栅格地图位置更新Python实现
- 基于Dragonboard 410c的智能开关
- Qualcomm DragonBoard 410c开发板试用活动开箱照片
- 菜鸟学习历程【6】关键字、指针
- bigdata-12
- bigdata-13
- bigdata-14
- bigdata-15
- DragonBoard 410c开发套件试用上手报告-搭建一个家庭智能管家的大脑
- bigdata-16
- bigdata-17
- 对象数组,集合,ArrayList,LinkedList,TreeSet,
- 42. Trapping Rain Water
- bigdata-18
- bigdata-19
- Maven setting.xml
- bigdata-20