我有一个温度传感器([LM35] [1])与Arduino板接口,我的[sketch] [2]能够将值记录到串口,比如Ubuntu中的/dev/ttyACM0
,我能够安装pySerial并将温度值记录到文件中......我使用了命令
python -m serial.tools.miniterm /dev/ttyACM0 >> templogger.csv
所以它会记录像
这样的值27
28
27
进入templogger.csv文件。
而不是登录csv文件我可以直接将这些值记录到postresql数据库,说Db1用户名' abc'和密码' xyz'。是否有可能通过python,你可以通过提供所需的脚本来帮助
答案 0 :(得分:1)
从psycopg2开始,它实现了Python数据库API。
您可能希望从简单的单个INSERT
开始,但稍后您将能够批量处理事务或使用COPY
来提高写入性能。
一般来说,最好是针对比这更具体的问题发布问题。见Stack Overflow Help。如果你坚持做某事就可以寻求帮助,但最好先试着弄明白。如果您的问题更像是以下情况,您将获得更好的结果:“我尝试使用psycopg2将我的Python程序连接到PostgreSQL,因此我可以将传感器日志记录写入数据库,但是当我INSERT
一行时,我得到了[exact error text here]
。搜索错误消息对我没有帮助,所以我有点卡住了。“
换句话说,尝试一下,如果你遇到困难,请问。我通常只是将这样的问题近似投票为“过于本地化”或“不是真正的问题”,这会给你一个问题编写指南的自动链接,但你是新来的,你做了一个努力写出一个体面的问题,所以我想更详细地解释一下。
答案 1 :(得分:0)
而不是登录csv文件我可以直接将这些值记录到postresql数据库,说Db1用户名' abc'和密码' xyz'。是否有可能通过python,你能提供所需的脚本请求帮助吗?
好好了解SQLAlchemy tutorial,并尝试制作适合您的代码。基本上,您可以从示例中推断:
from serial import Serial
from sqlalchemy import *
class Temperature(object):
pass
class TemperatureStore:
def __init__(self, dburl):
self.db = create_engine('postgresql://%s' % dburl)
self.db.echo = True
metadata = BoundMetaData(db)
temperatures = Table('temperatures', metadata, autoload=True)
temperaturemapper = mapper(Temperature, temperatures)
self.session = create_session()
def push_temperature(self, temp):
temp = Temperature()
temp.value = temp
session.save(temp)
def main():
ser = Serial(port='/dev/ttyXXX', baudrate=115200)
tempstore = TemperatureStore('abc:xyz@localhost:5432/Db1')
while True:
tempstore.push_temperature(ser.read())
这只是一个可能或可能不起作用的例子(我没有测试它,只是在5分钟内写完),所以你最好从中获得一些灵感,并试着找出自己的灵感!