HM-10: Автономный беспроводной датчик освещённости со встроенным АЦП
Этот проект демонстрирует создание беспроводного датчика освещённости с использованием двух модулей HM-10 Bluetooth. Удалённый датчик подключает фоторезистор (LDR) к выводу PIOB периферийного HM-10. Центральный HM-10 связывается с удалённым модулем по Bluetooth для считывания значений освещённости.
Настройка HM-10
Два модуля были настроены на автоматическое подключение с помощью команды AT+IMME1, а периферийный модуль находится в MODE1.
Схема подключения
Ведущий/центральный HM-10 подключается к микроконтроллеру Arduino. Периферийный/ведомый HM-10 подключается следующим образом:
LDR (фоторезистор) подключён к PIOB
+5V на VCC
+3.3V подаётся на цепь LDR
Питание от адаптера на макетной плате (или от батареи)
Скетч Arduino
Реализация проста. Скетч отправляет команду AT+ADCB? для запроса показания напряжения с вывода PIOB удалённого HM-10.
// Sketch: HM-10_Example_04A_RemoteLightSensor
//
// Master HM-10
// Pins
// BT VCC to Arduino 5V out.
// BT GND to GND
// Arduino D8 (ASS RX) - BT TX no need voltage divider
// Arduino D9 (ASS TX) - BT RX through a voltage divider
//
// Remote HM-10
// HM-10 vcc to +5V
// HM-10 GND to GND
// HM-10 PIOB to LDR/CDS
#include <AltSoftSerial.h>
AltSoftSerial BTSerial;
char c=' ';
char reply[30];
int pos = 0;
void setup()
{
Serial.begin(9600);
Serial.print("Sketch: "); Serial.println(__FILE__);
Serial.print("Uploaded: "); Serial.println(__DATE__);
Serial.println(" ");
Serial.println("The HM-10s should be set for auto connect");
Serial.println("The remote HM-10 should be set for MODE1");
BTSerial.begin(9600);
Serial.println("BTserial started at 9600");
Serial.println(" ");
}
void loop()
{
BTSerial.print("AT+ADCB?");
delay(500);
pos = 0;
while ( BTSerial.available() )
{
c = BTSerial.read();
reply[pos] = c;
pos++;
}
reply[pos] = '\0';
Serial.print("Reply = "); Serial.println(reply);
delay (3000);
}
Результат и применение
Монитор последовательного порта отображает показания АЦП с удалённого датчика. Пользователи могут расширить эту базовую реализацию дополнительной функциональностью, например, активацией предупреждающих светодиодов при изменении условий освещённости.
Примечание
Оригинальная статья: HM-10 Stand-Alone Remote Light Sensor (Martyn Currey)