Стоит такая задача: подключить датчик движения к микроконтроллеру 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), пин, к которому мы подключили выход сенсора, - на вход, и читать значения с последнего в цикле.
Если все подключено правильно, после прошивки плата зажигает светодиод, если сенсор регистрирует движение в своем поле видимости, и гасит, когда сенсор не видит движения на протяжении какого-то времени (это время а также чувствительность сенсора настраиваются прямо на плате сенсора с помощью двух потенциометров).
Подключение выглядит довольно просто: контакты питания и землю PIR сенсора подключаем к выходам VIN (при подключенной батарейке на него выдается 3,7 В) и GND платы ESP8266 The Thing соответственно. Выходной контакт PIR сенсора я подключил к GPIO12 платы. В итоге все в сборе у меня выглядит вот так (надо бы обзавестись макетной платой, но пока руки не доходят купить, поэтому пользуюсь разъемами, которые были под рукой):
Код, который я использовал для тестирования, тоже очень простой: надо настроить пин, котрый управляет светодиодом, на выход (у меня это пин номер 5), пин, к которому мы подключили выход сенсора, - на вход, и читать значения с последнего в цикле.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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( ); } |
Комментариев нет :
Отправить комментарий