Generuj liczby losowe za pomocą ESP32 i Arduino IDE

Generuj Liczby Losowe Za Pomoca Esp32 I Arduino Ide



Za pomocą ESP32 możemy tworzyć różne projekty i tworzyć unikalne produkty, które mogą rozwiązać wiele problemów. ESP32 jest płytką mikrokontrolera, więc korzystając z funkcji programistycznych Arduino IDE możemy stworzyć ciekawe wyjścia. Ta lekcja pokazuje, jak można generować liczby losowe za pomocą płyty ESP32.

Co to są liczby losowe

Liczby losowe odgrywają ważną rolę w bezpieczeństwie i szyfrowaniu. Być może korzystałeś z sugestii haseł Google. Działa na zasadzie, która jest trochę podobna do generowania liczb losowych.

Liczby losowe to sekwencja liczb, których nie można przewidzieć, i jest to liczba wybrana ze zbioru liczb.







Dlaczego potrzebujemy liczb losowych

Liczby losowe są ważne dla operacji kryptograficznych, współczesnych obliczeń i symulacji. Liczby losowe pomagają również zwiększyć bezpieczeństwo komputera. Oto kilka głównych zastosowań liczb losowych:



  • Liczby losowe stosowane w algorytmach
  • Treści generowane proceduralnie, takie jak losowe obrazy, imiona i wiele innych
  • W przypadku symulacji, które są niedeterministyczne, takich jak wzór czy, tasowanie kostek i wzorce pogodowe

Skoro już rozumiemy podstawowe zastosowania generatora liczb losowych ESP32, przyjrzyjmy się kodowi i wygenerujmy kilka liczb losowych.



Funkcja do generowania liczby losowej w ESP32

Płyta ESP32 zawiera sprzętowy generator liczb losowych, który wykorzystuje tę funkcję esp_random() .





esp_random() nie przyjmuje żadnych argumentów i daje nam losowo wygenerowaną wartość od 0 do UINT32_MAX (jest to maksymalna wartość, jaką int bez znaku może w niej przechowywać).

Uwaga : Jedną rzeczą do zapamiętania jest to, że sprzętowy generator liczb losowych ESP32 działa z wykorzystaniem Wi-Fi i Bluetooth. Prawda Liczba losowa jest generowany tylko wtedy, gdy oba są włączone. Jeśli te dwa są wyłączone, ESP32 może generować tylko plik pseudonumer . Aby uzyskać więcej informacji, sprawdź Espressif ESP32 Dokumentacja liczb losowych .



Interesująca informacja : Ciekawą informacją na temat sprzętowego generatora liczb losowych ESP32 jest to, że ESP32 zdał egzamin Zestaw testów liczb losowych Dieharder gdy pobierana jest próbka danych o wielkości 2 GB za pomocą ESP32, gdy włączone jest WiFi. Die Harder to test generatora liczb losowych.

Składnia
Oto składnia funkcji ESP32 dla liczby losowej:

esp_random ( )

Powrót
Ta funkcja zwraca losową wartość z przedziału od 0 do UINT32_MAX.

Kod do generowania losowej liczby

Otwórz Arduino IDE i prześlij podany kod w ESP32, aby wygenerować losową liczbę z zakresu od 0 do 4294967295 (maksymalna wartość int bez znaku).

unieważnić konfigurację ( ) {
Serial.początek ( 115200 ) ; /* Szybkość transmisji zdefiniowana */
}
pusta pętla ( ) {
Serial.println ( '************' ) ;
Wydruk.seryjny ( 'Losowa liczba = ' ) ;
Serial.println ( esp_random ( ) ) ; /* Wydrukuj dowolną losową liczbę z 0 do największej unsigned int */
opóźnienie ( 2000 ) ; /* opóźnienie z 2 sek */
}

Wynik
Po przesłaniu kodu możemy zobaczyć dane wyjściowe na monitorze szeregowym. Tutaj widzimy, że ESP32 wygenerował dwie różne liczby losowe.

Kod do generowania liczby losowej z określonego zakresu

Załóżmy, że jeśli ESP32 WiFi nie jest włączone, istnieje alternatywa dla funkcji esp_random() . Możemy skorzystać z funkcji generatora liczb losowych Arduino (losowy()) .

Za pomocą tej funkcji możemy wygenerować dowolną liczbę losową z określonego przedziału.

Otwórz Arduino IDE i wgraj podany kod, który da nam losową liczbę z przedziału 10-20.

unieważnić konfigurację ( ) {
Serial.początek ( 115200 ) ; /* Szybkość transmisji zdefiniowana */
}
pusta pętla ( ) {
Serial.println ( '************' ) ;
Wydruk.seryjny ( „Losowa liczba między 10 a 20=” ) ; /* Wydrukuj dowolną losową liczbę pomiędzy 10 oraz dwadzieścia */
Serial.println ( losowy ( 10 , dwadzieścia ) ) ;
opóźnienie ( 2000 ) ; /* opóźnienie z 2 sek */
}

Wynik
Na monitorze szeregowym można zobaczyć następujące dane wyjściowe: co 2 sekundy generowana jest liczba losowa.

Z powodzeniem omówiliśmy funkcje, których ESP32 używał do generowania liczb losowych.

Wniosek

Liczby losowe odgrywają główną rolę w prawdopodobieństwie i statystyce. Jest również pomocny w szyfrowaniu bezpieczeństwa i operacjach kryptograficznych. Ta lekcja pomoże ci w generowaniu różnych liczb losowych. Możemy również zdefiniować zakres, aby uzyskać liczbę losową.