Um emulador de sensores IoT focado em modelagem física e comportamento de contexto.
An IoT sensor emulator focused on physical modeling and contextual behavior.
Um Gêmeo Digital (Digital Twin) não é apenas uma simulação estática; é uma réplica virtual dinâmica de um objeto ou sistema físico. O DigitalTwin Basic serve como a unidade fundamental desse conceito, fornecendo um modelo que respeita as leis da física (inércia e sazonalidade) para que sistemas de controle e automação possam ser testados de forma realista antes da implementação no hardware real.
Este projeto nasceu como uma ferramenta pedagógica para alunos de Internet das Coisas (IoT). Ele permite treinar lógica de monitoramento e integração com plataformas como Home Assistant, fornecendo dados que mimetizam a "sujeira" e o comportamento do mundo real.
Nota da Release v0.1: Esta versão foca exclusivamente na física do sensor e do ambiente. O projeto ainda não possui um módulo de comunicação de rede (MQTT), o que caracteriza esta fase como o motor de dados do sistema.
O ambiente define a verdade teórica.
- Modelagem Climática: Utiliza funções senoidais para simular o ciclo circadiano, onde a temperatura flui naturalmente conforme a estação do ano (Season).
- Deslocamento de Fase: Mimica o atraso térmico real (o pico de calor ocorre após o sol atingir o topo).
- Correlação Física: A umidade é atrelada à temperatura, garantindo dados coerentes (ex: a umidade cai quando a temperatura sobe).
O sensor emula as limitações do hardware físico.
- Inércia Térmica (Relaxação): O sensor não lê o valor do ambiente instantaneamente; ele simula o tempo de resposta físico para aquecer ou esfriar.
- Ruído Gaussiano: Adiciona micro-variações aleatórias para simular interferências eletrônicas reais.
- Saída Binária: Suporte a formato binário (16-bit Big-Endian), permitindo praticar a decodificação de payloads brutos.
A Digital Twin is more than a static simulation; it is a dynamic virtual replica of a physical object. DigitalTwin Basic provides the fundamental building blocks of this concept, offering a model that respects physical laws (inertia and seasonality) so that automation systems can be realistically tested.
Designed for Internet of Things (IoT) students, this project provides an emulator to practice monitoring logic and integrations (like Home Assistant), offering data that mimics the "noise" and behavior of the real world.
Release v0.1 Note: This version focuses strictly on sensor and environment physics. The project does not yet include a network communication module (MQTT).
- Climate Modeling: Uses sine waves to model circadian cycles based on the Season.
- Phase Shift: Mimics real-world thermal lag.
- Physical Correlation: Humidity is tied to temperature for realistic data behavior.
- Thermal Inertia (Relaxation): Simulates physical response time through a relaxation factor.
- Gaussian Noise: Adds realistic micro-variations to readings.
- Binary Output: Supports 16-bit Big-Endian binary format for raw data practice.
- v0.2: Implementação do módulo MQTT (Publicação de dados).
- v0.3: Sistema de Plugins para novos sensores (DHT11, DS18B20, Solo).
- v1.0: Interface Gráfica (GUI) para controle de estações e sensores.
- Season: Parâmetros climáticos imutáveis. / Immutable climate parameters.
- Env_Model: O motor de contexto (A Verdade). / The context engine (The Truth).
- Dht22: O hardware emulado (A Percepção). / The emulated hardware (The Perception).
- Adição do sensor DHT11.
- Implementação de limites físicos específicos para o DHT11 (bloqueio de valores negativos).
- Refinamento da função get_bin_payload para garantir integridade do bit de sinal no Checksum.
- Implementação do cálculo de Checksum real (soma de 8 bits) conforme datasheet.
- Padronização do payload de 5 bytes (40 bits) para transporte de dados.
- Arquitetura modular inicial: core/ (ambiente e base) e sensors/ (plugins).
- Modelagem de inércia térmica e ruído gaussiano para simulação realista.
- Sistema de estações do ano com comportamento senoidal.
- Script único com lógica básica de temperatura e protótipo inicial de classes.