本文介绍如何在树莓派中利用sqlite数据库保存cpu温度数据。sqlite是一款轻量级零配置数据库,非常适合在树莓派和其他嵌入式系统中使用。sqlite文档详细资料丰富,本文不会详细解释sqlite数据库操作的方方面面,只能结合具体场景按需说明。本文介绍的sqlite技巧也可以在其他平台使用,并不局限于树莓派。
本文继续折腾树莓派温度,希望从中可以玩出新花样。
【相关博文】
【
树莓派学习笔记——索引博文】——更多博文请关注。
PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE temps( name TEXT DEFAULT 'RPi.cpu',tdatetime DATETIME DEFAULT (datetime('Now','localtime')),temperature NUMERIC NOT NULL ); INSERT INTO temps VALUES('RPi.cpu',datetime('Now','localtime','-3 hours'),40.1); INSERT INTO temps(name,tdatetime,temperature) VALUES('RPi.cpu','-2 hours'),40.2); INSERT INTO temps(tdatetime,temperature) VALUES(datetime('Now','-1 hours'),40.3); INSERT INTO temps(temperature) VALUES(40.4); COMMIT;
【1】创建表,表中包括3个字段,分别为name,tdatetime和temperature。
INSERT INTO temps(temperature) VALUES(40.4);
#!/bin/sh@H_502_6@
echo 开始插入数据@H_502_6@
echo 插入完成@H_502_6@
【简单查询】
#!/bin/sh@H_502_6@
RPi.cpu|2014-08-02 17:27:47|40.1
RPi.cpu|2014-08-02 18:27:47|40.2
RPi.cpu|2014-08-02 19:27:47|40.3
RPi.cpu|2014-08-02 20:27:47|40.4
#!/bin/sh@H_502_6@
【1】ORDER BY tdatetime DESC 以tdatetime降序排列。
【2】输出结果
RPi.cpu|2014-08-02 20:27:47|40.4
RPi.cpu|2014-08-02 19:27:47|40.3
RPi.cpu|2014-08-02 18:27:47|40.2
RPi.cpu|2014-08-02 17:27:47|40.1
ORDER BY tdatetime ASC;"@H_502_6@
【简要说明】@H_502_6@
【2】where tdatetime > datetime('Now','-3 hours') 限制条件3个小时之前到现在。
【3】输出结果如下,特别说明操作的时间约为22:05。
RPi.cpu|2014-08-02 19:27:47|40.3
RPi.cpu|2014-08-02 20:27:47|40.4
where tdatetime > datetime('2014-08-02 19:00:00') and@H_502_6@
tdatetime <= datetime('2014-08-02 20:00:00');"@H_502_6@
【1】2014-08-02 19:00:00 年必须占4个数字,其他必须占2个数字,不足时使用0不足。
【2】此处不需要增加localtime参数,具体原因未知。
【2】INSERT操作含有多种方法,根据实际情况选用。