GithubHelp home page GithubHelp logo

italocjs / esp32-lora-wifi-raw-ethernet-packets-repeater Goto Github PK

View Code? Open in Web Editor NEW

This project forked from caioasilva/esp32-lora-wifi-raw-ethernet-packets-repeater

0.0 0.0 0.0 20 KB

Project that implements a custom ethernet packet protocol sending and receiving. Also a way to capture these packets promiscuously by the ESP32 WiFi interface, send them via LoRa to another ESP32 module and transmit them again via WiFi, creating a Long Range WiFi Repeater.

C 98.58% Makefile 1.42%

esp32-lora-wifi-raw-ethernet-packets-repeater's Introduction

Envio de pacotes Ethernet Raw e Repetidor Wi-Fi via LoRa ESP32

Trabalho para a disciplina de Tecnologia e Comunicação de Dados - DC UFSCar - 2018 Alunos:

  • Caio Augusto Silva - 628280
  • Luis Felipe Tomazini - 595098

O trabalho consiste de 2 partes:

  • Um programa cliente e um servidor que trocam pacotes Ethernet em um formato específico usando um Ethertype definido arbitráriamente (0x1996)
  • Um software para a placa ESP32, que inicializa um access point WiFi e repete os pacotes do tipo 0x1996 enviados na rede via tecnologia LoRa.

Instruções de uso

Parte 1: Programas de envio de pacotes Ethernet

O trabalho possui um programa cliente, que envia um pacote e aguarda uma resposta, e um programa servidor, que aguarda um pacote, exibe seu conteudo e envia um resposta de recebimento. São disponibilizadas algumas opções de codificação dos dados.

Compilação

Abra um terminal na pasta T1 do projeto e execute:

gcc cliente.c -o cliente.app -lm
gcc servidor.c -o servidor.app -lm

Utilização

./servidor interface myName
./cliente interface MACaddr sourceName destinationName message encoding
Encodings:

-n: NRZ -m: Manchester -i: NRZI -f: 4B5B

Parte 2:

Configuração do ambiente de Desenvolvimento

Configure o ambiente de desenvolvimento para o ESP32 como descrito na documentação: https://esp-idf.readthedocs.io/en/latest/get-started/index.html#setup-toolchain Abra um terminal na pasta T2 do projeto.

Configuração de Compilação

Para configurar o nome do Access Point execute:

make menuconfig

E defina o nome na opção "WiFi Configuration".

A porta utilizada para comunicação com a placa ESP32 também pode ser definida em "Serial flasher config". Por padrão ela é definida como /dev/ttyUSB0.

Na opção "Component config > LoRa Configuration" é possível configuração os pinos GPIO usados para conexão com a interface LoRa. Os pinos utilizados em nossa placa ESP32 foram:

(18) CS GPIO
(14) RST GPIO
(19) MISO GPIO
(27) MOSI GPIO
(5) SCK GPIO

Biblioteca utilizada: https://github.com/Inteform/esp32-lora-library

Compilação e transferência para a placa

Para rodar o projeto na placa execute:

make flash

Aguarde a compilação. Após enviado para a placa é possível conferir a saída do código executando:

make monitor

esp32-lora-wifi-raw-ethernet-packets-repeater's People

Contributors

caioasilva avatar

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.