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

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 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()
      ```

相关文章
|
弹性计算 负载均衡 关系型数据库
如何提高业务系统的稳定性
【6月更文挑战第21天】如何提高业务系统的稳定性
|
物联网 Python 网络性能优化
在ESP32上使用umqtt接入阿里云物联网平台
网络上已经有使用python 模拟设备接入阿里云,手里刚好有块ESP32的小板子,在上面跑过Alios Things,然后接入阿里云。但是终究感觉麻烦,有的时候只是做一个很简单的应用,跑os确实不太方便。
12170 1
|
Web App开发
Python+selenium 技术篇-浏览器后台运行
Python+selenium 技术篇-浏览器后台运行
907 0
|
数据管理 数据处理 数据库
数据库中的 ACID 属性详解
【8月更文挑战第31天】
840 0
|
8月前
|
存储 人工智能 算法
AAAI 2025| S5VH: 基于选择性状态空间的高效自监督视频哈希
AAAI 2025 论文 S5VH 提出基于选择性状态空间模型的高效自监督视频哈希方法,通过双向 Mamba 层和 Self-Local-Global 学习范式,显著提升视频检索性能与推理效率。
318 16
|
小程序 JavaScript 数据库
微信小程序|考试系统|基于微信小程序和SpringBoot+VUE的智能在线考试系统毕业设计
微信小程序|考试系统|基于微信小程序和SpringBoot+VUE的智能在线考试系统毕业设计
458 0
|
缓存 Java 应用服务中间件
【Tomcat】史上最全下载、安装配置及使用教程,(2022最新..建议收藏,教学)附Tomcat常见报错解决方法
【Tomcat】史上最全下载、安装配置及使用教程,(2022最新..建议收藏,教学)附Tomcat常见报错解决方法
5485 1
【Tomcat】史上最全下载、安装配置及使用教程,(2022最新..建议收藏,教学)附Tomcat常见报错解决方法
|
12月前
|
存储 数据采集 数据处理
Pandas中批量转换object至float的高效方法
在数据分析中,常需将Pandas DataFrame中的object类型列转换为float类型以进行数值计算。本文介绍如何使用`pd.to_numeric`函数高效转换,并处理非数字值,包括用0或平均值填充NaN值的方法。
699 1
|
JSON 关系型数据库 MySQL
MySQL 8.0常用函数汇总与应用实例
这些函数只是MySQL 8.0提供的众多强大功能的一部分。通过结合使用这些函数,你可以有效地处理各种数据,优化数据库查询,并提高应用程序的性能和效率。
322 3
|
安全 编译器 Go
Go 1.21: 泛型函数的全面回顾
Go 1.21: 泛型函数的全面回顾