V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Breadykid
V2EX  ›  程序员

树莓派玩具怎么优化?

  •  
  •   Breadykid ·
    breadkid · 2020-08-17 18:33:52 +08:00 · 1495 次点击
    这是一个创建于 1551 天前的主题,其中的信息可能已经有所发展或是发生改变。

    其实树莓派自带 GPIO 接口,想把我目前的实现变成舍弃 Arduino,让树莓派直接接元器件,有没有好的建议? readme如下:

    基于 Rasperry Pi 3B and Arduino 选型如下:


    • 开发板:
      • Rasberry Pi 3:中央控制服务器,负责与互联网的通信、采样存储 Arduino 上报的状态数据、提供 /调用 API 以方便用其他终端控制。
      • Arduino UNO:负责传感器采样,和 RPi 进行通信。
    • 温度传感器:DHT22
    • 语言:Python3,Java8
    • 数据库:mysql

    Arduino

    #include "DHT.h"
    DHT dht(2, DHT22);
    
    void setup()
    {
      Serial.begin(9600);
      dht.begin();
    }
    
    void loop()
    {
      float humidity = dht.readHumidity();
      float temperature = dht.readTemperature();
      Serial.print("Humidity: ");
      Serial.print(humidity);
      Serial.print(" ");
      Serial.print("Temperature: ");
      Serial.println(temperature);
      delay(2000);
    }
    

    RasberryPi 3B

    安装系统

    镜像:raspbian-stretch-lite
    microSD 卡:16G,推荐 8G 以上

    • 将 SD 卡格式化:(Mac)磁盘工具-->抹掉-->MS-DOS(FAT)-->抹掉

    • 终端 df-h 查看挂载,SD 卡假设为 /dev/disk2s1

    • 卸载 SD 卡 diskutil unmount /dev/disk2s1

    • diskutil list 确认 /dev/disk2 下的 disk2

    • 官网下载镜像,写入 SD 卡 sudo dd bs=4m if=本机镜像路径 of=/dev/disk2 查看进度可以另起终端 sudo kill -INFO $(pgrep ^dd)

    • 由于树莓派默认不开启 ssh,写入成功后在 /boot/ 创建无后缀的文件名为 ssh 的文件

    • 设置自动连接 Wi-Fi:在 /boot/ 下创建 wpa_supplicant.conf

      country=CN
      ctrl_interface=DIR=/var/run/wpa_supplicant 	GROUP=netdev
      update_config=1
      network={
      	scan_ssid=1#SSID 被隐藏时设置
      	ssid="TaiGe"#Wi-Fi 名
      	psk="HaoyunHu888"#Wi-Fi 密码
      }
      
    • 弹出 SD 卡diskutil unmountDisk /dev/disk2

    以上,RasberryPi 的系统安装完成,可以将 SD 卡插入开发版上电开机了

    登录系统

    SSH
    ssh pi@ip
    default password: raspberry
    

    通过路由器查看树莓派的当前 ip:

    • 打开网页192.168.1.1,登录系统
    • 状态 /用户侧信息 /以太网接口信息 /,找到客户端名称为 raspberrypi 的 IP 地址: ***.**.**.*

    关机sudo shutdown -h now,重新上电后会自动开机


    RaspberryPi 读取 Arduino 数据

    安装 Python3

    sudo aptitude install python-dev

    安装 Python 的 GPIO 模块

    用于控制 LED 、电机等

    sudo apt-get install rpi.gpio
    
    

    安装 Serial

    用于串口通信及 USB 通信sudo apt-get install python-serial

    安装串口调试程序

    minicom 是 linux 平台串口调试工具,可以用它来读取 Arduino 通过 USB 串口发送的传感器数值。

    • 在 RaspberryPi 上安装 minicom:sudo apt-get install minicom

    • 配置 minicom:

    • minicom 启动:minicom -b 9600 -D /dev/ttyACM0

      • -b 代表波特率
      • -D 代表端口
      • /dev/ttyACM0 代表打开与 Arduino 相连的端口

    Python 打印数据

    show.py

    import serial
    ser = serial.Serial('/dev/ttyACM0',9600)
    info = ser.readline()
    while info:
        print(info)
        info = ser.readline()
    

    Python 调用 http API 安装 requests sudo pip install requests

    后台运行 py 脚本
    nohup python api.py &

    2 条回复    2020-08-20 17:29:10 +08:00
    tankren
        1
    tankren  
       2020-08-18 00:30:55 +08:00 via Android   ❤️ 2
    包保鲜膜防尘
    Breadykid
        2
    Breadykid  
    OP
       2020-08-20 17:29:10 +08:00
    @tankren 会发烫
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2568 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:33 · PVG 09:33 · LAX 17:33 · JFK 20:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.