Generați numere aleatorii folosind ESP32 și Arduino IDE

Generati Numere Aleatorii Folosind Esp32 Si Arduino Ide



Folosind ESP32 putem crea diferite proiecte și realiza produse unice care pot rezolva mai multe probleme. ESP32 este o placă de microcontroler, așa că folosind funcțiile de programare IDE Arduino putem crea rezultate interesante. Această lecție îndrumă cum se pot genera numere aleatorii folosind placa ESP32.

Ce sunt numerele aleatorii

Numerele aleatoare joacă un rol major în securitate și criptare. Este posibil să fi folosit sugestiile de parole Google. Funcționează pe un principiu care este oarecum similar cu generarea de numere aleatorii.

Numerele aleatoare sunt o succesiune de numere pe care nu o putem prezice și este un număr care este ales dintr-un set de numere.







De ce avem nevoie de numere aleatorii

Numerele aleatoare sunt importante pentru operațiunile criptografice, calculul modern și simulări. Numerele aleatorii ajută, de asemenea, la îmbunătățirea securității computerului. Iată câteva aplicații principale ale numerelor aleatoare:



  • Numere aleatorii utilizate în algoritmi
  • Conținut generat procedural, cum ar fi imagini aleatorii, nume și multe altele
  • Pentru simulări care nu sunt deterministe, cum ar fi modelul, amestecarea zarurilor și modelele vremii

Deoarece acum înțelegem aplicațiile de bază ale generatorului de numere aleatoare ESP32, vom arunca o privire asupra codului și generăm câteva numere aleatoare.



Funcție de generare a numărului aleatoriu în ESP32

Placa ESP32 conține un generator hardware de numere aleatorii care utilizează funcția esp_random() .





esp_random() nu acceptă niciun argument și ne oferă o valoare generată aleatoriu de la 0 la UINT32_MAX (este valoarea maximă pe care o poate stoca un int nesemnat în interiorul ei).

Notă : Un lucru de reținut aici este că generatorul de numere aleatoare hardware ESP32 funcționează folosind WiFi și Bluetooth. Adevăratul Număr aleatoriu este generat numai când ambele sunt activate. Dacă aceste două sunt dezactivate, ESP32 poate genera doar a pseudo număr . Pentru mai multe detalii, vă rugăm să verificați Documentația cu numere aleatoare Espressif ESP32 .



Informații interesante : O informație interesantă despre generatorul de numere aleatoare hardware ESP32 este că ESP32 a trecut de Dieharder Random Number Testsuit când se prelevează un eșantion de date de 2 GB utilizând ESP32 când WiFi-ul său este activat. Die harder este un test pentru generatorul de numere aleatorii.

Sintaxă
Iată sintaxa funcției ESP32 pentru numărul aleatoriu:

esp_random ( )

Întoarcere
Această funcție returnează o valoare aleatorie între 0 și UINT32_MAX.

Cod pentru a genera un număr aleatoriu

Deschideți Arduino IDE și încărcați codul dat în ESP32 pentru a genera un număr aleatoriu între 0 și 4294967295 (valoare int maximă fără semn).

anulează configurarea ( ) {
Serial.begin ( 115200 ) ; /* Rata baud definită */
}
buclă goală ( ) {
Serial.println ( '**********' ) ;
Serial.print ( 'Număr aleatoriu= ' ) ;
Serial.println ( esp_random ( ) ) ; /* Tipăriți orice număr aleatoriu de la 0 la cel mai mare int nesemnat */
întârziere ( 2000 ) ; /* întârziere de 2 sec */
}

Ieșire
După încărcarea codului, putem vedea rezultatul pe monitorul serial. Aici putem vedea că ESP32 a generat două numere aleatoare diferite.

Cod pentru a genera un număr aleatoriu între intervalul specific

Să presupunem că dacă ESP32 WiFi nu este activat, atunci există o alternativă la funcționare esp_random() . Putem folosi funcția de generator de numere aleatoare Arduino (Aleatoriu()) .

Folosind această funcție, putem genera orice număr aleatoriu dintr-un interval specificat.

Deschideți Arduino IDE și încărcați un cod dat care ne va oferi un număr aleatoriu între 10-20.

anulează configurarea ( ) {
Serial.begin ( 115200 ) ; /* Rata baud definită */
}
buclă goală ( ) {
Serial.println ( '**********' ) ;
Serial.print ( „Număr aleatoriu între 10 și 20= ” ) ; /* Tipăriți orice număr aleatoriu între 10 și douăzeci */
Serial.println ( Aleatoriu ( 10 , douăzeci ) ) ;
întârziere ( 2000 ) ; /* întârziere de 2 sec */
}

Ieșire
Următoarea ieșire poate fi văzută pe monitorul serial: un număr aleator este generat la fiecare 2 secunde.

Am acoperit cu succes funcțiile pe care ESP32 le folosea pentru a genera numere aleatorii.

Concluzie

Numerele aleatoare joacă un rol major în probabilitate și statistică. De asemenea, este util în criptarea securității și operațiunile criptografice. Această lecție vă va ghida pentru a genera diferite numere aleatorii. De asemenea, putem defini un interval pentru a obține un număr aleatoriu.