Mi Motion Sensor 2 - Xiaomi Mijia BLE Sensor

 Удалось подключить к модулю Esp32 по Bluetooth Mi Motion Sensor 2.


1. Данные передаваемые датчиком зашифрованы. Для получения доступа к коду сначала регистрируем датчик в официальной среде Xiaomi.

- Установим модифицированный Mi Home на смартфоне. (Хотя можно и родное приложение)

- Регистрируемся и подключаем датчик к системе для доступа к настройкам через установленное приложение. В облаке Xiaomi формируется ключ привязки датчика. 

описание процесса можно посмотреть тут.

Так как шлюза у меня нет, то полноценного подключения не получиться, оно и не надо!

- Для получения ключа воспользуемся специальной программой -  Cloud Tokens Extractor

И вот он заветный ключик - BLE KEY

2. Подключаем датчик к прошивке WiFi-IoT.

Включаем опцию BT HUB для приема данных с разнообразных Bluetooth датчиков.

Опция очень тяжелая и рекомендую Telegpsmm и MQTT одновременно не включать.

В настройках модуля во вкладке Edit Xiaomi keys вписываем полученный ранее ключ.

И ручками вводим MAC нашего датчика. Теперь модуль видит данные передаваемые по Bluetooth.

3. Программируем определение срабатывания датчика.

Включаем опцию Конструктор кода для программирования.

 И на сайте конструктора под звездочкой вставляем следующую программу :

===============================================================

void myBleHub(uint8_t *mac,uint8_t ad_type ,uint8_t len,uint8_t *data){
  if(mac[4]==0xAA && mac[5]==0xBB) // AA и BB - последние цифры MAC адреса.
  {
      if(ad_type==0x16) // принимаем Service Data - 16-bit UUID
      {           
           if(len==26)
           {
             digitalWrite(6,1); //  устанавливаем gpio 6 
           }
      }    
   }
}
void startfunc(){cb_bthub_funs=myBleHub;
}

void timerfunc(uint32_t  timersrc) {// выполнение кода каждую 1 секунду
if(timersrc%30==0){// выполнение кода каждые 30 секунд
}
 delay(1000); // обязательная строка, минимальное значение для RTOS систем- 10мс
}
void webfunc(char *pbuf) {
os_sprintf(HTTPBUFF,"Контроль движения"); // вывод текста на главной модуля
}

================================================================

Сохраняем и компилируем прошивку.


Вот и все. Теперь при определении датчиком движения на установочном Gpio6 будет появляться 1. Ну а дальше .......

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

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