IoT, Android Things и облако. Часть 3
Давайте пропустим шаг 2 на некоторое время и сосредоточим наше внимание на шагах 3 и 4. На шаге 3 приложение Android IoT создает новый экземпляр драйвера Bmx280Sensor, используя имя вывода, к которому подключен датчик. Для Raspberry Pi 3 этим выводом является I2C1.
Кстати, если вы хотите узнать подробнее про продвижение в соц. сетях (SMM) смело переходите по ссылке ранее.
Прежде чем зарегистрировать слушателей, чтобы получить новые значения от сенсоров, необходимо зарегистрировать два разных слушателя, которые будут сообщать, когда сенсор подключен к Android Things. Данный сенсор BMP280 читает два физические параметры, поэтому он рассматривается как два сенсора. Наконец, есть код для регистрации значение слушателей:
private void registerSensors () {
manager.registerDynamicSensorCallback (new SensorManager.DynamicSensorCallback () {
@Override
public void onDynamicSensorConnected (Sensor sensor) {
if (sensor.getType () == Sensor.TYPE_AMBIENT_TEMPERATURE) {
manager.registerListener (tempListener, sensor,
SensorManager.SENSOR_DELAY_NORMAL)
} Else if (sensor.getType () == Sensor.TYPE_PRESSURE) {
manager.registerListener (pressListener, sensor,
SensorManager.SENSOR_DELAY_NORMAL)
}
}
});
}
Способ onDynamicSensorConnected вызывается, как только сенсор подключится к плате. В этот момент приложение может зарегистрировать двух слушателей, которые будут сообщать, когда с сенсора прочитаны новые значения.
Последний шаг — это чтение данных с сенсора:
private SensorEventListener tempListener = new SensorEventListener () {
@Override
public void onSensorChanged (SensorEvent event) {
// new value read
}
@Override
public void onAccuracyChanged (Sensor sensor, int accuracy) {}
};
private SensorEventListener pressListener = new SensorEventListener () {
@Override
public void onSensorChanged (SensorEvent event) {
// new value read
}
@Override
public void onAccuracyChanged (Sensor sensor, int accuracy) {}
};
Как вы уже догадались, в методе onSensorChanged приложение отправит новое значение в облако. На этом этапе вы можете протестировать приложение Android IoT и проверить, он читает данные сенсора. В любом случае, прежде чем использовать приложение, следует добавить разрешения в Manifest.xml:
<Uses-permission android: name = «com.google.android.things.permission.MANAGE_INPUT_DRIVERS» />
<Uses-permission android: name = «com.google.android.things.permission.MANAGE_SENSOR_DRIVERS» />
Настройка Ubidots для получения данных из приложения Android IoT
Этот шаг описывает, как настроить Ubidots на прием данных, поступающих из приложения Android Things. Прежде чем начать, нужно иметь бесплатный аккаунт Ubidots. Затем надо настроить устройство, которое мы представляем. Для получения дополнительной информации можете посмотреть статью как настроить Ubidots для проекта IoT.
Следующим шагом будет добавление переменных, которые будут хранить значения, присланные из приложения Android.
Это все! Все шаги, необходимые для настройки Ubidots, завершены. Мы можем сосредоточить внимание на последнем шаге передачи данных в облако.