j'ai fait un petit test sur l'esp32 pour mettre la puissance mini tout le temps sauf à l'envoi de la trame.
j'ai bien une bascule de la puissance, affichage dans le serial monitor:
mise en place de la puissance à fond (coef 80):
16:44:45.945 -> Puissance d'émission (dBm) (20 lors de l'émission de la trame): 19.50
puis émission de la trame, puis réduction de la puissance (coef 8):
16:44:45.945 -> Puissance d'émission (dBm) (doit être minimale en dehors de l'émission de la trame): 2.00
par contre aucun moyen de vérifier la conso car cet esp32 me sert de récepteur et pas de balise...
sur l'esp01, j'ai fait pareil, mais en fait je note aucune différence à la conso... mais je n'ai pas trouvé de fonction pour afficher la puissance, juste une pour la positionner donc je ne sais pas si elle baisse ou pas en fait.
au démarrage de la balise je positionne la puissance au mini plutôt qu'au maxi du coup
pour esp01
Code:
WiFi.setOutputPower(0.0); // max 20.5dBm
ou esp32 avec vérif
Code:
// mini 8*0.25=2
ESP_ERROR_CHECK ( esp_wifi_set_max_tx_power(8));
// vérifier la puissance d'émission
ESP_ERROR_CHECK(esp_wifi_get_max_tx_power(&P1));
Serial.print("Puissance d'émission (dBm) (doit être minimale en dehors de l'émission de la trame): ");Serial.println(P1*0.25);
puis juste avant l'envoi de la trame:
Code:
//On envoie la trame
#if CARTE == 'esp01'
//puissance max
WiFi.setOutputPower(20.0); // max 20.5dBm
wifi_send_pkt_freedom(beaconPacket, to_send, 0);
//puissance min
WiFi.setOutputPower(0.0); // max 20.5dBm
#elif CARTE == 'esp32'
//puissance max
ESP_ERROR_CHECK ( esp_wifi_set_max_tx_power(80));
// vérifier la puissance d'émission
ESP_ERROR_CHECK(esp_wifi_get_max_tx_power(&P1));
Serial.print("Puissance d'émission (dBm) (20 lors de l'émission de la trame): ");Serial.println(P1*0.25);
//envoi
ESP_ERROR_CHECK(esp_wifi_80211_tx(WIFI_IF_AP, beaconPacket, to_send, true));
//puissance min
ESP_ERROR_CHECK ( esp_wifi_set_max_tx_power(8));
// vérifier la puissance d'émission
ESP_ERROR_CHECK(esp_wifi_get_max_tx_power(&P1));
Serial.print("Puissance d'émission (dBm) (doit être minimale en dehors de l'émission de la trame): ");Serial.println(P1*0.25);
#else
#error "définition de carte invalide"
#endif
pour ceux qui veulent tester, moi je ne peux pas approfondir ce côté des choses...