本帖最后由 xukejing 于 2017-12-26 18:43 编辑
大家好,我是MC老徐,大家的老朋友。当然,今天要介绍的主角依然不是我。
今天带给大家的技术是——怎样给家里的IOT设备搞个数据库服务。
NanoPi NEO Plus2的配置很高,1G DDR3,千兆网络,所以,在上面跑个mysql也是可以的,前提是别在上面跑大型论坛的数据服务。
我计划用c语言写个基于udp的用于家庭物联网的数据库服务器。
大家都知道,写数据库服务程序的时候,大部分时间会用在写数据协议上,要管理内存、硬盘,还要做数据加密和解码,相当麻烦的。
老徐这坑货是万万不可能花大力气去做那么费力的事情的,二次开发源代码编译mysql这种费劲的事情也是绝对不会去干的,所以利用mysql的API接口来减轻工作量,于是有了下面这样的框架。
如上图,NanoPiNEOPlus使用局域网与各种IOT设备连接。两台上位机计算机可以用于监视mysql数据库里的数据连接NanoPiNEOPlus上的MySQL服务,这样就可以实现数据库的查看和备份了。其中,NanoPiNEOPlus上的MySQL和windows平台上的mysql客户端都不需要我写,都是现成的。唯一要写代码的,只有上图中绿色的那个程序。
为了让笔记本和台式机能访问NanoPiNEOPlus上的MySQL,我们需要开个支持局域网访问的MySQL服务。下面介绍一下过程。
首先,安装MySQL服务。C语言接口库会在后续工作中用到,所以也一起装了。
在mysql命令里,建个用户apache,开启所有权限,并且支持远程登录
然后把地址绑定注释掉,文件名和修改位置如下图
好了,现在可以远程登录了。Windows端的图形化的mysql客户端很多,我给大家推荐个HeidiSQL。我们来新建个会话,如下图。
新建个数据库,叫home_iot,这个库里可以放各种数据表。
举个例子,我们新建个表,叫face_detec,这个表里可以存人脸定位模块的数据。
建立几个数据名,x,y,z,t,表示检测到的人脸三维坐标和测量时间。
做个数据库写入测试吧,写一组数据进去试试,应该没什么问题的。
好了,MysSQL部分的设置就介绍完了
这一篇里,数据是手动录入的,大家肯定更想看怎么用程序自动录入。
所以,下一篇,我们来使用一下MySQL的C语言库。
注意:以下几点,区别于正经的linux机器:
嵌入式设备,由于性能的关系,都是不装防火墙的,所以以上设置中,我不需要在NanoPiNEOPlus上开启TCP 3306端口。
也因为NanoPiNEOPlus没有防火墙,为了防止有人连上你家WIFI然后搞破坏,建议给路由器设置MAC绑定。
本帖最后由 xukejing 于 2017-12-26 18:43 编辑
大家好,我是MC老徐,大家的老朋友。当然,今天要介绍的主角依然不是我。
今天带给大家的技术是——怎样给家里的IOT设备搞个数据库服务。
NanoPi NEO Plus2的配置很高,1G DDR3,千兆网络,所以,在上面跑个mysql也是可以的,前提是别在上面跑大型论坛的数据服务。
我计划用c语言写个基于udp的用于家庭物联网的数据库服务器。
大家都知道,写数据库服务程序的时候,大部分时间会用在写数据协议上,要管理内存、硬盘,还要做数据加密和解码,相当麻烦的。
老徐这坑货是万万不可能花大力气去做那么费力的事情的,二次开发源代码编译mysql这种费劲的事情也是绝对不会去干的,所以利用mysql的API接口来减轻工作量,于是有了下面这样的框架。
如上图,NanoPiNEOPlus使用局域网与各种IOT设备连接。两台上位机计算机可以用于监视mysql数据库里的数据连接NanoPiNEOPlus上的MySQL服务,这样就可以实现数据库的查看和备份了。其中,NanoPiNEOPlus上的MySQL和windows平台上的mysql客户端都不需要我写,都是现成的。唯一要写代码的,只有上图中绿色的那个程序。
为了让笔记本和台式机能访问NanoPiNEOPlus上的MySQL,我们需要开个支持局域网访问的MySQL服务。下面介绍一下过程。
首先,安装MySQL服务。C语言接口库会在后续工作中用到,所以也一起装了。
在mysql命令里,建个用户apache,开启所有权限,并且支持远程登录
然后把地址绑定注释掉,文件名和修改位置如下图
好了,现在可以远程登录了。Windows端的图形化的mysql客户端很多,我给大家推荐个HeidiSQL。我们来新建个会话,如下图。
新建个数据库,叫home_iot,这个库里可以放各种数据表。
举个例子,我们新建个表,叫face_detec,这个表里可以存人脸定位模块的数据。
建立几个数据名,x,y,z,t,表示检测到的人脸三维坐标和测量时间。
做个数据库写入测试吧,写一组数据进去试试,应该没什么问题的。
好了,MysSQL部分的设置就介绍完了
这一篇里,数据是手动录入的,大家肯定更想看怎么用程序自动录入。
所以,下一篇,我们来使用一下MySQL的C语言库。
注意:以下几点,区别于正经的linux机器:
嵌入式设备,由于性能的关系,都是不装防火墙的,所以以上设置中,我不需要在NanoPiNEOPlus上开启TCP 3306端口。
也因为NanoPiNEOPlus没有防火墙,为了防止有人连上你家WIFI然后搞破坏,建议给路由器设置MAC绑定。