Internet de las cosas de Newland: Android realiza la función de puerta de enlace: se conecta a la plataforma en la nube y carga los datos del sensor, obtiene las instrucciones del actuador y las ejecuta. Preguntas reales concurso nacional 2022

Tabla de contenido

1. Requisitos de la tarea

2. Entorno de desarrollo

3. La puerta de enlace está en línea

4. Carga de datos y entrega de pedidos

Cinco, ideas de análisis de comandos JSON

6. Resumen 


1. Requisitos de la tarea

        El efecto que lograremos es: la tableta de desarrollo de Android se comunica con la placa Lora a través del puerto serie con cable, analiza los datos de la placa Lora y carga los datos en la plataforma de la nube en tiempo real.


2. Entorno de desarrollo

        1. Estudio de Android

        2. Protocolo de acceso al dispositivo TCP

                        Descarga del protocolo de acceso TCP de Newland Cloud Platform

        3. Familiarizarse con las reglas de encapsulación y análisis de texto de los datos JSON

                       La encapsulación de los datos JSON del protocolo TCP/HTTP en JAVA ~ tres minutos para entender
        4. Domine la comunicación TCP de Android


3. La puerta de enlace está en línea

        Primero descargue "Newland Cloud Platform TCP Access Protocol" para ver el proceso de acceso:

        A través del proceso de acceso, podemos ver que el dispositivo está conectado a través del protocolo TCP e interactúa con la plataforma a través de paquetes de datos.

        Necesitamos ingresar al sitio web oficial de Newland Cloud Platform para registrar una cuenta con anticipación y solicitar una clave (clave de transmisión del dispositivo) en la configuración de desarrollo.

         A través de la revisión, necesitamos completar la comunicación con la placa de desarrollo y leer los datos de temperatura y humedad transmitidos por la placa de desarrollo en tiempo real, como los datos del sensor que necesitamos cargar.

        Para crear un nuevo proyecto en la plataforma en la nube de Newland, más adelante se necesitará información como la identificación del dispositivo y las claves de transmisión.

        Cree nuevos sensores y actuadores, personalice los nombres de identificación y otra información.

        Cree un programa Android, importe el paquete SerialPort y configure los permisos de red.

<uses-permission android:name="android.permission.INTERNET"/>

        Luego, debemos configurar el puerto serie e inicializar el escucha del puerto serie:

    SerialPortEx serialPortEx=new SerialPortEx("COM0",9600);
    //配置好通信串口 并协商好波特率
    String value="";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        serialPortEx.Open();
        serialPortEx.setOnDataReceiveListener(new OnDataReceiveListener() {
            @Override
            public void onDataReceive(byte[] bytes, int i) {
                //数据接收函数
                value=new String(bytes);
            }
        });
    }

        Necesitamos hacer ping a la dirección para obtener la última IP:

        Luego, conéctese a la plataforma en la nube de Newland (puerto 8600 o 8601) y llame a la función de cliente para conectarse.

        Podemos ver la información de retorno, el código de estado es 0 significa que la conexión es exitosa y el programa inicia automáticamente la función de latido para mantener la conexión.

        En este punto, revisamos la plataforma en la nube de Newland y encontramos que la puerta de enlace está en línea.


4. Carga de datos y entrega de pedidos

        Activamos la función de datos en tiempo real de la plataforma en la nube y dejamos que muestre datos en tiempo real.

        En el monitor de puerto serie, procese parcialmente los datos y luego informe los datos recibidos cuando se reciban los datos del puerto serie.

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        serialPortEx.Open();
        serialPortEx.setOnDataReceiveListener(new OnDataReceiveListener() {
            @Override
            public void onDataReceive(byte[] bytes, int i) {
                //数据接收函数
                receive=new byte[i];
                System.arraycopy(bytes,0,receive,0,i);
                value=new String(receive);//去除多余数据
                System.out.println("串口接收数据:"+value);
                report(value);//调用上报数据函数
            }
        });

        client();//调用连接函数连接至云平台
    }

         Conectamos la tableta de desarrollo industrial Android a través del asistente de depuración del puerto serie para simular la comunicación con la placa Lora.

        Como se muestra en la figura, el programa de Android recibió los datos de temperatura simulada que le enviamos, los informó a la plataforma en la nube y obtuvo la respuesta del informe. El código de estado es 0, lo que significa que el informe fue exitoso. 

        En este momento, ingresamos a la plataforma en la nube y podemos ver en los datos en tiempo real que la temperatura es de 25,6 °C.

         El mecanismo de mensajes de monitoreo del programa también se abre después de que el programa se conecta con éxito, y el mensaje recibido se analiza y procesa, de modo que la operación de la plataforma en la nube en el actuador se puede capturar y ejecutar.

        A continuación, encenderemos las luces en la plataforma en la nube y verificaremos la información del mensaje relevante de la información de depuración.

        El programa ha respondido a los comandos pertinentes y ha emitido la información de que la luz está encendida. A continuación, apagaremos la luz.

        El programa aún puede analizar y procesar rápidamente; hasta ahora, la tarea de comunicación de la puerta de enlace de Android IoT en la plataforma en la nube de Newland se ha completado con éxito.

Cinco, ideas de análisis de comandos JSON

         El método de análisis de Json en Android es diferente al de IDEA. Android nos proporciona la clase JSONObject, que puede proporcionarnos un análisis conveniente. Primero verificamos los formatos relevantes en el protocolo de acceso del dispositivo.

        El siguiente código es mi método de análisis para su referencia.

JSONObject jsonObject=new JSONObject(down);
apitag=jsonObject.getString("apitag");//获取apitag
if(apitag.equals("m_lamp"))
{
    if(jsonObject.getInt("data")==1)
        System.out.println("照明灯开启");
    else if(jsonObject.getInt("data")==0)
        System.out.println("照明灯关闭");
}

6. Resumen 

        Este artículo es para explicar las ideas relevantes. Los puntos clave y difíciles de esta pregunta se encuentran en la comunicación 485, la formulación del protocolo, el informe de datos de la plataforma en la nube y la emisión de comandos. Se debe acumular el conocimiento relevante para completar con éxito. Los amigos que necesiten el código fuente pueden enviarme un mensaje privado , si tienen alguna otra pregunta, dejen un mensaje en el área de comentarios.

        

Supongo que te gusta

Origin blog.csdn.net/qq_39724355/article/details/127135187
Recomendado
Clasificación