Loading repository data…
Loading repository data…
guilhermerodrigues680 / repository
Este repositório contém uma aplicação simples com o objetivo de demonstrar uma maneira de monitorar o estado do BIT 5 do regitro PORTB (PB5) do ATmega328P, LED 13 do Arduino UNO R3, via Página Web.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Este repositório contém uma aplicação simples com o objetivo de demonstrar uma maneira de monitorar o estado do BIT 5 do regitro PORTB (PB5) do ATmega328P, LED 13 do Arduino UNO R3, via Página Web. O conceito pode ser extendido para outras aplicações similares.
O parte embarcada da aplicação foi escrita em ANSI C usando a PlatformIO IDE .
Ela foi focada no Atmega328P presente no Arduino Uno R3, trabalhando diretamente com registradores do microcontrolador.
Apesar de ultilizada o PlatformIO IDE, o codigo é portavel para o Atmel Studio 7.
O Back-end da aplicação foi escrito em Python (v3.7.3), e foram ultilizados os modulos pySerial e websockets para leitura de dados na porta serial e comunicação websocket respectivamente.
O Frot-end da aplicação foi escrito em HTML e Javascript e a biblioteca jQuery .
O processo se inicia no ATmega328P, o firmware foi programado para alterar o estado do BIT 5 do regitro PORTB (PB5) a cada 1 segundo e logo em seguida imprimir na serial 1 byte contendo o estado do PB5. Este byte é transmitido em base 16 ( hexadecimal). O PB5 está conectado ao Pino 13 do arduino UNO R3 como é descrito no site oficial do Arduino . Após o ATmega328P imprimir na serial o byte, o conversor serial do Arduino UNO transmite esse dado pelo USB. No computador, o algoritmo escrito em python fica lendo constatemente a porta serial USB onde o Arduino está conectado, quando há uma informação ou seja o byte, ele lê este byte que está em hexadecimal e converte para base 10 (decimal). Em seguida coloca esse numero que indica o estado do PB5 no formato JSON que utiliza texto legível a humanos, no formato e transmite o JSON via websocket. A página web ao ser carregada pela primeira vez, estabelece a conexão via websocket com o servidor, e quando chega uma mensagem (informação/JSON) ela a lê e altera os elementos da página dinâmicamente seguindo os algoritmos escrito em javascript.
src/main.c para ATmega328P ultilizando o Platform IO IDE ou o Atmel Studiowebsocket/pythoncd websocket/python
myvenvpython3 -m virtualenv myvenv
myvenvsource ./myvenv/bin/activate
pip Python PIPpip3 install -r requirements.txt
python3 main.py
websocket/html/index.html em um navegador. Clique e Arraste o aquivo index.html para dentro do navegador que ele carregará a página. (O link será parecido com file:///.../websocket/html/index.html)Ctrl + C, se a combinação de teclas não for bem sucedida, tente Ctrl + Break (Em alguns teclados a tecla Break é chamada de Pause)
This project is licensed under the terms of the MIT license.