当arduino遇到树莓派(usb串口)

arduino与树莓派cm4通过usb串口连接:


问题描述

前两天尝试了很久arduino和树莓派连接 终于找到了连接的方法!可恶

主要是先在树莓派端导serial包 pip install serial 然后在两端发送和接收代码里设置相同波特率


arduino例程:

此处用dht11模块测试温度, 引脚插arduino端8号引脚

#include <DHT.h>

#define   DHTPIN   8
#define DHTTYPE    DHT11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
          
   
  // put your setup code here, to run once:

  Serial.begin(9600);

  dht.begin();

  Serial.println("Hi Vcancy. Arduino is running...");

}


char target[] = "GET TH";

void loop() {
          
   
  // 每次等待2秒后再输出(这里必须等大于1秒,不然不准确)
  delay(2000);
  // 从串口读数据并判断
  if (Serial.available() > 0) {
          
   
    if ( Serial.find(target)) {
          
   
      // 获取温度或者湿度需要250毫秒!
      // 传感器获取到的温度和湿度可能是2秒内的

      float h = dht.readHumidity();// 读取当前的湿度

      float t = dht.readTemperature(); // 读取当前的温度,单位C

      float f = dht.readTemperature(true);//读取当前的温度,单位F

      // 如果读取失败则退出,再读取一次
      if (isnan(h) || isnan(t) || isnan(f)) {
          
   
        Serial.println("Failed to read from DHT sensor!");
        return;
      }

      // 读取体感温度,单位F
      float hif = dht.computeHeatIndex(f, h);
      // 读取体感温度,单位C
      float hic = dht.computeHeatIndex(t, h, false);

      Serial.print("湿度: ");
      Serial.print(h);
      Serial.print(" %	");
      Serial.print("温度: ");
      Serial.print(t);
      Serial.print(" *C ");
      Serial.print(f);
      Serial.print(" *F	");
      Serial.print("体感温度: ");
      Serial.print(hic);
      Serial.print(" *C ");
      Serial.print(hif);
      Serial.println(" *F");
    }
  }

}

从串口调试器输入GET TH

获得温湿度数据


树莓派端:

提示:这里填写该问题的具体解决方案: 先在终端里打ls /dev 找到Arduino的串口地址:/dev/ttyACM0(也有可能是ttyUSB0)

安装pyserial,串口库 pip install serial

编写一个python程序,调用串口获取数据。

import serial
ser = serial.Serial(/dev/ttyACM0, 9600, timeout=1)

try:
    while 1:
        ser.write(b"GET TH")
        response = str(ser.readline().decode())
        if response.startswith(湿度:):
            print(response.strip(
))
except KeyboardInterrupt:
    ser.close()

将arduino通过usb连接树莓派 运行程序 得到结果

经验分享 程序员 微信小程序 职场和发展