Giter Club home page Giter Club logo

esp32-bluetooth-music-player-lvgl's Introduction

Build your own bluetooth speaker!

Use your Esp32 to play and control music from a bluetooth audio source.

Required components

  • Esp32: either use a dev kit or design your pcb (mine will come soon!)
  • KY-040 rotary encoder
  • ILI9488 3.5" TFT display. There's 2 version of this display: with and without touch screen. This project does not use the touch screen.

The project is still in progress, but this is what it looks like so far:

Components

Build

Instal the Expressif IDF framework or just make your life easier and just use the espressif/idf docker image.

Set Esp32 target

docker run --rm -v $PWD:/project -w /project -u $UID -e HOME=/tmp -it espressif/idf idf.py set-target esp32

Configure the project

docker run --rm -v $PWD:/project -w /project -u $UID -e HOME=/tmp -it espressif/idf idf.py menuconfig

In this step you can choose your configuration, like the preferred pinout. For the default configuration and pinout look below.

Build the project

docker run --rm -v $PWD:/project -w /project -u $UID -e HOME=/tmp -it espressif/idf idf.py build

Flash on Esp32 and monitor logging

docker run --rm -v $PWD:/project -w /project -e HOME=/tmp --privileged -it espressif/idf idf.py -p /dev/ttyUSB0 flash monitor

Note: you need to give the container permission to access the Esp device.

Project structure

├── CMakeLists.txt                      : Project's CMake file
├── components
│   ├── drabaioli__ili9488_display      : IDF component to handle ILI9488 TFT display
│   ├── drabaioli__lvgl_ui              : IDF component to handle LVGL grapical library bootstrap
│   └── drabaioli__rotary_encoder_ky040 : IDF component to handle KY-040 rotary encoder 
└── main                                : Main logic
    └── ui                              : GUI

All components are designed to be reusable.

Default configuration

ILI9488 pinout

pin name value
SPI_MISO 32
SPI_MOSI 2
SPI_CLOCK 23
TFT_CS 15
TFT_RESET 21
TFT_DC 4
TFT_BACKLIGHT 18

KY-040 pinout

pin name value
KY040_SW 27
KY040_DT 26
KY040_CLK 25

esp32-bluetooth-music-player-lvgl's People

Contributors

drabaioli avatar

Stargazers

Oscar Gimenez avatar Alice avatar  avatar

Watchers

 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.