转回到Edison上开发

来源:互联网 发布:淘宝好用的生活用品 编辑:程序博客网 时间:2024/05/16 10:36

想再Edison Arduino板上继续开发。有一个网络文章,复习一下,非常好。链接在右侧: 链接。其中提到了Intel的中文在线文档。


初步设想:安装一个postgresql客户端,向BCC上的PostgreSQL数据库写温度值。以为这么做(Edison上使用PostgreSQL)的人几乎没有,结果搜索了一下,还真有!而且也是在今年(2016),一个叫Arun的哥们(因该是个哥们吧),链接。不过他是在Ubilinux (based on Debian)里面使用PostgreSQL 数据库,而不是命令行客户端。


Edison 板子的软件版本如下:


Linux davidqi 3.10.17-poky-edison+ #1 SMP PREEMPT Fri Jun 19 12:06:40 CEST 2015 i686 GNU/Linux


怎么把postgresql客户端安装上去呢?


(1)从PostgreSQL源码编译


1.1 首先是下载源码到Edison上面去,本来想用FileZilla,结果发现连不上(后来发现可能是因为端口22没有填写的缘故,FileZilla是使用SSH协议的,在Edsion板子里面自己就有)。可能没有FTP协议在Edison上面,于是用Opkg安装了一个,还是不行。

1.2 于是该用wget. 把源码包上传到百度云,得到一个公开的链接,还是不行。

1.3 于是直接用wget去PostgreSQL官网的下载页面,找到了BCC上相同版本8.4.20的源码的链接。用wget直接就下载了。

1.4 解压,使用tar   -jxvf   postgresql-8.4.20.tar.bz2

1.5 转到解开的目录下面/home/root/postgresql-8.4.20

1.6 用./configure验证和生成makefile,顺利

1.7 用“make && make install”编译和安装。这个过程花了约20分钟时间,产生大量的各类信息,一度以为不能正确编译。不过最终还是成功了!出现了“PostgreSQL installation complete”的字样,截图如下。


1.8 运行./psql可以正常运行!好开心!

1.9 运行向BCC的数据库增加记录的命令行,也完全正确。

1.10 添加了一个add_value.sh的文件,将向BCC的数据库增加记录的命令行写入进去固化好。

-------------20160716周六,继续-------------------

1.11 使用export PATH=/usr/local/pgsql/bin:$PATH 将PostgreSQL的目录加入$PATH

1.12 使用opkg list列出所有的包,太多了,看不过来

1.13 使用opkg list | grep crond  列出和crontab相关的包,查一下名称。输出如下:

 standard UNIX daemon crond that runs specified   programs at scheduled

 contains the standard UNIX daemon crond that runs specified   programs at

 Cronie contains the standard UNIX daemon crond that runs specified

 Cronie contains the standard UNIX daemon crond that runs specified

1.14 使用opkg install cronies安装了crontab相关的功能(cronie - 1.4.11-r0

1.15 使用opkg list-installed | grep  cron查看安装了crontab相关的功能

1.16 使用crontab -e增加“35 * * * * /home/davidqi/add_value.sh”,使用绝对地址。可以正常工作了。

1.17 一度想用service crond start 来启动服务,没有service脚本。于是作罢。但是查了BCC上的PostgreSQL,插入记录是按照crontab来的。

-------------20160716周六晚上,继续-------------------

1.18 连接温度传感器、LCD显示器和LED灯到Arduino板子上,使用Arduino软件来运行测试一下。正常。

1.19 转换到Linux中,使用如下语句设置A0为模拟量输入。为什么要这么设置,参见《Intel Edison智能硬件开发指南 - 基于Yocto Project》(陈士凯、程晨、臧海波等著,人民邮电出版社,2015年5月第一版)里面的page57-page59.

oot@davidqi:~# echo 200 > /sys/class/gpio/export

root@davidqi:~# echo 232 > /sys/class/gpio/export

root@davidqi:~# echo 208 > /sys/class/gpio/export

root@davidqi:~# echo 214 > /sys/class/gpio/export

root@davidqi:~# echo low > /sys/class/gpio/gpio214/direction

root@davidqi:~# echo high > /sys/class/gpio/gpio200/direction

root@davidqi:~# echo low > /sys/class/gpio/gpio232/direction

root@davidqi:~# echo in > /sys/class/gpio/gpio208/direction

root@davidqi:~# echo high > /sys/class/gpio/gpio214/direction

1.20 然后就可以读取温度的原始数值了。如下:(第一次读的总是偏离比较大,原因待查,所以要丢掉。)

root@davidqi:~# cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw

1883

root@davidqi:~# cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw

2217

root@davidqi:~# cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw

2216

1.21 将温度数值写到BCC的PostgreSQL数据库中,在add_value.sh里面先加上3行(为什么同样的采三次,因为第一次的数值不准。):

sensorvalue=`cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw`

sensorvalue=`cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw`

sensorvalue=`cat /sys/bus/iio/devices/iio:device1/in_voltage0_raw`

然后将原有的$RANDOM换成$sensorvalue. 具体语句见mknote里面的记录。

1.22 为什么原始温度读取数值是2216左右,待分析。

1.23 接下来要做的事情:固化温度检测的初始化过程,增强鲁棒性。同时在连接Arduino的LCD显示器上显示温度值。校准温度检测。



(2)把Edsion系统刷成Ubilinux (based on Debian),然后就可以使用Debian的包安装程序 ------------------- (不尝试了。20160720) 

(3)Opkg? (*1)------------------------------------------------------------------------------------------------------------------ (不尝试了。20160720) 


Intel的一个例子,如右:链接

===================================================================

(*1) Opkg 是一个轻量快速的套件管理系统,目前已成为 Opensource 界嵌入式系统标准。常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载。







0 0
原创粉丝点击