Mega Servidor Arduino
Sí, este es Arduino nuevamente, pero no te apresures a cerrar la página, esta vez estás esperando algo realmente nuevo e interesante. Básicamente, este artículo se centrará en las placas de microcontroladores Arduino Mega y la tarjeta de interfaz de red Ethernet Shield W5100 y en el milagro que se puede hacer con ellas si te permites ir más allá de los estereotipos.Entonces, ¿qué es una placa Arduino típica? Microcontrolador “pobre” de 8 bits con una cantidad ridícula de RAM (en el caso de Mega es de 8 kilobytes) y la misma cantidad ridícula de memoria flash (256 kilobytes para Mega). Las tarjetas de expansión agregan algo de vivacidad al paisaje, en nuestro caso es Ethernet Shield, pero fundamentalmente no cambia nada. El alcance de tales tableros es la artesanía marginal y el famoso parpadeo de los LED.Pero eso fue hasta el último momento. Ahora en la naturaleza hay un Arduino Mega Server , que cambia fundamentalmente las cosas. Por ejemplo, ¿qué diría si se encuentra con la afirmación de que:- en Arduino, ¿puede organizar un servidor web completo que no tenga restricciones en cuanto al tamaño y la cantidad de archivos?
- actualizar dinámicamente el contenido sin detener el servidor?
- HTML5, CSS3, JavaScript, Ajax, Processig, THREE.js, . .?
- «» ( )?
- , , ( 32 )?
Diría que esto simplemente no es posible.Sin embargo, esto es un hecho. Y puede descargar el kit de distribución a su computadora y verlo usted mismo (excepto Habr, este es un ejemplo hipotético).¿Cuál es el secreto? Todo es muy simple. La placa de interfaz de red admite la conexión de tarjetas de memoria SD de hasta 32 gigabytes de tamaño y nada nos impide usarla para almacenar archivos del servidor web y el contenido real. Solo necesita resolver el problema de integrar toda esta riqueza en un solo sistema.Para que todo esto funcione, debe escribir un motor de servidor para Arduino y enseñarle cómo mostrar el contenido de una tarjeta de memoria flash a pedido de los navegadores. En realidad, casi todo. También debe organizar de alguna manera la actualización de los archivos y el contenido del servidor "sobre la marcha", para que no tenga que levantarse del sofá, apagar el Arduino y quitar la tarjeta de memoria cada vez que necesite cambiar algo en la configuración del servidor o cambiar lo que o en el contenido. Esta difícil pero noble misión se confía al Arduino Serial Commander, que controla la descarga de archivos a un servidor en funcionamiento, sin detenerlo.
Si todo es tan simple, ¿por qué no se ha hecho antes? Esta es realmente una pregunta. Mi versión es el estereotipo del pensamiento. Te dijeron que este es un controlador de 8 bits, ¿qué más es THREE.js? ¿Qué hosting? ¿De qué estás hablando? Para ser justos, debo decir que todas las partes del rompecabezas ya existían en la naturaleza, pero existían en forma completamente indecente, ya sea en forma de un servidor abstracto completamente divorciado de la realidad, o en forma de ejemplos de Ajax, pero nuevamente con solo dos botones abstractos con los que No está claro qué hacer.Área de aplicación
Ahora hablemos sobre la aplicación de esta tecnología y lo que, de hecho, es tan maravilloso y útil.Explicación necesaria El nombre contiene la palabra "servidor" y la primera parte del artículo trata sobre las funciones del servidor del sistema. Esto puede llevarlo por mal camino y dar la impresión de que el objetivo principal del sistema es alojar archivos y sitios y distribuir contenido. Esto no es enteramente verdad. El estrecho cuello de botella en este sistema es la velocidad de la tarjeta SD y, por supuesto, el reemplazo del microcontrolador con un servidor web real fallará.El significado del sistema es algo diferente. Junto con el Arduino Mega Server, tiene la capacidad de administrar convenientemente su dispositivo usando la interfaz web y simplemente lujoso (en el sentido visual) mostrando los resultados de su trabajo usando todo el poder de las tecnologías modernas (HTML5, CSS3, THREE.js, etc.). Ya sea un sistema de control para una casa inteligente, un invernadero, una máquina expendedora de bebidas, una estación meteorológica o lo que sea que tenga suficiente imaginación.
Otra área interesante de aplicación del sistema es la autodocumentación (interactiva). Por ejemplo, en una despensa polvorienta (la suya o la de su cliente) el microcontrolador no tiene claro qué y cómo hacerlo (fue hace mucho tiempo y se perdió toda la documentación). Todo lo que necesita es ir a su sitio y obtener información completa sobre conexiones, protocolos, entornos, etc. Después de todo, no tenemos restricciones sobre el volumen de archivos almacenados. La documentación puede ser interactiva. Por ejemplo, el pinout del controlador no solo se dibuja en la página, sino que también se actualiza en tiempo real (estados, potenciales, etc.). Puede ver inmediatamente qué y cómo funciona y qué y cómo no funciona.
¿Qué hay a bordo excepto el servidor?
Presté mucha atención a las funciones del servidor, pero esta es solo una parte del sistema. Además del servidor, Arduino contiene código para todas las ocasiones:- medición de temperatura
- mantenimiento de sensores PIR
- mantenimiento del sensor de contacto
- reloj en tiempo real
- Módulo para monitorear y medir voltaje y corriente de red para 13 canales
- Módulo de tira de LED
- módulo de determinación de disponibilidad de dispositivo de red
- módulo para trabajar con tarjetas de memoria SD
- módulo para recibir y emitir comandos a través de la red
- módulos de integración con sistemas domóticos
- y muchas otras características más la capacidad de crear nuevas
La estructura modular y la compilación selectiva de módulos son compatibles. La parte del código del navegador reconoce la presencia o ausencia de un módulo compilado y le permite habilitarlo o deshabilitarlo dinámicamente directamente desde una página web.
Integración con MajorDoMo
Históricamente, Arduino Mega Server (en adelante AMS) se desarrolló junto con y como parte de un sistema de automatización del hogar basado en la plataforma abierta MajorDoMo y tiene soporte "nativo" incorporado para esta plataforma. Puede enviar estados y datos para su análisis y almacenamiento a su "hermano mayor" y recibir órdenes de control de él a través de la red.Además, por el momento, AMS está trabajando en el llamado. modo tándem, es decir, para algunas funciones, se utilizan los recursos del servidor MajorDoMo. Pero el trabajo en conjunto para Mega Server no tiene principios, puede funcionar de manera completamente autónoma.
Tecnologías secundarias
En el marco del proyecto, se implementaron varias tecnologías interesantes y únicas, por ejemplo, el indicador del nivel de CPU del microcontrolador. Esto es conveniente porque puede ver de inmediato qué tan ocupado está su controlador y qué está haciendo actualmente. No sé cuán único es esto, pero no pude encontrar nada similar en la red, especialmente en una forma digerible con hermosos gráficos y una página web.
Se ha creado un electro-módulo que monitorea el voltaje de la red y otros 13 canales de corriente. Al instalarse en el panel eléctrico, le permite monitorear directa o indirectamente toda la actividad eléctrica en la casa. Cuando se enciende y apaga un electrodoméstico en particular, cuánta electricidad consume y cuál es su contribución al tamaño de la factura de electricidad. También le permite rastrear indirectamente la presencia o ausencia de personas en la casa.
Se ha creado un módulo para visualizar y controlar la forma del voltaje y la corriente de la red en cualquiera de los 13 canales. Además, se agrega un osciloscopio de red cuando Arduino en tiempo real transmite una señal dinámica (forma de onda) a su página web. Que tampoco tiene análogos, que yo sepa.
Módulo de protector de pantalla agregado para paneles de visualización de información modernos. Puede eliminar toda la información técnica de la pantalla y dejar solo la necesaria en el contexto de una bella imagen. Resulta algo así como una imagen en un marco para un panel grande o pequeño.
Todavía se implementaron cosas como un medidor de frecuencia de la tensión de red, que se puede utilizar para advertir sobre posibles fallos en el futuro cercano y, por ejemplo, un indicador de estado del sistema 3D multifuncional para 216 objetos / subsistemas / funciones, que gira en el encabezado del sitio. Su significado es que de un vistazo puede evaluar el estado de un sistema complejo.Y así sucesivamente, hay más tecnologías de las que caben en esta página. Y todo esto funciona en un microcontrolador de 8 bits con 8 kilobytes de memoria, lo cual es simplemente increíble.
Perspectivas
Las perspectivas son ilimitadas. Puede implementar utilizando esta tecnología cualquiera, incluso los proyectos más fantásticos. Por ejemplo, la inteligencia del hogar inteligente distribuida a través de los controladores, el parpadeo dinámico de los controladores a través de la red (dependiendo de algunas condiciones) y la reconfiguración dinámica del hogar inteligente a nivel de hierro, la provisión de una interfaz web para el "realmente malo" Arduino Uno, etc., etc. Sin mencionar las cervecerías inteligentes y cada sitio de flores en su hogar con sus blogs personales.Y para esto no necesitará nada excepto Arduino, Ethernet Shield, AMS, tarjetas SD y su imaginación.
Perspectivas comerciales
Puede vender sus dispositivos simplemente colocando todo lo que necesita en una caja y agregando el firmware AMS para su tarea. El cliente enciende el dispositivo y lo controla a través de una interfaz web completa y no se necesita nada más. Y si todavía considera conectar su dispositivo y sensores sin un soldador, amplíe aún más la audiencia de sus clientes potenciales.¿Cómo hacerlo sin soldador? El (autoproclamado) Open Home Automation Standard (OHAS) y los sensores de un clic lo ayudan a hacer esto, pero esa es otra historia. Si será interesante, describiré aquí un par de tecnologías más "innovadoras".Estado del proyecto
El estado del proyecto es una versión alfa, todo funciona, pero todo necesita ser finalizado. Si tiene el deseo y las calificaciones apropiadas, puede unirse al proyecto y acelerar el proceso de desarrollo y obtener un admirador incomparable. O puede descargar el código fuente y crear el proyecto de sus sueños.El proyecto está completamente abierto y no impone restricciones en su uso. Puede usarlo libremente para cualquier fin, incluidos fines comerciales, cambiar el código, modificarlo, crear sus propios proyectos en GitHub, etc.
Puede descargar la última versión en el sitio web oficial del proyecto . Si tiene alguna pregunta, puede hacerla en el foro . El foro también tiene instrucciones para instalar y configurar AMS.¡Amigos! Olvidé mencionar otra, quizás la parte más importante del proyecto. Esta es una función de aprendizaje. Si comienza a trabajar con un proyecto y cambia el código para sus tareas, aprenderá rápidamente a practicar muchas tecnologías modernas, como HTML, CSS, JavaScript, interacción entre navegadores, código de depuración en un navegador, programación para Arduino, Procesamiento y muchas otras.Y el último. El proyecto está literalmente lleno de ideas y es exclusivo. Simplemente puede tomar las piezas de código necesarias para sus propios proyectos, complementarlas y mejorarlas.Además . Un canal de Youtube está abierto y aquí hay un video promocional del Arduino Mega Server, que muestra cómo trabajar con un sistema real.Source: https://habr.com/ru/post/es382177/
All Articles