⚠ THIS PROJECT IS WIP ⚠
(some screen top lines are not working 😞)
- This project aims to be a playground to learn ESP32 + Espressif technology during the summer :)
- The idea is to use an ESP32 kit with LoRa + GPS + battery capabilities that will send the GPS coordinates through LoRa. Then we will receive these coordinates with another ESP32 device with LoRa capabilities.
- Transmitter:
- Receiver:
- Any ESP32 with LoRaWAN capabilities:
- Heltec WiFi Kit 32 + Lora SX1278
- Any ESP32 with LoRaWAN capabilities:
- GPS
- Screen SSD1306
- LoRa
- Battery
- Get GPS position
- Show GPS position in screen
- Send GPS position via LoRa
- Show sending position via LoRa in screen
- Show battery status
- First, you will need to set up the Espressif environment. You can follow the Get Started.
- Connect your device to the USB port.
cd kids_lora_gps_tx idf.py -p /dev/ttyACM0 flash monitor
- Default configuration will work for LILYGO TTGO T-Beam V1.1 ESP32 but you can use another device. In that case, you should do a
idf.py menuconfig
and configure:- NMEA parser / UART RXD pin number
- Component config / LoRa Configuration
- Component config / LVGL configuration
- Component config / LVGL TFT Display controller
- Connect your device to the USB port.
cd kids_lora_gps_rx idf.py -p /dev/ttyACM0 flash monitor
- Default configuration will work for LILYGO TTGO T-Beam V1.1 ESP32 but you can use another device. In that case, you should do a
idf.py menuconfig
and configure:- Component config / LoRa Configuration
- Component config / LVGL configuration
- Component config / LVGL TFT Display controller
- It is just a trial to test a component to learn how it works. Do not expect to see a lot of tests ;)
- No need for any device.
cd components/gps/gps_cbor_coders/test/host_test idf.py build ./build/test_host_gps_cbor_coders.elf
- Connect your device to the USB port.
cd components/gps/gps_cbor_coders/test/target_test idf.py -p /dev/ttyACM0 flash monitor
- Follow this ESP-IDF Clion guideline
- How to load rx, tx and tests
CMakeLists.txt
:kids_lora_gps_rx
:- Use the Project Tool Window to navigate to
kids_lora_gps_rx/CMakeLists.txt
and click with right mouse button and chooseLoad CMake Project
.
- Use the Project Tool Window to navigate to
kids_lora_gps_tx
:- Use the Project Tool Window to navigate to
kids_lora_gps_tx/CMakeLists.txt
and click with right mouse button and chooseLoad CMake Project
.
- Use the Project Tool Window to navigate to
- Tests:
- Host test:
- You will need an extra CMake profile:
- Go to
Settings - Build, Execution, Deployment > CMake
. Add a new profile with and add the environment variable:IDF_TARGET=linux
. - Remember to go to
Tools - CMake - Reset Cache and Reload Project
.
- Go to
- Use the Project Tool Window to navigate to
components/gps/gps_cbor_coders/test/host_test/CMakeLists.txt
and click with right mouse button and chooseLoad CMake Project
.
- You will need an extra CMake profile:
- Target test:
- Use the Project Tool Window to navigate to
components/gps/gps_cbor_coders/test/target_test/CMakeLists.txt
and click with right mouse button and chooseLoad CMake Project
.
- Use the Project Tool Window to navigate to
- Host test:
- Devices:
- ESP32 + Espressif framework
- GPS NEO-6M
- Screen monochrome OLED SSD1306
- LoRa module
- Batter power management IC AXP192
- Development environment, tools and frameworks:
- Espressif
- Application Level Tracing
- Build System (components, Kconfig...)
- Error Handling
- Core Dump
- Event Handling
- Fatal Errors
- JTAG Debugging
- Unit test (Linux host = run in Linux)
- Unit test (target = run in ESP32 device)
- Wi-Fi + Provisioning
- HTTP Server
- Watchdogs
- CLion
- CMake
- Cbor
- FreeRTOS
- Espressif
- Other learnings using examples:
- OTA
- AWS IoT
- Steppers