mirror of
				https://github.com/alexandrebobkov/ESP-Nodes.git
				synced 2025-11-04 01:08:29 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
TRANSMITTER
 | 
						|
===========
 | 
						|
 | 
						|
Configuration Variables
 | 
						|
-----------------------
 | 
						|
 | 
						|
.. code-block:: c
 | 
						|
 | 
						|
    uint8_t receiver_mac[ESP_NOW_ETH_ALEN]  = {0xe4, 0xb0, 0x63, 0x17, 0x9e, 0x44};
 | 
						|
 | 
						|
    typedef struct {
 | 
						|
        int         x_axis;             // Joystick x-position
 | 
						|
        int         y_axis;             // Joystick y-position
 | 
						|
        bool        nav_btn;            // Joystick push button
 | 
						|
        bool        led;                // LED ON/OFF state
 | 
						|
        uint8_t     motor1_rpm_pwm;     // PWMs for each DC motor
 | 
						|
        uint8_t     motor2_rpm_pwm;
 | 
						|
        uint8_t     motor3_rpm_pwm;
 | 
						|
        uint8_t     motor4_rpm_pwm;
 | 
						|
    } __attribute__((packed)) sensors_data_t;
 | 
						|
 | 
						|
Reading Joystick x- and y- Axis Values
 | 
						|
--------------------------------------
 | 
						|
 | 
						|
Sending & Ecapsulating Data
 | 
						|
----------------------------
 | 
						|
 | 
						|
.. code-block:: c
 | 
						|
 | 
						|
    void sendData (void) {
 | 
						|
 | 
						|
        ... ... ...
 | 
						|
        ... ... ...
 | 
						|
 | 
						|
        buffer.x_axis = x_axis;
 | 
						|
        buffer.y_axis = y_axis;
 | 
						|
 | 
						|
        // Call ESP-NOW function to send data (MAC address of receiver, pointer to the memory holding data & data length)
 | 
						|
        uint8_t result = esp_now_send((uint8_t*)receiver_mac, (uint8_t *)&buffer, sizeof(buffer));
 | 
						|
 | 
						|
        ... ... ...
 | 
						|
        ... ... ...
 | 
						|
    }
 | 
						|
 | 
						|
Main Function
 | 
						|
-------------
 | 
						|
 | 
						|
.. code-block:: c
 | 
						|
 | 
						|
    #include "freertos/FreeRTOS.h"
 | 
						|
    #include "nvs_flash.h"
 | 
						|
    #include "esp_err.h"
 | 
						|
 | 
						|
    ... ... ...
 | 
						|
    ... ... ...
 | 
						|
 | 
						|
    void app_main(void) {
 | 
						|
 | 
						|
        ... ... ...
 | 
						|
        ... ... ...
 | 
						|
 | 
						|
        // Initialize internal temperature sensor
 | 
						|
        chip_sensor_init();
 | 
						|
 | 
						|
        // Initialize NVS
 | 
						|
        esp_err_t ret = nvs_flash_init();
 | 
						|
        if (ret == ESP_ERR_NVS_NO_FREE_PAGES || ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
 | 
						|
            ESP_ERROR_CHECK( nvs_flash_erase() );
 | 
						|
            ret = nvs_flash_init();
 | 
						|
        }
 | 
						|
        ESP_ERROR_CHECK( ret );
 | 
						|
        wifi_init();
 | 
						|
        joystick_adc_init();
 | 
						|
        transmission_init();
 | 
						|
        system_led_init();
 | 
						|
 | 
						|
        ... ... ...
 | 
						|
        ... ... ...
 | 
						|
    } |