SparkFun ESP8266 Thing: подключение датчика движения

Стоит такая задача: подключить датчик движения к микроконтроллеру ESP8266, который будет в свою очередь как-нибудь реагировать на движение в поле видимости датчика (в моем примере он будет мигать светодиодом на плате). В качестве датчика движения я буду использовать вот такой PIR сенсор. Про свою ESP8266 The Thing от SparkFun я уже писал, например, здесь: настройка IDE и прошивка. Мне повезло, и мой PIR сенсор работает от 3,3 В, поэтому его можно запитать прямо от платы. Встречаются очень похожие сенсоры, где регулятор напряжения на входе принимает минимум 5 В. В таком случае можно пустить питание прямо на выход регулятора, минуя его (это описано, например, здесь или здесь), потому что сама плата питается от 3,3 В (ну или использовать отдельное питание для PIR сенсора).
Подключение выглядит довольно просто: контакты питания и землю PIR сенсора подключаем к выходам VIN (при подключенной батарейке на него выдается 3,7 В) и GND платы ESP8266 The Thing соответственно. Выходной контакт PIR сенсора я подключил к GPIO12 платы. В итоге все в сборе у меня выглядит вот так (надо бы обзавестись макетной платой, но пока руки не доходят купить, поэтому пользуюсь разъемами, которые были под рукой):
Код, который я использовал для тестирования, тоже очень простой: надо настроить пин, котрый управляет светодиодом, на выход (у меня это пин номер 5), пин, к которому мы подключили выход сенсора, - на вход, и читать значения с последнего в цикле.
const int LED_PIN = 5;
const int DIGITAL_PIN = 12;
 
void setup( )
{
    pinMode( LED_PIN, OUTPUT );
    pinMode( DIGITAL_PIN, INPUT );
    
    digitalWrite( LED_PIN, HIGH );
    delay( 500 );
    digitalWrite( LED_PIN, LOW );
}
 
void loop( )
{
    if( digitalRead( DIGITAL_PIN ) == HIGH )
    {
        digitalWrite( LED_PIN, HIGH );
    }
    else
    {
        digitalWrite( LED_PIN, LOW );
    }
    yield( );
}
Если все подключено правильно, после прошивки плата зажигает светодиод, если сенсор регистрирует движение в своем поле видимости, и гасит, когда сенсор не видит движения на протяжении какого-то времени (это время а также чувствительность сенсора настраиваются прямо на плате сенсора с помощью двух потенциометров).

Комментариев нет :

Отправить комментарий