我要做一个硬件, esp32 和 stm32 该怎么选,请教下 V 社的大佬们! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
taxze
V2EX    问与答

我要做一个硬件, esp32 和 stm32 该怎么选,请教下 V 社的大佬们!

  •  
  •   taxze 2024-04-28 18:23:57 +08:00 1874 次点击
    这是一个创建于 539 天前的主题,其中的信息可能已经有所发展或是发生改变。

    V 社的各位大佬,小弟来咨询下,我要做一个硬件,esp32 和 stm32 该怎么选。

    产品大致功能: 1.控制马达(马达有几根线,控制马达的电压即可控制马达的转速)。 2.检测硬件的温度。 3.需要接显示屏显示一些东西。 4.检测硬件是否被移动。 5.硬件上只带有一个开关机的物理按键,基本上所有的控制功能(控制马达的转速...)、硬件的数据都要通过蓝牙传给 app 。

    其他需求: 目前对硬件知识了解不多,属于小白,但是需要在 3 个月左右的时间内和 app 联调好,做出一个基本的样品,需要考虑学习成本!

    本人是做 app 开发的,对硬件不太了解,谢谢各位大佬!!!

    9 条回复    2024-04-29 09:34:44 +08:00
    FranzKafka95
        1
    FranzKafka95  
       2024-04-28 18:28:37 +08:00 via Android
    物联网的场景推荐 ESP32
    vileer
        2
    vileer  
       2024-04-28 19:25:10 +08:00 via iPhone
    你要蓝牙那肯定是 esp32 啊,低端的 stm32 没有蓝牙,你说的这些需求 esp32 都难实现
    liqinliqin
        3
    liqinliqin  
    PRO
       2024-04-28 19:29:32 +08:00
    liqinliqin
        4
    liqinliqin  
    PRO
       2024-04-28 19:30:47 +08:00
    #include <Arduino.h>
    #include <BLEDevice.h>
    #include <BLEServer.h>
    #include <BLEUtils.h>
    #include <BLE2902.h>

    // 定义 BLE 服务、特征和 UUID
    BLEServer* pServer;
    BLEService* pService;
    BLECharacteristic* pCharacteristic;

    // 定义马达控制参数
    const int motorPin = 12; // 马达控制引脚
    int motorSpeed = 0; // 马达转速

    // 定义温度传感器引脚
    const int tempSensorPin = 34; // 温度传感器引脚

    // 定义运动检测参数
    const int motiOnSensorPin= 35; // 运动传感器引脚
    int motiOnDetected= 0; // 运动检测结果

    // 定义开关机按键参数
    const int powerButtOnPin= 27; // 开关机按键引脚
    bool powerState = false; // 开关机状态

    // 定义 BLE 特征的 UUID
    #define CHARACTERISTIC_UUID "1a2b3c4d-5e6f-7g8h-9i0j-1k2l3m4n5o6p"

    // 回调函数,当有 BLE 中心设备连接或断开连接时调用
    class MyServerCallbacks: public BLEServerCallbacks {
    void onConnect(BLEServer* pServer) {
    Serial.println("BLE 设备已连接");
    };

    void onDisconnect(BLEServer* pServer) {
    Serial.println("BLE 设备已断开连接");
    }
    };

    // 初始化 BLE 服务
    void initBLE() {
    BLEDevice::init("ESP32_BLE_Server");
    pServer = BLEDevice::createServer();
    pServer->setCallbacks(new MyServerCallbacks());

    pService = pServer->createService(BLEUUID((uint16_t)0x180F));
    pCharacteristic = pService->createCharacteristic(
    BLEUUID((uint16_t)0x2A19),
    BLECharacteristic::PROPERTY_READ
    );

    pCharacteristic->setValue(0); // 初始化特征值为 0
    pService->start();
    BLEAdvertising* pAdvertising = pServer->getAdvertising();
    pAdvertising->start();
    }

    // 初始化硬件
    void setup() {
    Serial.begin(115200);
    initBLE();
    pinMode(motorPin, OUTPUT);
    pinMode(tempSensorPin, INPUT);
    pinMode(motionSensorPin, INPUT);
    pinMode(powerButtonPin, INPUT_PULLUP);
    }

    // 主循环
    void loop() {
    // 读取温度传感器数据
    float temperature = analogRead(tempSensorPin) * 3.3 / 4095 * 100; // 假设温度传感器为模拟传感器,实际况请根据传感器类型调整

    // 检测运动传感器
    motiOnDetected= digitalRead(motionSensorPin);

    // 检测开关机按键状态
    if (digitalRead(powerButtonPin) == LOW) {
    powerState = !powerState; // 切换开关机状态
    }

    // 发送数据到 BLE 中心设备
    pCharacteristic->setValue(temperature); // 将温度值写入 BLE 特征
    pCharacteristic->notify();

    delay(1000); // 等待 1 秒钟
    }
    liqinliqin
        5
    liqinliqin  
    PRO
       2024-04-28 19:31:14 +08:00
    这段代码实现了以下功能:

    控制马达的转速,可以通过 motorSpeed 变量设置马达的转速。
    检测温度传感器的数据,通过 tempSensorPin 引脚读取温度传感器的值。
    通过 BLE 服务将温度数据发送给 BLE 中心设备。
    检测运动传感器的状态,通过 motionSensorPin 引脚读取运动传感器的状态。
    监测开关机按键状态,通过 powerButtonPin 引脚检测开关机按键的状态,并通过 BLE 服务将开关机状态发送给 BLE 中心设备。
    liqinliqin
        6
    liqinliqin  
    PRO
       2024-04-28 19:32:27 +08:00
    APP+硬件原型周期一上午可以完成
    taxze
        7
    taxze  
    OP
       2024-04-28 19:33:40 +08:00
    @liqinliqin nb 啊大哥
    leon2023
        8
    leon2023  
       2024-04-28 19:38:57 +08:00
    既然要蓝牙,那必须 esp32 了,主要是 flash 超大,一般都是 4MB,不像 stm32,一般几十 K 到 1,2 百 k 。再加上 esp32 集成 wifi 和蓝牙,stm32 要外接,esp32 如果用 arduino 开发,有 many many 的现成库可以用,上手容易
    amwyyyy
        9
    amwyyyy  
       2024-04-29 09:34:44 +08:00
    esp32 好上手
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     851 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 19:41 PVG 03:41 LAX 12:41 JFK 15:41
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86