【问题标题】:Raspberry Pi & Arduino reading serial sensor dataRaspberry Pi 和 Arduino 读取串行传感器数据
【发布时间】:2016-06-28 19:35:05
【问题描述】:

我有一个连接到我的 Arduino uno 的电压传感器,它又连接到我的 Raspberry Pi 3。我想以乒乓方式从 Arduino 到 Raspberry Pi 获取传感器信息。我将通过 cronjob 上的 Python 脚本发送一个字符来唤醒它,然后抓取传感器值并将其放入 mysql 数据库中。

将来我想为 Arduino 添加更多传感器

我遇到的问题是 Python 方面,当我运行 python 代码时,我只得到一条空白黑线。

树莓派 3 Python 代码:

#!/usr/bin/python

import serial 
import MySQLdb
import time

db = MySQLdb.connect(host="localhost",    
                 user="user",        
                 passwd="password", 
                 db="database")        

cur = db.cursor()

port = serial.Serial("/dev/ttyACM0", baudrate = 9600, timeout=None)
port.flushInput()      

sensor1 = 0;
sensor2 = 0;
sensor3 = 0;

vals = []

while (port.inWaiting()==0):
port.write("*")
time.sleep(1)

vals = (port.readline()).split(',')
print vals
sensor1 = int(vals[0])
sensor2 = int(vals[1])
sensor3 = int(vals[2])
cur.execute("insert into voltage(volts) values(" + str(Battout) + ")" ) 

cur.execute("SELECT * from voltage")

db.close()

Arduino 代码:

const int BattVolt = A0;

int BattVal = 0;
float Battout;          

void setup() {
Serial.begin(9600);
}


void loop() {

Serial.flush();
while(!Serial.available());  //wait for character from raspi
delay(1000);

float Voltage;
BattVal = analogRead(BattVolt);  //read analog pins
Voltage=BattVal/4.09;
Battout=(Voltage/10);

Serial.print(Battout);
Serial.print(",");

}

【问题讨论】:

  • 为什么在python脚本中使用str(Battout)

标签: python python-2.7 arduino raspberry-pi raspberry-pi3


【解决方案1】:

对您的实施的一些观察。

  1. 为什么在python脚本中使用Battout

  2. 1234563 /p>
  3. 显然,您希望在 python 脚本中收到类似“12,32,15”的内容,但如果您只向 Arduino 发送一个字符,它将只进行 1 次主循环迭代。

【讨论】:

  • 谢谢,只是一个简单的错误,即没有在 Arduino 中添加新行就解决了所有问题。
【解决方案2】:

Raspberry Pi 3 和 uart0(蓝牙)、uart1(串行)存在问题。
对于 Pi 3,uart1 通常在 /dev/ttyS0 和 TX-GPIO 14 上可用, RX-GPIO 15.
uart1 的波特率取决于内核时钟。所以如果核心时钟改变,波特率就会改变!
解决方法 1:/boot/config.txt 中,添加行 core_freq=250。保存并重启!现在你的 Pi 有一个恒定的核心频率。 Raspberry Pi 3 UART baud rate workaround
解决方法 2: 更改设备树,使用 uart0 进行串行通信,使用 uart1 进行蓝牙(蓝牙现在同样的问题)。Raspberry Pi 3 compatibility (BT disable & serial port remap fix)

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 2014-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多