MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    A little hassle with ESP32..!!

    ESP32
    2
    11
    1258
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • kowshik1729
      kowshik1729 last edited by

      Hello guys,

      I was looking to implement a configuration that looks something as below with ESP32's BLE.

      Architecture

      Here the server ESP32 has to perform two-way communication. It has to receive data from phone and send that data over to the client.

      How can I do this with ESP32's BLE.

      1 Reply Last reply Reply Quote 0
      • A
        arunksoman last edited by

        Try to implement espnow protocol in order to communicate with client esp32.

        1 Reply Last reply Reply Quote 1
        • kowshik1729
          kowshik1729 last edited by

          @arunksoman thanks....can you please elaborate...any example implementations are there? so that I can get an idea

          A 1 Reply Last reply Reply Quote 0
          • A
            arunksoman @kowshik1729 last edited by arunksoman

            @kowshik1729 If you are using Arduino include espnow.h. Then you have create a structure in order to store your message. The message should not greater than 250 bytes. Then create a call back function(for knowing the message delivery is success or failure) and send message to client using MAC address. This protocol can send encrypted or non-encrypted message up to 220m. There is a better tutorial available on RandomNerdTutorials. One more thing is if you are using station mode you can connect upto 6 esp32 with your esp32 in master slave configuration. It can send data in both ways. If you are using softAP or station+softAP then it can connect up to 10-20 devices.

            1 Reply Last reply Reply Quote 1
            • kowshik1729
              kowshik1729 last edited by

              @arunksoman I have just seen ESPNOW protocol. It's great, but will it work for connecting the ESP32 to any other devices like mobile phone or it only maintains connections with other ESP32 alone?

              A 1 Reply Last reply Reply Quote 0
              • A
                arunksoman @kowshik1729 last edited by

                @kowshik1729 Yes. I am not asking you to use esp_now for communicate esp32 with mobile phone. I am saying only to use espnow protocol in order to communicate with your client esp32. It might reduce your problem. Also, read this instructables completely 👍

                1 Reply Last reply Reply Quote 0
                • kowshik1729
                  kowshik1729 last edited by

                  @arunksoman When you told me use esp_now to communicate with client but not with mobile you mean to use BLE connection between server and mobile?

                  I'm simply asking you that are you suggesting me this kind of 👇 architecture??

                  Mobile to server - BLE connection

                  Server to client - ESP_NOW

                  Is this what you've meant bro?

                  A 1 Reply Last reply Reply Quote 0
                  • A
                    arunksoman @kowshik1729 last edited by arunksoman

                    @kowshik1729 Yes, now you are absolutely right. That is what I tried to convey. The instructables given above is saying two way communication between client and server BLE is possible with android. But I didn't tried that. But I will try that soon.

                    1 Reply Last reply Reply Quote 0
                    • kowshik1729
                      kowshik1729 last edited by

                      @arunksoman I have read about ESP_NOW protocol from the Espressif page and it is mentioned that ESP_Now makes use of Wifi but without any connections. Which means my power consumption obviously increases. As I am going to use this application in a wearable use case I want some power-efficient solution.

                      A 1 Reply Last reply Reply Quote 0
                      • A
                        arunksoman @kowshik1729 last edited by arunksoman

                        @kowshik1729 Did you read Espressif page and datasheet completely?

                        ESP-NOW is yet another protocol developed by Espressif, which enables multiple devices to communicate with one another without using Wi-Fi. The protocol is similar to the low-power 2.4GHz wireless connectivity that is often deployed in wireless mouses. So, the pairing between devices is needed prior to their communication. After the pairing is done, the connection is safe and peer-to-peer, with no handshake being required.
                        Espressif ESP-NOW OVERVIEW

                        "The ESP-Now protocol is connection-less, you don't need to set up a session/get an ip-address to communicate between nodes. This saves time and battery power, exactly what we need. "
                        revspace

                        Also You can try this protocol with deep sleep mode.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Recent Posts

                        • @mahesh02 From the current Arduino ESP32 board files, we don't need to install the ESP-NN separately.

                          But try to choose the esp32 board version 3.1.3 and check, as I also faced issues with the latest esp32 board file.

                          • read more
                        • M

                          Im having the same error as below, it will be really awesome if you can help me.

                          In file included from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_classifier_types.h:40,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_model_types.h:40,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:38,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/mahesh02-project-1_inferencing.h:49,
                          from C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:27:
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/model-parameters/model_metadata.h:108:2: warning: #warning 'EI_CLASSFIER_OBJECT_DETECTION_COUNT' is used for the guaranteed minimum number of objects detected. To get all objects during inference use 'bounding_boxes_count' from the 'ei_impulse_result_t' struct instead. [-Wcpp]
                          #warning 'EI_CLASSFIER_OBJECT_DETECTION_COUNT' is used for the guaranteed minimum number of objects detected. To get all objects during inference use 'bounding_boxes_count' from the 'ei_impulse_result_t' struct instead.
                          ^~~~~~~
                          In file included from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/memory.hpp:38,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/ei_alloc.h:34,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/ei_vector.h:34,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/numpy_types.h:40,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/ei_dsp_handle.h:35,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_model_types.h:41,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:38,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/mahesh02-project-1_inferencing.h:49,
                          from C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:27:
                          c:\users\mahesh\onedrive\documents\arduino\libraries\mahesh02-project-1_inferencing\src\edge-impulse-sdk\porting\ei_classifier_porting.h:310: warning: "EI_PORTING_ARDUINO" redefined
                          #define EI_PORTING_ARDUINO 0

                          c:\users\mahesh\onedrive\documents\arduino\libraries\mahesh02-project-1_inferencing\src\edge-impulse-sdk\porting\ei_classifier_porting.h:279: note: this is the location of the previous definition
                          #define EI_PORTING_ARDUINO 1

                          In file included from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/speechpy.hpp:35,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_dsp.h:40,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:41,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/mahesh02-project-1_inferencing.h:49,
                          from C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:27:
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp: In static member function 'static int ei::speechpy::feature::mfe(ei::matrix_t*, ei::matrix_t*, ei::signal_t*, uint32_t, float, float, uint16_t, uint16_t, uint32_t, uint32_t, uint16_t)':
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:236:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_ixs' [-Wmissing-field-initializers]
                          stack_frames_info_t stack_frame_info = { 0 };
                          ^
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:236:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_length' [-Wmissing-field-initializers]
                          In file included from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/speechpy.hpp:35,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_dsp.h:40,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:41,
                          from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/mahesh02-project-1_inferencing.h:49,
                          from C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:27:
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp: In static member function 'static int ei::speechpy::feature::mfe_v3(ei::matrix_t*, ei::matrix_t*, ei::signal_t*, uint32_t, float, float, uint16_t, uint16_t, uint32_t, uint32_t, uint16_t)':
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:436:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_ixs' [-Wmissing-field-initializers]
                          stack_frames_info_t stack_frame_info = { 0 };
                          ^
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:436:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_length' [-Wmissing-field-initializers]
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp: In static member function 'static int ei::speechpy::feature::spectrogram(ei::matrix_t*, ei::signal_t*, float, float, float, uint16_t, uint16_t)':
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:576:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_ixs' [-Wmissing-field-initializers]
                          stack_frames_info_t stack_frame_info = { 0 };
                          ^
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/dsp/speechpy/feature.hpp:576:52: warning: missing initializer for member 'ei::speechpy::ei_stack_frames_info::frame_length' [-Wmissing-field-initializers]
                          In file included from C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/mahesh02-project-1_inferencing.h:49,
                          from C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:27:
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h: In function 'EI_IMPULSE_ERROR {anonymous}::process_impulse(ei_impulse_handle_t*, ei::signal_t*, ei_impulse_result_t*, bool)':
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:307:23: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
                          ei_printf("ERR: Out of memory, can't allocate matrix_ptrs[%lu]\n", ix);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:312:23: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
                          ei_printf("ERR: Out of memory, can't allocate matrix_ptrs[%lu]\n", ix);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h: In function 'EI_IMPULSE_ERROR {anonymous}::process_impulse_continuous(ei_impulse_handle_t*, ei::signal_t*, ei_impulse_result_t*, bool)':
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:558:27: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
                          ei_printf("ERR: Out of memory, can't allocate matrix_ptrs[%lu]\n", ix);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
                          C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing\src/edge-impulse-sdk/classifier/ei_run_classifier.h:563:27: error: format '%lu' expects argument of type 'long unsigned int', but argument 2 has type 'size_t' {aka 'unsigned int'} [-Werror=format=]
                          ei_printf("ERR: Out of memory, can't allocate matrix_ptrs[%lu]\n", ix);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino: In function 'void loop()':
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::bounding_boxes_count' [-Wmissing-field-initializers]
                          ei_impulse_result_t result = { 0 };
                          ^
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::classification' [-Wmissing-field-initializers]
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::anomaly' [-Wmissing-field-initializers]
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::timing' [-Wmissing-field-initializers]
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::copy_output' [-Wmissing-field-initializers]
                          C:\Users\Mahesh\AppData\Local\Temp\arduino_modified_sketch_680639\esp32_camera.ino:181:38: warning: missing initializer for member 'ei_impulse_result_t::postprocessed_output' [-Wmissing-field-initializers]
                          cc1plus.exe: some warnings being treated as errors
                          Using library mahesh02-project-1_inferencing at version 1.0.1 in folder: C:\Users\Mahesh\OneDrive\Documents\Arduino\libraries\mahesh02-project-1_inferencing
                          exit status 1
                          Error compiling for board AI Thinker ESP32-CAM.

                          • read more
                        • This also happened to me when I was given a task from my company, So what I can recommend is:
                          Ensure that the correct board, "AI Thinker ESP32-CAM," is selected in the Tools menu of your Arduino IDE.
                          If the board is not listed, you may need to install it through the Board Manager. Search for "ESP32" and install the latest version.
                          Ensure that necessary libraries like ESP32-CAM, WiFi, and HTTPClient are installed. You can install them through the Library Manager.

                          Carefully check your code for typos, missing semicolons, or incorrect syntax.
                          Verify that you're using the correct function names and parameters.

                          • read more
                        • Hi @PumpedMedusa, The rage is depends on the Antenna and how much TX power you have.

                          To choose antenna, first you need figure out - where your nodes will be, take a look at the below image. The antenna act like a "torch" if you have more dbi that mean it's focus will be increase and it can reach more distance but the angle it have it less, like a laser.

                          458a3da2-175a-4968-917c-56c5a1b763f8-image.png

                          also, obstacle such as buildings, tress and mountains will affect the signal and deplete it.

                          afe5eba4-b192-4263-8596-80c912fc1f23-image.png

                          So, answer for you question - What is the best LoRa module to use for long distance network? - It's really depends on where you planning to put the nodes and how high you putting the gateway. Let me know know your thoughts.

                          • read more
                        • @Parves-DOMINO Did you able to solve the issue?

                          • read more
                        By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
                        Copyright © 2023 MakerGram, All rights reserved.
                        Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct