如何在 Arduino 和 Raspberry Pi 上实现相同的功能

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 本文介绍了如何在Arduino和Raspberry Pi上实现相同的功能,通过对比两种平台的硬件和软件特性,帮助读者选择最适合项目的开发板,并提供实用的编程技巧和示例代码。
  1. 控制LED灯闪烁功能

    • Arduino实现方式

      • 硬件连接:将一个LED灯的正极通过一个限流电阻(通常220欧姆左右)连接到Arduino的一个数字输出引脚(例如引脚13),LED的负极连接到地(GND)。
      • 代码编写:使用Arduino IDE进行编程,代码如下:
        ```cpp
        int ledPin = 13; // 定义LED连接的引脚

      void setup() {
      pinMode(ledPin, OUTPUT); // 将引脚设置为输出模式
      }

      void loop() {
      digitalWrite(ledPin, HIGH); // 点亮LED
      delay(1000); // 等待1秒
      digitalWrite(ledPin, LOW); // 熄灭LED
      delay(1000); // 等待1秒
      }
      ```

    • Raspberry Pi实现方式

      • 硬件连接:将LED的正极通过限流电阻连接到Raspberry Pi的一个GPIO引脚(例如GPIO18),LED负极连接到地。
      • 代码编写:首先需要安装RPi.GPIO库,在命令行中执行sudo apt - get install python3 - rpi.gpio(假设使用Python 3)。然后使用Python编写代码如下:
        ```python
        import RPi.GPIO as GPIO
        import time

      GPIO.setmode(GPIO.BCM)
      led_pin = 18
      GPIO.setup(led_pin, GPIO.OUT)
      try:
      while True:

      GPIO.output(led_pin, GPIO.HIGH)
      time.sleep(1)
      GPIO.output(led_pin, GPIO.LOW)
      time.sleep(1)
      

      finally:
      GPIO.cleanup()
      ```

  2. 读取温度传感器数据功能

    • Arduino实现方式

      • 硬件连接:以DHT11温度传感器为例,将DHT11的数据引脚连接到Arduino的一个数字引脚(例如引脚2)。
      • 代码编写:需要安装DHT传感器库,在Arduino IDE中通过“库管理器”搜索并安装“DHT sensor library”。代码如下:
        ```cpp

        include

        define DHTPIN 2 // 定义DHT11连接的引脚

        define DHTTYPE DHT11 // 定义传感器类型为DHT11

      DHT dht(DHTPIN, DHTTYPE);

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

      void loop() {
      float temperature = dht.readTemperature(); // 读取温度
      Serial.print("Temperature: ");
      Serial.print(temperature);
      Serial.println(" °C");
      delay(2000);
      }
      ```

    • Raspberry Pi实现方式

      • 硬件连接:同样以DHT11为例,将DHT11的数据引脚连接到Raspberry Pi的一个GPIO引脚(例如GPIO4)。
      • 代码编写:需要安装Adafruit - DHT库,在命令行中执行sudo apt - get install python3 - adafruit - dht。代码如下:
        ```python
        import Adafruit_DHT
        import time

      DHT_SENSOR = Adafruit_DHT.DHT11
      DHT_PIN = 4

      while True:
      humidity, temperature = Adafruit_DHT.read_retry(DHT_SENSOR, DHT_PIN)
      if humidity is not None and temperature is not None:

      print("Temp={0:0.1f}*C  Humidity={1:0.1f}%".format(temperature, humidity))
      

      else:

      print("Failed to retrieve data from humidity sensor")
      

      time.sleep(2)
      ```

  3. 连接并控制蓝牙设备功能

    • Arduino实现方式

      • 硬件连接:将蓝牙模块(例如HC - 05)的TX引脚连接到Arduino的RX引脚,RX引脚连接到Arduino的TX引脚,VCC连接到5V,GND连接到地。
      • 代码编写:需要使用SoftwareSerial库来进行串口通信。代码如下(假设蓝牙模块的波特率设置为9600):
        ```cpp

        include

        SoftwareSerial bluetooth(2, 3); // RX, TX引脚

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

      void loop() {
      if (bluetooth.available()) {

      char data = bluetooth.read();
      Serial.write(data);
      // 可以在这里添加根据接收到的数据控制其他设备的代码
      

      }
      if (Serial.available()) {

      char data = Serial.read();
      bluetooth.write(data);
      

      }
      }
      ```

    • Raspberry Pi实现方式

      • 硬件连接:将蓝牙模块的TX引脚连接到Raspberry Pi的RX引脚(例如GPIO10),RX引脚连接到Raspberry Pi的TX引脚(例如GPIO9),VCC连接到3.3V,GND连接到地。
      • 代码编写:使用Python的serial库进行通信。首先需要安装python - serial库,在命令行中执行sudo apt - get install python - serial。代码如下:
        ```python
        import serial
        import time

      ser = serial.Serial('/dev/ttyS0', 9600) # 根据实际情况修改串口设备名和波特率

      try:
      while True:

      if ser.in_waiting:
        data = ser.read().decode('utf - 8')
        print(data)
        # 可以在这里添加根据接收到的数据控制其他设备的代码
      # 发送数据示例
      ser.write(b'Hello')
      time.sleep(1)
      

      except KeyboardInterrupt:
      ser.close()
      ```

相关文章
|
索引
树莓派 Raspberry Pi (bullseye)更换阿里云源方法
树莓派 Raspberry Pi (bullseye)更换阿里云源方法
10251 2
|
1天前
|
传感器 Linux 开发工具
区分 Arduino 和 Raspberry pi
Arduino 是一个开源电子原型平台,适用于电子制作和自动化控制,主要处理简单的 I/O 任务。Raspberry Pi 则是基于 Linux 的小型计算机,功能更强大,支持复杂的计算任务、网络通信和多媒体处理。Arduino 使用 C/C++ 编程,而 Raspberry Pi 支持多种编程语言,如 Python 和 C/C++。Arduino 没有操作系统,直接运行在微控制器上;Raspberry Pi 运行完整的 Linux 系统,具有丰富的软件生态。
|
1天前
|
传感器 物联网 数据处理
在 Arduino 和 Raspberry Pi 上实现相同功能,哪个更具优势
Arduino 和 Raspberry Pi 各有优势,实现相同功能时,Arduino 更适合实时控制和低功耗应用,而 Raspberry Pi 则在处理复杂计算、多媒体和网络任务方面更胜一筹。选择取决于具体需求。
|
Linux
Raspberry Pi 4B树莓派学习笔记
Raspberry Pi 4B树莓派学习笔记
436 0
Raspberry Pi 4B树莓派学习笔记
|
Linux 开发者
使用QEMU模拟树莓派Raspberry Pi
使用QEMU模拟树莓派Raspberry Pi
683 0
使用QEMU模拟树莓派Raspberry Pi
|
Ubuntu Linux 网络安全
玩树莓派(raspberry pi) 2/3 raspbian的遇到的一些问题
  raspberry pi买回来玩了一段时间,现在就记录一下入门遇到的一些问题吧。 首先是烧写镜像,和安装电脑系统是一样的道理。 先要有一个制作一个U启动盘。先将SD卡格式化,再用Win32DiskImager或dd命令将raspberry官方下载的镜像烧写进去(这种文档很多的,随便找一个都可以完成操作)。
2745 0
|
物联网 供应链 测试技术