Bumuo ng Mga Random na Numero Gamit ang ESP32 at Arduino IDE

Bumuo Ng Mga Random Na Numero Gamit Ang Esp32 At Arduino Ide



Gamit ang ESP32 maaari tayong lumikha ng iba't ibang mga proyekto at gumawa ng mga natatanging produkto na makakalutas ng maraming problema. Ang ESP32 ay isang microcontroller board kaya gamit ang Arduino IDE programming functions makakalikha tayo ng kawili-wiling output. Ginagabayan ng araling ito kung paano makakabuo ng mga random na numero gamit ang ESP32 board.

Ano ang Random Numbers

Ang mga random na numero ay may malaking papel sa seguridad at pag-encrypt. Maaaring gumamit ka ng mga suhestyon sa password ng Google. Gumagana ito sa isang prinsipyo na sa paanuman ay katulad ng pagbuo ng mga random na numero.

Ang mga random na numero ay isang pagkakasunud-sunod ng mga numero na hindi mahulaan ng isa, at ito ay isang numero na pinili mula sa isang hanay ng mga numero.







Bakit Kailangan Namin ang mga Random na Numero

Mahalaga ang mga random na numero para sa mga cryptographic na operasyon, modernong computing at simulation. Nakakatulong din ang mga random na numero upang mapahusay ang seguridad ng computer. Narito ang ilang pangunahing aplikasyon ng mga random na numero:



  • Random na mga numero na ginagamit sa mga algorithm
  • Mga nilalamang nabuo ayon sa pamamaraan tulad ng mga random na larawan, pangalan at marami pang iba
  • Para sa mga simulation na hindi tiyak tulad ng pattern, dice shuffling at mga pattern ng panahon

Sa ngayon ay naiintindihan na natin ang mga pangunahing aplikasyon ng ESP32 random number generator, tingnan natin ang code at bumuo ng ilang random na numero.



Function na Bumuo ng Random na Numero sa ESP32

Ang ESP32 board ay naglalaman ng isang hardware random number generator na gumagamit ng function esp_random() .





esp_random() hindi tumatagal ng argumento at nagbibigay sa amin ng isang halaga na random na nabuo mula 0 hanggang UINT32_MAX (ito ang pinakamataas na halaga na maaaring iimbak ng isang unsigned int sa loob nito).

Tandaan : Isang bagay na dapat tandaan dito ay gumagana ang ESP32 hardware random number generator gamit ang WiFi at Bluetooth. Ang totoong random na numero ay mabubuo lamang kapag pareho ay pinagana. Kung ang dalawang ito ay hindi pinagana ang ESP32 ay maaari lamang bumuo ng a pseudo number . Para sa higit pang mga detalye, mangyaring suriin ang Espressif ESP32 Random Number Documentation .



Nakamamangha na impormasyon : Isang kawili-wiling impormasyon tungkol sa ESP32 hardware random number generator ay ang ESP32 ay nakapasa sa Dieharder Random Number Testsuite kapag ang isang sample ng data na 2GB ay kinuha gamit ang ESP32 kapag ang WiFi nito ay pinagana. Ang die harder ay isang pagsubok para sa random number generator.

Syntax
Narito ang syntax ng ESP32 function para sa random na numero:

esp_random ( )

Bumalik
Ang function na ito ay nagbabalik ng random na halaga sa pagitan ng 0 at UINT32_MAX.

Code para Bumuo ng Random na Numero

Buksan ang Arduino IDE at i-upload ang ibinigay na code sa ESP32 upang makabuo ng random na numero sa pagitan ng 0 at 4294967295 (maximum unsigned int value).

walang bisang setup ( ) {
Serial.magsimula ( 115200 ) ; /* Tinukoy ang Baud Rate */
}
walang laman na loop ( ) {
Serial.println ( '**********' ) ;
Serial.print ( 'Random na Numero=' ) ;
Serial.println ( esp_random ( ) ) ; /* Mag-print ng anumang random na numero mula sa 0 sa pinakamalaking unsigned int */
pagkaantala ( 2000 ) ; /* pagkaantala ng 2 sec */
}

Output
Pagkatapos mag-upload ng code, makikita natin ang output sa serial monitor. Dito makikita natin ang ESP32 na nakabuo ng dalawang magkaibang random na numero.

Code para Bumuo ng Random na Numero sa pagitan ng Tukoy na Saklaw

Ipagpalagay na kung ang ESP32 WiFi ay hindi pinagana, mayroong isang alternatibo sa pag-andar esp_random() . Magagamit natin ang Arduino random number generator function (random()) .

Gamit ang function na ito, maaari kaming bumuo ng anumang random na numero sa isang tinukoy na hanay.

Buksan ang Arduino IDE at mag-upload ng ibinigay na code na magbibigay sa amin ng random na numero sa pagitan ng 10-20.

walang bisang setup ( ) {
Serial.magsimula ( 115200 ) ; /* Tinukoy ang Baud Rate */
}
walang laman na loop ( ) {
Serial.println ( '**********' ) ;
Serial.print ( 'Random na Numero sa pagitan ng 10 at 20=' ) ; /* Mag-print ng anumang random na numero sa pagitan 10 at dalawampu */
Serial.println ( random ( 10 , dalawampu ) ) ;
pagkaantala ( 2000 ) ; /* pagkaantala ng 2 sec */
}

Output
Ang sumusunod na output ay makikita sa serial monitor: isang random na numero ang nabubuo tuwing 2 segundo.

Matagumpay naming nasaklaw ang mga function na ginamit ng ESP32 upang makabuo ng mga random na numero.

Konklusyon

Ang mga random na numero ay may malaking papel sa posibilidad at istatistika. Nakakatulong din ito sa pag-encrypt ng seguridad at mga pagpapatakbo ng cryptographic. Gagabayan ka ng araling ito sa pagbuo ng iba't ibang random na numero. Maaari din naming tukuyin ang isang hanay upang makakuha ng isang random na numero.