Coder Social home page Coder Social logo

aplicaciones_tcp_ip's Introduction


Logo

Aplicaciones TCP IP - 2024

Diseño e implementación stack IOT
Mira la Documentación completa »

Tabla de Contenidos
  1. Sobre el proyecto
  2. Para Comenzar
  3. Uso
  4. Roadmap
  5. Contribuir
  6. Licencia
  7. Contacto

Sobre el proyecto

La materia Aplicaciones TCP IP, se centra en la formación profesional y laboral del egresado, la asignatura instruye a los estudiantes en las técnicas de diseño, construcción y monitoreo que se utilizan en las arquitecturas de redes de información y la toma de decisiones y análisis ingenieril de los sistemas que la componen. El elemento central de la asignatura es Internet, núcleo, componentes fundamentales para el funcionamiento y servicios. El proceso de enseñanza se basa en conceptos teórico/práctico que son implementados en prácticos de laboratorio, las evaluaciones parciales preparan al alumno para el examen final.

(Volver al Inicio)

Componentes

  • Docker

  • InfluxDB

  • EMQX

  • Grafana

  • Python

  • Streamlit

  • Git

  • GitHub

(Volver al Inicio)

Para Comenzar

Este repositorio tiene como objetivo proporcionarte la información necesaria para comenzar rápidamente a trabajar con el proyecto en cuestión. Ya seas un desarrollador experimentado o nuevo en el proyecto, esta guía te ayudará a empezar en poco tiempo.

Prerequisitos

Tener instaladas las siguientes herramientas

  • Docker: Necesitarás Docker instalado en tu sistema para poder ejecutar los contenedores de los servicios del servidor y cualquier contenedor de los clientes que utilices en el desarrollo.
  • Python: Se requiere Python para ejecutar scripts y herramientas relacionadas con el desarrollo del servidor y los clientes.
  • Curl: Curl es útil para realizar solicitudes HTTP desde la línea de comandos y puede ser útil durante el desarrollo y las pruebas.
  • Git: Necesitarás Git para clonar el monorepo desde un repositorio remoto, así como para colaborar con otros miembros del equipo y realizar el control de versiones del código.

Instalación

Acá se listan todo lo que se debe descargar para luego poder instalar y hacer funcionar el proyecto

  • Python

    sudo apt update
    sudo apt install python
  • Instalar las librerias necesarias

    python3 -m venv venv #Crea un nuevo entorno virtual donde se guardan todas las librerias a utilizar
    source venv/bin/activate
    pip install -r requirements.txt

(Volver al Inicio)

Uso

Para ejemplos e información, por favor diríjase a la Documentación

(Volver al Inicio)

Roadmap

  • Investigar stacks IOT
  • Desplegar un entorno de laboratorio local que permita realizar pruebas y experimentos.
  • Seleccionar, evaluar e implementar un stack IOT
  • Realizar pruebas y evaluación del entorno
  • Documentar el proceso, las configuraciones y los resultados de las pruebas realizadas.

(Volver al Inicio)

Contribuir

Flujo de Trabajo

El proceso que seguiremos implica utilizar la rama main como la rama de producción del proyecto. Cualquier nueva funcionalidad o corrección de errores se realizará creando nuevas ramas.

Para incorporar una función en la rama main, simplemente se crea un "PR" (Pull Request), que deberá ser aprobado por algún colaborador, cualquier colaborador puede hacerlo, o bien, si no requiere revisión, puede ser aceptado por quien esté incluyendo la funcionalidad.

Es crucial que el nombre de las ramas creadas sea lo más descriptivo posible. Por ejemplo, si trabajamos en una nueva funcionalidad relacionada con la API, la rama se debe llamar como referencia a la funcionalidad en cuestión. En el caso de tratarse de la corrección de un error en el código de la API, la llamaremos fix-api.

Además, se contarán con ramas específicas para la documentación del proyecto denominada docs, esta rama sera utilizada para registrar toda la documentación ya sea de la carpeta docs o el mismo README.md.

Los pasos para contribuir en este proyecto como miembro del mismo son:

  1. Clonar el repositorio (git clone)
  2. Mudarse a la rama develop (git checkout develop)
  3. Crear una nueva rama a partir de develop para la nueva función (git checkout -b <nombre-de-la-nueva-rama>)
  4. Publicar la rama en el repositorio remoto(git push --set-upstream origin <nombre-de-la-nueva-rama>)
  5. Commit los cambios (git commit -m 'Add some AmazingFeature')
  6. Push a la rama (git push origin <nombre-de-la-nueva-rama>)
  7. Abrir un Pull Request dirigido a la rama develop

Commits

Los commits convencionales nos permiten mantener la organización al realizar los commits y facilitan la creación de releases de forma automatizada.

Se basan en el uso de palabras clave al inicio del mensaje de cada commit, de la siguiente manera:

  • feat(tema de la modificación): Breve explicación: Para cambios significativos o nuevas características.
  • fix(tema de la modificación): Breve explicación: Para correcciones pequeñas.
  • chore(tema de la modificación): Breve explicación: Para cambios menores insignificantes para el usuario.
  • docs: Breve explicación: Para cambios que se realizan a la documentación.

(Volver al Inicio)

Licencia

Este proyecto se distribuye bajo los términos de la Licencia Pública General de GNU, versión 3.0 (GNU General Public License, version 3.0). Consulta el archivo LICENSE para obtener detalles completos.

Resumen de la Licencia

La Licencia Pública General de GNU, versión 3.0 (GNU GPL-3.0), es una licencia de código abierto que garantiza la libertad de uso, modificación y distribución del software bajo los términos estipulados en la licencia. Requiere que cualquier software derivado se distribuya bajo los mismos términos de la GPL-3.0. Consulta el archivo LICENSE para más información sobre los términos y condiciones.

Aviso de Copyright

El aviso de copyright para este proyecto se encuentra detallado en el archivo LICENSE.

(Volver al Inicio)

Contacto

Aplicaciones TCP IP - [email protected], [email protected]

Link del Proyecto: https://github.com/danunziata/Aplicaciones_TCP_IP

(Volver al Inicio)

aplicaciones_tcp_ip's People

Contributors

danunziata avatar andresbuten2002 avatar lucapollano2000 avatar giannitibaldi avatar lekevin5151 avatar milelahiton avatar seba-orellana avatar danielotte avatar luchosom avatar gabyrivero9 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

aplicaciones_tcp_ip's Issues

Requerimientos

En esta fase se identifican y documentan los requerimientos del prototipo. Se establecen los siguientes requerimientos:

reference

https://www.oliviawireless.es/guia-de-proyectos-iot/preguntas-para-definir-requisitos

Diseño

En esta fase se especifica la arquitectura de la solución y se diseñan los paneles de visualización. Aspectos clave del diseño incluyen:

Arquitectura de comunicación entre dispositivos y plataforma. @LeKEVIN5151 @andresbuten2002
Especificación de la base de datos InfluxDB y el broker MQTT EMQX. @LeKEVIN5151 @nachodemaio
Diseño de los dashboards interactivos en Grafana y Streamlit. @andresbuten2002 @milelahiton
Planificación de la seguridad en la comunicación MQTT. @nachodemaio @seba-orellana @milelahiton

  • Documentar

wemos d1 mini micropython

Wemos with micropython

  • Enviar data de sensor con wemos

Instalar paquetes necesarios

sudo apt install python3-setuptools

sudo apt install picocom

sudo apt install python3-pip

python3 -m pip install --upgrade pip

pip install esptool
pip install adafruit-ampy

sudo usermod -aG dialout $USER

sudo usermod -aG tty $USER

reboot

Ver si conecta el wemos

sudo dmesg # dmesg - print or control the kernel ring buffer

si aparece brltty desinstalarlo

sudo apt remove brltty

Erase flash and charge new flash

# erase flash
esptool.py  -p /dev/ttyUSB0 --baud 115200 erase_flash

#download bin
wget https://micropython.org/resources/firmware/ESP8266_GENERIC-FLASH_1M-20240222-v1.22.2.bin

#write flash
esptool.py --port /dev/ttyUSB0 --baud 115200 write_flash --flash_size=detect -fm dio 0 ESP8266_GENERIC-FLASH_1M-20240222-v1.22.2.bin

#Probar conexion serial
picocom /dev/ttyUSB0 -b115200

Crear script python

main.py

from machine import Pin
import time

# Configurar el pin D4 (GPIO2) como salida
led = Pin(2, Pin.OUT)

# Encender y apagar el LED en un bucle
while True:
    led.on()
    time.sleep(1)  # Mantener encendido 1 segundo
    led.off()
    time.sleep(1)  # Mantener apagado 1 segundo

Correr script en wemos

ampy --port /dev/ttyUSB0 run main.pỳ

Cargar script en wemos

ampy --port /dev/ttyUSB0 put main.pỳ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.