• ESP32CAM实现手机app实时监控


    ESP32cam


    前言

    之前拿到ESP32CAM的时候就想把图像传到手机app上,但是一直找不到一个库,今天突然可以用了,原因未知。也是做到了图像的传输。

    一、配置

    关于ESP32的配置,在很久之前的博客我已经写过了,这里就不写了,直接写怎么实现图像的传输的。
    在这里插入图片描述
    关于esp32cam有一个示例,就是图像实时传输的,这里贴出代码。

    #define BLINKER_WIFI
    #define BLINKER_ESP_SMARTCONFIG
    
    #include 
    #include "ESP32_CAM_SERVER.h"
    
    char auth[] = "Your Device Secret Key";
    bool setup_camera = false;
    
    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);
    
        Blinker.vibrate();
    
        uint32_t BlinkerTime = millis();
    
        Blinker.printObject("video", "{\"str\":\"mjpg\",\"url\":\"http:"+ String(WiFi.localIP()) + "\"}");
    }
    
    void setup()
    {
        Serial.begin(115200);
        BLINKER_DEBUG.stream(Serial);
    
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, LOW);
    
        Blinker.begin(auth);
        Blinker.attachData(dataRead);
    }
    
    void loop()
    {
        Blinker.run();
    
        if (Blinker.connected() && !setup_camera)
        {
            setupCamera();
            setup_camera = true;
    
            Blinker.printObject("video", "{\"str\":\"mjpg\",\"url\":\"http://"+ WiFi.localIP().toString() + "\"}");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    这个代码用的是app一键配网,我们可以做如下修改。
    不使用一键配网(即文中“使用APP开发工具中ESPTOUCH配网后即可")的方法如下:
    1、把这句注释掉 #define BLINKER_ESP_SMARTCONFIG
    2、Setup里使用:Blinker.begin(auth,ssid,pswd);
    3、在App里编辑video组件,URL项填写http://192.168.X.X/即可(路由器分配的地址,串口监视器中可以看到)
    这里一定要注意,我自己输入怎么都不能传输,然后我复制http://192.168.X.X/后改了后面两个X就传输了,自己打好像不能用。很奇怪

    二、修改后的代码

    #define BLINKER_WIFI
    //#define BLINKER_ESP_SMARTCONFIG
     
    #include 
    #include "ESP32_CAM_SERVER.h"
     
    char auth[] = "          ";//blinker的密钥
    char ssid[]="TP-LINK_949B";//WiFi名称
    char pswd[]="88888888";//wifi密码
    bool setup_camera = false;
     
    void dataRead(const String & data)
    {
        BLINKER_LOG("Blinker readString: ", data);
     
        Blinker.vibrate();
        
        uint32_t BlinkerTime = millis();
        Blinker.print("millis", BlinkerTime);
    }
     
    void setup()
    {
        Serial.begin(115200);
        BLINKER_DEBUG.stream(Serial);
     
        pinMode(LED_BUILTIN, OUTPUT);
        digitalWrite(LED_BUILTIN, LOW);
        
        Blinker.begin(auth,ssid,pswd);
        Blinker.attachData(dataRead);
    }
     
    void loop()
    {
        Blinker.run(); 
        if (Blinker.connected() && !setup_camera)
        {
            setupCamera();
            setup_camera = true;
     
            Blinker.printObject("video", "{\"str\":\"mjpg\",\"url\":\"http://"+ WiFi.localIP().toString() + "\"}");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    这里贴出修改后的代码,直接改密钥,wifi就可以传输,这是图像传输的现象。
    在这里插入图片描述
    选mipg才可以实时传输。

  • 相关阅读:
    软考高级系统架构设计师系列之:案例分析典型试题二
    数据可观察性可以解决的三个数据问题
    五面腾讯技术专家岗,已拿offer,这些面试题你能答出多少? 还不来学习啊!
    【canal系】canal集群异常Could not find first log file name in binary log index file
    Linux常规基础配置
    Java回顾-Collection-Set-HashSet/LinkedHashSet/TreeSet的对比
    IB心理学如何记住大量的内容?
    WSO2 EI 6.0.0 集群部署文档 - MySQL版
    ArcGis课程设计
    C++丧尸小游戏!!!(第一版)
  • 原文地址:https://blog.csdn.net/qq_51963216/article/details/126326522