Ayuda para elegir una placa estilo raspberry

Rukko

Buenas,

Unos amigos y yo tenemos un proyecto en mente, no entraré en muchos detalles porque estamos aún desarrollando la idea, pero básicamente sería algo así:

Un conjunto de sensores recoge información para la placa y esta la procesa mediante DLL en C# (este punto no es flexible, de aquí el problema) que usa librerías de Windows. Luego la placa debería ser capaz de almacenar esta información en local (MySQL o .json o similar) y enviarla a un servidor de tanto en tanto. Y tener un montón de placas con sensores repartidas por una ciudad, por ejemplo.

Hemos estado estudiando una Raspberry PI 3 con Windows 10 IoT Core y parece que no nos va a servir (seguimos indagando) por su incapacidad de no depender de un PC remoto.

¿Alguien tiene experiencia en estos temas? ¿Alguna placa que admita una versión NO IoT de Windows?

AikonCWD

Es más fácil eliminar la DLL en C# de la ecuación, así podrás optar por cualquier micro-ordenador barato basado en ARM. Los datos los recoges del sensor y un pequeño script en python procesa los datos y llama a un INSERT en SQL. Es super sencillo hacerlo, no entiendo la necesidad de usar una DLL en C#.

Por otra parte... si las placas las tienes repartidas por la ciudad... como le metes alimentación eléctrica? Y lo más importante... como haces la conexión al servidor SQL remoto sin internet?

2 respuestas
ESL_Kaiser
#2AikonCWD:

Es más fácil eliminar la DLL en C# de la ecuación

pero ese punto no es flexible u know ?

Entiendo que para este tipo de proyectos arduino sería lo suyo no? aunque comparto las dudas de aikon

2 respuestas
AikonCWD

#3 Los sensores van conectados a los pines GPIO, por SPI (o cualquier otro formato) recoges los valores que devuelve un sensor, trabajas los valores (parses, condiciones, etc...) y los almacenas o los envías a un lugar remoto.

Python tiene la librería para trabajar con el GPIO, recoger los datos que devuelva el sensor es cosa de 1 línea de código. Luego simplemente te conectas a un servidor remoto y haces el INSERT dentro del SQL (por ejemplo). Sustituir la DLL en C# por un servicio/script en python es absolutamente trivial.

El problema no lo tiene ahí, lo tiene en como va a alimentar una placa en mitad de la ciudad y como le va a dotar de conectividad para poder enviar los datos a un servidor remoto...

1 respuesta
ESL_Kaiser

#4 con baterias externas de una capacidad alta, sería lo suyo. en el caso de la pi3, que tiene wifi, se podría conectar a un punto de acceso de un dispositivo móvil, no? pero para estar un rato claro, no todo el día

Rukko

#2 #3 La librería de C# obligatoria es la única que permite leer los datos de esos sensores, que van conectados a la placa por USB, y son muy "únicos". Si este punto fuera flexible, no estaría haciendo esta pregunta, sería tan fácil como meterle cualquiera de las imágenes de linux disponibles y pista :qq: !

Estamos viendo que Windows 10 IoT core permite más cosas de las que pensábamos, pero no es la solución más óptima. :f5: La cuestión es que debe ser capaz, aparte de la lectura y envío de datos, de ejecutar una serie de funciones y métodos. Aparte de poder acercarte con un móvil y portátil y poder acceder a una plataforma de gestión. Quizá he pecado dando pocos datos para la pregunta, os pido disculpas!

Respecto al "problema" de alimentarla y darle conexión es lo de menos, de verdad, lo tenemos cubierto. Tendrán conexión y corriente sin problemas :)

1 respuesta
AikonCWD

#6 What?! No hay ninguna restricción del lenguaje de programación usado para acceder al hardware de un sistema... Desde una librería escrita en C#, C o Java puedes listar los dispositivos USB y enviar/recibir información. Incluso podrías no usar una librería, por ejemplo un sencillo script en python/powershell. Tú puedes leer datos de un USB incluso desde una macro programada en un Word xD.

Otra cosa es que el fabricante del hardware no tenga (o no quiera) darte la documentación necesario para que tú puedas consultar su hardware desde diferentes entornos... Pero vamos, hasta el pincho wifi made in china más barato tiene la documentación necesario (y ejemplos) sobre como trabajar con él desde diferentes lenguajes... Si finalmente el hardware que estáis usando carece de dicha documentación: huye de él, no merece ni un mísero € por vuestra parte.

Si crees que no hay ningún otro modo en todo el jodido universo de acceder a ese hardware sin usar una librería DLL en C# entonces te tocará pasar por el aro y comprar una mini-board con CPU basada en intel/x86. Son carísimas, te dejo un par de ejemplos:

https://www.solid-run.com/product/solidpc-q4-carrier/#configuration
https://www.kickstarter.com/projects/139108638/lattepanda-a-45-win10-computer-for-everything

De todas formas, antes de comprar esas placas, contacta con el fabricante y pregunta si puede ejecutar aplicaciones nativas intel/x86

1 respuesta
PiPePiTo

#1 Esa DLL que comentas, es vuestra? sería posible portarla a .net Core?

1 respuesta
mortadelegle

#1 No se que quieres decir con no depender de un pc en remoto, al menos con raspian tu puedes montarte la raspi en headless y configurar todo por ssh y similares.

1 respuesta
Rukko

#7 Lo sé, lo sé, pero es exactamente eso, tenemos un hardware del que nos gustaría huir si hubiera alternativa, pero es lo que tenemos para arrancar y "ya está hecho". Lo que estamos buscando es si podemos adaptarnos a él por ahora para ir tirando con algo de forma sencilla, o si tenemos que ponernos nosotros mismos a desarrollar el sensor y empezar de 0.

#8 No, es de un tercero, no podemos portarla.

#9 Lo dije antes de conocer realmente lo que podía hacer windows 10 iot core, que también puede hacerlo, aunque la verdad está bastante limitadillo por el momento.

Si no encontramos la manera de hacerlo con Windows 10 IoT core, lo más seguro es que lo intentemos con un minipc, aunque claro, la diferencia de gastarte 35€~ por placa a 90€+ es bastante. Pero bueno, muchas gracias a todos por la ayuda y el interés.

1 respuesta
Kaiserlau

#10 esos sensores se pueden usar con arduino o similares?

garlor

solo la licencia de windows para cada maquina os costara mas que la maquina, y a poco que querais hacer algo que despues querais vender no podeis ir usando software pirata

seguramente lo mas barato seria que os consiguierais unas cuantas placas madre de las que usan las tablets chinas que llevan windows 8, si toda la tablet vale 100 euros, la placa madre con la ram y la emmc deberia costar 60-70, pero claro imagino que os teneis que poner en contacto con el fabricante y comprar una gran cantidad ( almenos 100 )

Usuarios habituales

  • garlor
  • Kaiserlau
  • Rukko
  • mortadelegle
  • PiPePiTo
  • AikonCWD
  • ESL_Kaiser