Search Code

ESP32 Упатство 18/55 - Детектирање на наклон користејќи ESP32 | SunFounder's ESP32 IoT Learning комплет

ESP32 Упатство 18/55 - Детектирање на наклон користејќи ESP32 | SunFounder's ESP32 IoT Learning комплет

Во ова упатство, ќе го користиме SunFounder ESP32 микроконтролерот за да создадеме едноставен проект кој детектира навалување користејќи прекинувач за навалување. Кога прекинувачот за навалување е активиран, LED-светилката ќе се исклучи, а кога е во исправена положба, LED-светилката ќе се вклучи. Овој проект не е само одличен вовед во работата со сензори за навалување, туку служи и како основа за различни роботски апликации. За детален визуелен водич, задолжително погледнете го видеото поврзано погоре (во видеото на 00:00).

прекинувач_за_навалување

Објаснување на хардверот

Примарните компоненти користени во овој проект вклучуваат ESP32 микроконтролер, прекинувач за навалување и LED-светилка. ESP32 е моќен микроконтролер со вграден Wi-Fi и Bluetooth, што го прави идеален за IoT апликации. Прекинувачот за навалување е едноставен уред кој содржи метална топка во внатрешноста на куќиште. Кога е навален, топката се движи и го прекинува колото, овозможувајќи ни да ја детектираме состојбата на навалување. LED-светилката визуелно ќе ја означува состојбата на навалување врз основа на состојбата на прекинувачот. Покрај овие компоненти, ќе користиме и отпорници за ограничување на струјата и за pull-down цели. Отпорникот од 220 оми поврзан со LED-светилката осигурува дека LED-светилката работи безбедно без да повлекува премногу струја. Отпорникот од 10k оми дејствува како pull-down за прекинувачот за навалување, осигурувајќи дека влезниот пин чита позната состојба кога прекинувачот не е активиран.

Детали од податочната листа

Производител SunFounder
Број на дел ESP32
Логички/IO напон 3.3 V
Напон на напојување 5 V
Излезна струја (по канал) 12 mA
Врвна струја (по канал) 40 mA
Насоки за PWM фреквенција 1 kHz
Прагови на влезна логика 0.8 V (ниско), 2.0 V (високо)
Пад на напон / RDS(on) / заситување 0.2 V
Термички граници 85 °C
Пакет ESP32 модул
Белешки / варијанти Вклучува Wi-Fi и Bluetooth можности

 

  • Осигурете соодветни вредности на отпорниците за да спречите оштетување на LED-светилката.
  • Чувајте ги жиците уредни за да избегнете кратки споеви.
  • Користете pull-down отпорници за да обезбедите стабилни читања од прекинувачот за навалување.
  • Тестирајте ги врските пред да го напојувате колото за да избегнете откажување на компонентите.
  • Проверете ја ориентацијата на прекинувачот за навалување за точна функционалност.

Инструкции за жици

ESP32-18_tile_wiring

За да ги поврзете компонентите, започнете со прекинувачот за навалување, кој нема поларитет, па може да се поврзе во било која насока. Поврзете еден пин од прекинувачот за навалување на 3.3V напојувањето, а другиот пин на пин 14 на ESP32. За да осигурите дека пин 14 чита позната состојба кога прекинувачот не е активиран, поврзете отпорник од 10k оми од истиот пин до земја. Потоа, земете ја LED-светилката и вметнете ја во breadboard-от со подолгата нога (анода) поврзана со отпорник од 220 оми. Поврзете го другиот крај на отпорникот на пин 26 на ESP32. Пократката нога (катода) на LED-светилката треба да биде поврзана на земја. Конечно, поврзете го пин за земја на ESP32 со земјата шина на вашиот breadboard и 3.3V пинот со напојувачката шина. Проверете ги сите врски двапати за да спречите кратки споеви или неточни читања. Ако ги следите овие чекори, треба да имате функционална поставка за сензор за навалување подготвена за програмирање.

Примери на код и објаснување

Кодот започнува со дефинирање на броевите на пиновите за прекинувачот за навалување и LED-светилката. Прекинувачот за навалување е поврзан на пин 14, а LED-светилката е поврзана на пин 26. Состојбата на прекинувачот за навалување се чува во променливата tiltState.


// Постави броеви на пинови
const int tiltPin = 14;  // Прекинувач за навалување
const int ledPin = 26;   // LED

// Променлива за чување на состојбата на навалување
int tiltState = 0;

Овој извадок ги прикажува доделувањата на пиновите и декларацијата на променливата што ќе ја следи состојбата на навалување. tiltPin е поставен како влез за читање на состојбата на прекинувачот. Во функцијата setup(), се иницијализира сериската комуникација и се поставуваат режимите на пиновите за прекинувачот за навалување и LED-светилката. Ова осигурува дека ESP32 може да чита влез од прекинувачот за навалување и соодветно да ја контролира LED-светилката.


void setup() {
  Serial.begin(115200);
  // Иницијализирај го пинот за навалување како влез
  pinMode(tiltPin, INPUT);
  // Иницијализирај го пинот за LED како излез
  pinMode(ledPin, OUTPUT);
}

Овој дел е клучен бидејќи ја поставува околината, овозможувајќи му на ESP32 ефикасно да комуницира и да го контролира излезот врз основа на состојбата на прекинувачот за навалување. Функцијата loop() континуирано ја проверува состојбата на прекинувачот за навалување. Ако прекинувачот е исправен, LED-светилката ќе се вклучи; ако е навален, LED-светилката ќе се исклучи. Тековната состојба се печати на серискиот монитор за дебагирање.


void loop() {
  // Читај ја состојбата на прекинувачот за навалување
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // Ако прекинувачот е исправен
  if (tiltState == HIGH) {
    // Вклучи LED
    digitalWrite(ledPin, HIGH);
  } else {
    // Исклучи LED
    digitalWrite(ledPin, LOW);
  }
}

Оваа јамка работи континуирано, овозможувајќи следење во реално време на состојбата на прекинувачот за навалување и соодветна контрола на LED-светилката. Излезот може да се набљудува на серискиот монитор, што го олеснува проверувањето на функционалноста.

Демонстрација / Што да очекувате

Откако сè е правилно поврзано и кодот е поставен, треба да видите дека LED-светлото се вклучува кога прекинувачот за навалување е исправен, а ќе се исклучи кога е навален. Оваа директна корелација помеѓу состојбата на навалување и одговорот на LED-светлото ефикасно ја прикажува функционалноста на прекинувачот за навалување. Вообичаени грешки вклучуваат осигурување дека жиците се правилно поврзани и проверка дека отпорниците се соодветно поставени за да се избегнат кратки споеви (во видеото на 12:00).

Временски ознаки на видеото

  • 00:00 Почеток
  • 1:44 Вовед во проектот
  • 2:49 Документација
  • 6:43 Објаснување на Arduino жиците
  • 10:39 Објаснување на Arduino кодот
  • 13:40 Избор на ESP32 плочка и COM порта во Arduino IDE
  • 15:22 Демонстрација на навалување на проектот

Images

ESP32-18_tile_wiring
ESP32-18_tile_wiring
tilt_switch
tilt_switch
ESP32-18_tile_schematic
ESP32-18_tile_schematic
817-ESP32 Tutorial 18/55- Arduino code for tilt sensor
Language: C++
// Set pin numbers
const int tiltPin = 14;  // Tilt Switch
const int ledPin = 26;   // LED

// Variable for storing the tilt status
int tiltState = 0;

void setup() {
  Serial.begin(115200);
  // Initialize the tilt pin as an input
  pinMode(tiltPin, INPUT);
  // Initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Read the state of the tilt switch
  tiltState = digitalRead(tiltPin);

  Serial.println(tiltState);
  // If the switch is upright
  if (tiltState == HIGH) {
    // Turn LED on
    digitalWrite(ledPin, HIGH);

  } else {
    // Turn LED off
    digitalWrite(ledPin, LOW);
  }
}

Resources & references

Files📁

No files available.