Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 错误:';客户';未在此范围内声明;_C_Arduino - Fatal编程技术网

C 错误:';客户';未在此范围内声明;

C 错误:';客户';未在此范围内声明;,c,arduino,C,Arduino,我在文件CameraWebServer上设置了Mqtt服务器,但是当我发布一些东西时,在另一个文件(app_httpd.cpp)中 app_httpd.cpp:195:17:错误:未在此中声明“客户端” 范围 我试图包括和WiFiClient和PubSubClient客户端(espClient)

我在文件CameraWebServer上设置了Mqtt服务器,但是当我发布一些东西时,在另一个文件(app_httpd.cpp)中

app_httpd.cpp:195:17:错误:未在此中声明“客户端” 范围

我试图包括和
WiFiClient和<代码>PubSubClient客户端(espClient)
“客户”的多重定义

CameraWebServer.ino


    #include "esp_camera.h"
    #include <WiFi.h>
    #include <PubSubClient.h>
    
    // Select camera model
    #define CAMERA_MODEL_AI_THINKER
    
    #include "camera_pins.h"
    
    const char* ssid = "***";
    const char* password = "***";
    
    WiFiClient espClient;
    PubSubClient client(espClient);
    
    void startCameraServer();
    
    void MqttSetup() {
    
      // Add your MQTT Broker IP address, example:
      //const char* mqtt_server = "192.168.1.144";
      const char* mqtt_server = "192.168.***.***";
    
      client.setServer(mqtt_server, 1883);
    
      Serial.print("Attempting MQTT connection...");
      if (client.connect("ESP32-Cam Client")) {
          Serial.println("MQTT connected");
          // Subscribe
          client.subscribe("camera/message");
        } else {
          Serial.print("failed, rc=");
          Serial.print(client.state());
          Serial.println(" try again in 5 seconds");
          // Wait 5 seconds before retrying
          delay(5000);
        }
    }
    
    void setup() {
      Serial.begin(115200);
      Serial.setDebugOutput(true);
      Serial.println();
    
      [...]
    
      WiFi.begin(ssid, password);
    
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
    
      MqttSetup();
    
      startCameraServer();
    
      Serial.print("Camera Ready! Use 'http://");
      Serial.print(WiFi.localIP());
      Serial.println("' to connect");
    }
    
    void loop() {
      // put your main code here, to run repeatedly:
      delay(10000);
    }


既有太多的代码需要查看,也没有足够的代码可以开始查看。有十几个头文件,我们不知道其中有什么。请发布一条。@DimKot错误消息足够清楚。@VladFrommoskow是的,很清楚!但是如何使客户机成为全局变量呢?谢谢你,代词是m。Υ你是对的,这是我第一次!:)它是
客户机的“多个定义”
,但随附的代码仅显示一个定义(
PubSubClient(espClient);
)。找到另一个
客户端的定义位置,您可能会找到解决方案。

        #include "esp_http_server.h"
        #include "esp_timer.h"
        #include "esp_camera.h"
        #include "img_converters.h"
        #include "camera_index.h"
        #include "Arduino.h"
        
       [...]
        
        static int run_face_recognition(dl_matrix3du_t *image_matrix, box_array_t *net_boxes){
            dl_matrix3du_t *aligned_face = NULL;
            int matched_id = 0;
        
            aligned_face = dl_matrix3du_alloc(1, FACE_WIDTH, FACE_HEIGHT, 3);
            if(!aligned_face){
                Serial.println("Could not allocate face recognition buffer");
                return matched_id;
            }
            if (align_face(net_boxes, image_matrix, aligned_face) == ESP_OK){
                if (is_enrolling == 1){
                    int8_t left_sample_face = enroll_face(&id_list, aligned_face);
        
                    if(left_sample_face == (ENROLL_CONFIRM_TIMES - 1)){
                        Serial.printf("Enrolling Face ID: %d\n", id_list.tail);
                    }
                    Serial.printf("Enrolling Face ID: %d sample %d\n", id_list.tail, ENROLL_CONFIRM_TIMES - left_sample_face);
                    rgb_printf(image_matrix, FACE_COLOR_CYAN, "ID[%u] Sample[%u]", id_list.tail, ENROLL_CONFIRM_TIMES - left_sample_face);
                    if (left_sample_face == 0){
                        is_enrolling = 0;
                        Serial.printf("Enrolled Face ID: %d\n", id_list.tail);
                    }
                } else {
                    matched_id = recognize_face(&id_list, aligned_face);
                    if (matched_id >= 0) {
                        Serial.printf("Match Face ID: %u\n", matched_id);
                        rgb_printf(image_matrix, FACE_COLOR_GREEN, "Hello Subject %u", matched_id);
                    } else {
                        Serial.println("No Match Found");
                        rgb_print(image_matrix, FACE_COLOR_RED, "Intruder Alert!");
                        matched_id = -1;
                        **client.publish("camera/message", "Intruder Alert!");**
                    }
                }
            } else {
                Serial.println("Face Not Aligned");
                //rgb_print(image_matrix, FACE_COLOR_YELLOW, "Human Detected");
            }
        
            dl_matrix3du_free(aligned_face);
            return matched_id;
        }
        
        [...]
        }
        
        [...]
        }