Skocz do zawartości

ESP8266 oraz czujnik odległości - wybór oraz pomoc z odczytaniem danych


Pomocna odpowiedź

Napisano

Witam,

mam czujnik odległości E18-D80NK, który próbuję podpiąć do ESP8266. Podpiąłem go pod pin D4, oddzielne zasilanie z baterii. Program, który uruchamiam to

int OUT = D4;
 
void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(OUT, INPUT);

  Serial.begin(9600);
  Serial.println("Distance sensor test");
  Serial.println("");
}
 
void loop()
{
  digitalWrite(LED_BUILTIN, 1);
  delay(500);

  Serial.print(".");
  if(digitalRead(OUT) > 1)
  {
    Serial.println("\nObject detection: YES");
  }

  digitalWrite(LED_BUILTIN, 0);
  delay(500);
}

Czyli nic wymyślnego. Problem w tym, że nie odbieram żadnych danych z czujnika. Gdy dam jakiś obiekt przed nim to na diodzie led umieszczonym na nim świeci się na czerwono, czyli coś wykrył, jednak na D4 nic nie dostaję.

 

Drugi temat, powiązany z tym, to chciałbym zrobić czujnik parkowania w garażu. Do tego potrzebowałbym jakiś inny czujnik, pewnie analogowy, aby coś takiego osiągnąć.

Chcę osiągnąć coś podobnego do tego: 

 Jaki byłby najlepszy?

2022-10-26 12.45.00.jpg

2022-10-26 12.45.03.jpg

2022-10-26 12.45.15.jpg

(edytowany)

Być może pin wyjściowy trzeba "podciągnąć" do plusa lub masy?...jaki stan ma być jak wykryto przeszkodę?? 

I powiedz z łaski swojej co ten warunek robi?? 

if(digitalRead(OUT) > 1)

Ma być...

if(digitalRead(OUT) == 1)

 

Edytowano przez farmaceuta
17 minut temu, bklimczak napisał:

Podpiąłem go pod pin D4

A GND czujnika i ESP połączyłeś? Tak poza tym to czujnik ten wymaga zasilania 5V jaką baterią go zasilasz?

Nie jestem pewien czy ESP8266 toleruje 5V więc może przydałby się jakiś dzielnik napięcia na wejściu ESP.

Przeczytaj ten artykuł - zobacz.

tak, czytałem i na nim się opierałem.

Zasilanie (uziemienie, 5v) jest z baterii pięciowoltowych. Tak jak pisałem wcześniej - miernik wygląda, że się uruchamia, bo zaświeca się i gaśnie jego wbudowana dioda. Przewód OUTPUT (w moim przypadku czarny) wpiąłem do ESP8266 do pinu `D4`. A aplikacji wybrałem pin `D4` jako wejście i próbuję je odczytać.

Problem jaki jest to fakt, że zawsze odczytuję tam wartość wysoką.

dzięki @farmaceuta

zrobiłem to tak, że podpiąłem pod D0 i przrobiłem kod tak:

int OUT = D0;

int batch = 0;
 
void setup()
{
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(OUT, INPUT);

  Serial.begin(9600);
  Serial.println("Distance sensor test");
  Serial.println("");
}
 
void loop()
{
  batch++;
  digitalWrite(LED_BUILTIN, 1);
  delay(500);
  
  if (digitalRead(OUT) == HIGH) {
    Serial.print("x");
  } else {
    Serial.print(".");
  }

  digitalWrite(LED_BUILTIN, 0);
  delay(500);
  if (batch == 10) {
    Serial.println();
    batch = 0;
  }
}

i wygląda, że działa 🙂

no to druga część mojego pytania, @farmaceuta. Wiesz może jaki czujnik odległości będzie najlepszy do czujnika parkowania w garażu? Zasięg może mieć krótki (do 10m), ale żebym mógł z niego odczytać odległość w wersji analogowej? (np im bliżej obiekt to tym wyższa/niższa wartość sygnału).

Nie mam tu zupełnie doświadczenia więc proszę o radę 🙂

Jeśli chodzi o dalmierze laserowe to aby uzyskać taki zasięg potrzebna będzie odpowiednio dobrana optyka, samym modułem wątpię aby udało się uzyskać takie zasięgi. Po drugie 8266 ma jedno wejście analogowe o niezbyt dużej dokładności, nadaje się raczej do zgrubnych pomiarów, dalmierz jeśli będziesz kupował to na szynę i2c nie jest to aż takie trudne do oprogramowania myślę że z czasem dasz z naszą pomocą radę. 

2 minuty temu, _LM_ napisał:

O bogowie Olimpu jakie ceny!?

Pewnie można gdzieś taniej dostać, nie sprawdzałem ale to chiński produkt więc mogą być na ali. Fakt, ceny z kosmosu.

27 minut temu, ethanak napisał:

@_LM_ Da się bez wymyślnej optyki samym modułem - tu masz kilka pasujących. Dokładność 6cm powinna wystarczyć.

https://botland.com.pl/443-skanery-laserowe?order=product.price.asc

Nie wiem dlaczego analogowo bo to trochę bez sensu - @bklimczak możesz napisać dlaczego analogowy a nie UART/I2C?

Nie wiem, wydawało mi się, ze analogowy powinien wystarczyć. Dlatego pytam na forum 🙂 

A ten moduł  hc-sr04 nie dałby radę? Wychodzi około 13 zł z uchwytem zamiast ponad stówkę. 

3 minuty temu, bklimczak napisał:

A ten moduł  hc-sr04 nie dałby radę?

Zasięg Cię ogranicza ja sprawdziłem działanie na 4m ale te 10 to niema szans, poza tym ten moduł niema wyjścia analogowego jak chciałeś a za to absorbuje jeden lub dwa gpio (zależnie od biblioteki).

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...