第1步:WiFi NodeMCU-32S ESP-WROOM-32

第2步:顯示
對于顯示器,在此程序集中,我們展示了如何使用I2C,該I2C允許僅通過兩根電線發(fā)送大量信息。
第3步:超聲波傳感器

我們解釋說HC-SR04是最常見的超聲波傳感器,廣泛用于Arduino,既便宜又容易找到。請記住,它可以測量的最小距離是2英寸,最大距離是4米。另一個細節(jié)是5伏特為其供電。
步驟4:連續(xù)蜂鳴器
步驟5:LEDs
有4個帶220歐姆電阻的彩色LED。
步驟6:組裝

HC-SR 04的主要細節(jié)是它具有電源,并使用兩個引腳,即觸發(fā)器和Echo,它們出現(xiàn)在源代碼中。
步驟7:庫
在此程序集中,我們使用了兩個庫:TM1637Display和Ultrasonic。 PDF文件包含兩個鏈接的下載地址:http://www.fernandok.com/2017/12/sensor-ultrassonico-com-esp32.html
步驟8:源代碼
在這一部分中,您可以看到有關(guān)項目操作的演示。在代碼中,我們已經(jīng)聲明了TM1637Display和Ultrasonic,其讀取范圍為250毫秒。這是選擇的時間,以避免數(shù)字快速變化。接下來,我們定義用于LED和蜂鳴器的引腳。我聲明了另一個變量“ unsigned int”,它將保存設(shè)備的距離。
//Biblioteca responsável para comunica??o com o display de 7 segmentos
#include
//Carrega a biblioteca do sensor ultrassonico
#include 《 ultrasonic.h》
#define INTERVALO_LEITURA 250 //(ms)
//defini??o dos PINOS que utilizaremos para os LEDS e o BUZZER
#define PIN_BLUE_LED 16
#define PIN_GREEN_LED 17
#define PIN_YELLOW_LED 18
#define PIN_RED_LED 19
#define PIN_BUZZER 21
//variável responsável por armazenar a distancia lida pelo sensor ultrass?nico
unsigned int distancia = 0;
傳感器和顯示
在此步驟中,我們定義用于控制超聲傳感器和顯示器的對象的引腳和構(gòu)造函數(shù)。
//conex?o dos pinos para o sensor ultrasonico
#define PIN_TRIGGER 4
#define PIN_ECHO 5
//Inicializa o sensor nos pinos definidos acima
Ultrasonic ultrasonic(PIN_TRIGGER, PIN_ECHO);
// Module connection pins (Digital Pins)
#define CLK 14
#define DIO 13
//Inicializa o display nos pinos definidos acima
TM1637Display display(CLK, DIO);
設(shè)置
在此功能中,我們以9600的速度初始化串行,配置引腳,然后配置顯示器的亮度。
void setup()
{
Serial.begin(9600);
configurarPinos();
//configura o brilho do display com valor máximo
display.setBrightness(0x0a);
Serial.println(“Setup.。.”);
}
引腳配置
在這里,我們將四個LED和蜂鳴器都設(shè)置為pinMode,均為OUTPUT,因為它們是輸出。
/*
CONFIGURA O MODOS DE CADA UM DOS PINOS QUE UTILIZAREMOS COMO SAIDA
*/
void configurarPinos()
{
pinMode(PIN_BLUE_LED, OUTPUT);
pinMode(PIN_GREEN_LED, OUTPUT);
pinMode(PIN_YELLOW_LED, OUTPUT);
pinMode(PIN_RED_LED, OUTPUT);
pinMode(PIN_BUZZER, OUTPUT);
}
回路
在“循環(huán)”功能中,我們進行了距離和延遲檢查,即讀取間隔。
void loop()
{
verificarDistancia();
delay(INTERVALO_LEITURA);
}
獲取距離
現(xiàn)在,我們要讀取傳感器計算出的當(dāng)前距離。
/*
FAZ A LEITURA DA DISTANCIA ATUAL CALCULADA PELO SENSOR
*/
int getDistance()
{
//faz a leitura das informacoes do sensor (em cm)
int distanciaCM;
long microsec = ultrasonic.timing();
// pode ser um float ex: 20,42 cm se declarar a var float
distanciaCM = ultrasonic.convert(microsec, Ultrasonic::CM);
return distanciaCM;
}
檢查距離
我們要檢查4位顯示屏上顯示的距離。然后,我們擦除4個LED并使蜂鳴器靜音。這種情況可用于許多應(yīng)用程序。
/*
VERIFICA A DISTANCIA ATUAL QUE O SENSOR ULTRASONIC ESTA LENDO
E EM SEGUIDA, IMPRIME O VALOR NO DISPLAY, E ACENDE O LED CORRESPONDENTE
*/
void verificarDistancia()
{
//recupera a distancia atual lida pelo sensor
distancia = getDistance();
//imprime no display o valor lido
display.showNumberDec(distancia);
//esse FOR tem como objetivo apagar todos os LEDS que estejam acesos.
for(int i=PIN_BLUE_LED; i《=PIN_RED_LED; i++)
{
digitalWrite(i, LOW);
}
//desliga o BUZZER
digitalWrite(PIN_BUZZER, LOW);
//caso a distancia lida seja menor ou igual a 5, tomaremos como uma distancia de perigo
//ent?o acenderemos o LED VERMELHO e ligaremos o BUZZER
if( distancia 《= 5 )
{
digitalWrite(PIN_RED_LED, HIGH);
digitalWrite(PIN_BUZZER, HIGH);
}
//caso a distancia seja maior que 5 e menor ou igual a 20,
//tomaremos como uma distancia de aten??o, e ligaremos o LED AMARELO
else if(distancia 《=20)
{
digitalWrite(PIN_YELLOW_LED, HIGH);
}
//caso a distancia seja maior que 20 e menor ou igual a 40,
//tomaremos como uma distancia segura, e ligaremos o LED VERDE
else if(distancia 《= 40)
{
digitalWrite(PIN_GREEN_LED, HIGH);
}
//para distancias maiores que 40, tomaremos como uma distancia sem perigo
//acenderemos o LED AZUL para indicar
else
{
digitalWrite(PIN_BLUE_LED, HIGH);
}
}
責(zé)任編輯:wv
-
超聲波傳感器
+關(guān)注
關(guān)注
18文章
626瀏覽量
38135 -
ESP32
+關(guān)注
關(guān)注
26文章
1197瀏覽量
21801
發(fā)布評論請先 登錄
哪些因素影響超聲波傳感器檢測范圍與精度
倍加福超聲波傳感器的選型攻略
ICU-30201:超遠距離超聲波飛行時間測距傳感器的卓越之選
通用型液位超聲波傳感器GPLUS:設(shè)計與應(yīng)用的絕佳之選
樂鑫科技ESP32-S3開發(fā)板+超聲波霧化,給智能魚缸整點美學(xué)氛圍
什么是超聲波原理的液位傳感器?
超聲波傳感器線圈:自動駕駛實現(xiàn)精確實時近距離感知的關(guān)鍵
無線超聲波測距傳感器:精準感知,開啟智能測距新時代
高頻超聲波傳感器:科技浪潮中的“隱形守護者”
微型超聲波傳感器:小身軀里的探測革命,開啟智能感知新維度
超聲波換能器:原理與多領(lǐng)域應(yīng)用解析
超聲波多功能氣象傳感器:精準感知,氣象監(jiān)測新利器
超聲波液位傳感器的應(yīng)用和原理,這回終于搞明白了!
超聲波局放傳感器:精準捕捉設(shè)備“隱疾”的科技之眼
帶超聲波傳感器的ESP32的制作
評論