Este documento describe cómo conectar un dispositivo de hardware Google Android Things a Alibaba Cloud IoT Platform mediante un proyecto de monitoreo de calidad del aire en interiores como ejemplo.
Hardware
-
Lista de dispositivos para el proyecto
Este proyecto requiere los siguientes dispositivos de hardware.
Dispositivo
Imagen
Observaciones
NXP Pico i.MX7D
tarjeta de desarrollo

Basado en Android Things 1.0.
Para más información, consulte la Guía del desarrollador para NXP Pico i.MX7D I/O.
NotaPuede usar una Raspberry Pi como alternativa. Para más información, consulte Remotely control a Raspberry Pi server.
DHT12
sensor de temperatura y humedad

Utiliza el protocolo I2C para la comunicación de datos.
ZE08-CH2O
sensor de detección de formaldehído

Utiliza el protocolo UART para la comunicación de datos.
-
Diagrama de cableado

Conecte el pin SCL (señal de reloj) y el pin SDA (datos) del sensor DHT12 a los pines SCL y SDA correspondientes del bus I2C en la tarjeta de desarrollo.
Conecte el pin TXD (transmisión de datos) del sensor ZE08-CH2O al pin RXD (recepción de datos) de la tarjeta de desarrollo, y el pin RXD del sensor al pin TXD de la tarjeta.
Crear un producto y un dispositivo
Inicie sesión en la consola de IoT Platform.
-
Cree un producto.
-
En la página Instance Overview, localice la instancia objetivo y haga clic en su nombre para ir a la página Instance Details.
ImportanteLas instancias Enterprise Edition solo están disponibles en las regiones Japan (Tokyo). Si su instancia se encuentra en otra región, omita este paso.
Inicie sesión en la consola de IoT Platform. En el panel de navegación izquierdo, haga clic en Instance Overview para ver las instancias Enterprise Edition de la región actual y su estado.
En la página Instance Overview, consulte el estado de ejecución de las instancias Enterprise Edition en la región actual, incluido el tipo de instancia (Standard), el entorno (entorno de producción/entorno de prueba), el número de dispositivos en línea y la información de cuota de TPS para mensajes de subida y bajada.
En el panel de navegación izquierdo, elija Device Management > Products.
En la página Products, haga clic en Create Product. Para más información, consulte Create a product.
-
-
Defina un modelo TSL.
Una vez creado el producto, haga clic en Define TSL Model.
En la página Product Details, dentro de la pestaña Define Feature, haga clic en .
-
Agregue las siguientes propiedades.
Propiedad
Identificador
Tipo
Valor
Descripción
Temperatura
temperature
float
-50–100
Datos de temperatura recopilados por el sensor de temperatura y humedad DHT12.
Humedad
humidity
float
0–100
Datos de humedad recopilados por el sensor de temperatura y humedad DHT12.
Concentración de formaldehído
ch2o
double
0–3
Concentración de formaldehído recopilada por el sensor ZE08-CH2O.
Haga clic en Publish para publicar el modelo TSL.
-
Cree un dispositivo.
En la página Device, haga clic en Add Device para crear un dispositivo bajo un producto. Para más información, consulte Create a single device.
Desarrollar el dispositivo Android Things
-
Use Android Studio para crear un proyecto de Android Things y agregue el permiso de internet al archivo de manifiesto.
<uses-permission android:name="android.permission.INTERNET" /> -
En el archivo Gradle, agregue la dependencia
eclipse.paho.mqtt.implementation 'org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.0' -
Configure el dispositivo para leer datos del sensor de temperatura y humedad DHT12 mediante I2C.
private void readDataFromI2C() { try { byte[] data = new byte[5]; i2cDevice.readRegBuffer(0x00, data, data.length); // check data if ((data[0] + data[1] + data[2] + data[3]) % 256 != data[4]) { humidity = temperature = 0; return; } // humidity data humidity = Double.valueOf(String.valueOf(data[0]) + "." + String.valueOf(data[1])); Log.d(TAG, "humidity: " + humidity); // temperature data if (data[3] < 128) { temperature = Double.valueOf(String.valueOf(data[2]) + "." + String.valueOf(data[3])); } else { temperature = Double.valueOf("-" + String.valueOf(data[2]) + "." + String.valueOf(data[3] - 128)); } Log.d(TAG, "temperature: " + temperature); } catch (IOException e) { Log.e(TAG, "readDataFromI2C error " + e.getMessage(), e); } } -
Configure el dispositivo para leer datos del sensor de detección de formaldehído Ze08-CH2O mediante UART.
try { // data buffer byte[] buffer = new byte[9]; while (uartDevice.read(buffer, buffer.length) > 0) { if (checkSum(buffer)) { ppbCh2o = buffer[4] * 256 + buffer[5]; ch2o = ppbCh2o / 66.64 * 0.08; } else { ch2o = ppbCh2o = 0; } Log.d(TAG, "ch2o: " + ch2o); } } catch (IOException e) { Log.e(TAG, "Ze08CH2O read data error " + e.getMessage(), e); } -
Conecte el dispositivo a IoT Platform y reporte los datos.
/* Payload format { "id": 123243, "params": { "temperature": 25.6, "humidity": 60.3, "ch2o": 0.048 }, "method": "thing.event.property.post" } */ MqttMessage message = new MqttMessage(payload.getBytes("utf-8")); message.setQos(1); String pubTopic = "/sys/${YourProductKey}/${YourDeviceName}/thing/event/property/post"; mqttClient.publish(pubTopic, message);
Para obtener el código de muestra completo, descargue el proyecto desde Alibaba Cloud IoT en GitHub.
Ver datos en tiempo real
Una vez que el dispositivo se inicie, inicie sesión en la consola de IoT Platform. vaya a la página Device Details. En la pestaña Status, consulte los datos de propiedad en tiempo real del dispositivo.