Java - Conexion iot

 
Vista:

Conexion iot

Publicado por Juan (66 intervenciones) el 11/06/2020 09:54:48
Buenas, necesito aprender a realizar conexiones iot. Es decir, tengo un dispositivo independiente que realiza una determinada acción, y está fuera de mi red, y se comunica mediante una tarjeta sim. como podria ser por ejemplo un arduino.

tengo 2 conexiones.

la primera: el arduino manda la información del estado al servidor, esta si la se hacer, mediante un socket o conexión https, con los métodos get y post.

la segunda: el servidor envía una acción al arduino para que la realice. Es en esta donde necesito ayuda. se me ocurrió hacerlo con un socket, me conecto al servidor y a través de ese socket envío los datos al arduino. esto funciona, pero no es óptimo, o eso creo yo. porque el servidor tendría que mantener una conexión abierta por cada arduino que conecte, si conecto 100 arduinos son 100 hilos abiertos y así, por lo que el servidor trabaja constantemente aunque no se este enviando mensajes. quería preguntar a ver si alguno conoce alguna manera de comunicarse con los arduinos, ya que estos no tienen ip pública ni fija donde pueda localizarlos en la red.

Pregunto por este foro de java, porque no es un arduino, dije arduino para que me entendieran, pero es un procesador que se programa en java.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Conexion iot

Publicado por Tom (1630 intervenciones) el 11/06/2020 10:37:58
Asumo que cuando dices "sockets" te refieres a tcp/ip (sockets de tipo stream y conectados).
Tienes muchas formas de abordar el diseño ...
Imagino que si el arduino no tiene IP fija, es él quien tiene que conectarse al servidor (el arduino conoce la ip del server, pero el server no conoce la ip del arduino hasta que no recibe la conexión).

Por otra parte, no tienes por qué hacer "hilos", puedes usar Selector o AsynchronousSocketChannel o investigar un poco más.

Tampoco son tan problemáticos los hilos ... mientras no haya actividad no hay consumo de cpu.

Tampoco tienes por qué usar tcp/ip ... puedes usar udp y no necesitarás tener los sockets permanentemente conectados.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar