嘿伙计们,
我和我的一个朋友目前正在做一个我们想要实现的小项目。到目前为止,我们已经构建了一个小型传感器,可以识别车库中是否存在汽车,同时运行超声波传感器和 Arduino Nano。然后,传感器通过 Xbee 将整数(1 = 汽车,0 = 没有汽车)传输到客厅中运行 Python 的 RaspberryPi。
我们还可以使用以下代码在屏幕上看到数据,给出我们的行或 0 或 1:
import serial
while True:
ser = serial.Serial(“/dev/ttyAMA0”, 9600, timeout=1)
response = ser.read()
print response
在研究了一些 Python 和 SQLite3 代码之后,我们认为如果我们能够看到一辆车何时到达我们的车库并离开,那就太酷了。所以我做了一些研究,发现这可以通过 MySQL 或 SQLite 数据库来实现。
我们尝试了一下,看了很多教程,我们现在能够创建表并将数据插入其中。不幸的是,到目前为止,这些数据是由我们手动写入的,并没有通过函数动态插入到表中。
我们关于数据库的代码如下所示:
import sqlite3
import time
import datetime
import serial
def Main():
try:
con = sqlite3.connect(‘test.db’)
cur = con.curson()
cur.execute(‘CREATE TABLE Cars(Id INT, Time TEXT, Status INT)’)
cur.execute(“INSERT INTO Cars VALUES(1, datettime(), 1)”)
cur.execute(“INSERT INTO Cars VALUES(2, datettime(), Reading())”)
con.commit()
cur.execute(“SELECT * FROM Cars”)
data = cur.fetchall()
for row in data
print row
except sqlite3.Error, e:
if con:
con.rollback()
print “There’s a problem with your SQLite”
finally:
if con:
con.close()
def Reading():
ser = serial.Serial(“/dev/ttyAMA0”, 9600, timeout=1)
response = ser.read()
return response
if __name__ == ‘__main__’:
Main()
简而言之:我们表格的每一行都应该显示一个单独的 ID、当前时间以及 1 或 0,这取决于车库中传感器前面是否有汽车。当我们尝试运行此代码时,我们总是收到“您的 SQL 有问题”作为消息。
也许你们中的一个人知道到目前为止我们做错了什么,或者我们如何能够将函数 Reading() 的值实现到表中。即使没有,也许您对如何可视化数据有另一种想法。