我在覆盆子上用Python来读阿杜因的ph水

2024-04-20 04:16:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个项目来读取pH值的水,但是我的模块传感器无法修复raspberry pi3,所以我使用Arduino读取pH值,然后发送到raspberry并将数据上传到firebase。在

但是,我有一个问题,当raspberry从Arduino读取数据时,循环不起作用。错误消息是serial.util.serialexception异常在

这是关于Raspberry的源代码

import os
import serial
import time
from firebase import firebase

arduino = serial.Serial('/dev/ttyACM0',9600)

firebase = firebase.FirebaseApplication('https://raspi-ph.firebaseio.com/', None)


def update_firebase():
    phair = arduino.readline()
    if data is not None:
        time.sleep(1)
        pieces = data.split("sensor= ")
        ph = pieces
        print ph
    else:
        print('Failed to get data. Try Again!')
        time.sleep(10)

    data = {"Sensor pH": phair}
    firebase.post('/sensor/ph', data)


while True:
    update_firebase()

    time.sleep(5)

这是Arduino的源代码

^{pr2}$

最后,raspi上的错误消息

['seor= 0.52\r\n']
Traceback (most recent call last):
  File "ard.py", line 27, in <module>
    update_firebase()
  File "ard.py", line 11, in update_firebase
    phair = arduino.readline()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 490, in read
    'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but returned no data (device disconnected or multiple access on port?)

循环只运行一次


Tags: toimportdatatimeserialupdatesleepph