{"id":16133094,"url":"https://github.com/aschuma/esp32_ssd1306_metaefa","last_synced_at":"2025-03-18T15:30:57.524Z","repository":{"id":50207630,"uuid":"130269407","full_name":"aschuma/esp32_ssd1306_metaefa","owner":"aschuma","description":"This MicroPython code, executed on an ESP32 OLED SSD1306 board, displays departure tables by utilizing the VVS Rest API (META EFA)","archived":false,"fork":false,"pushed_at":"2022-12-08T02:04:57.000Z","size":384,"stargazers_count":11,"open_issues_count":4,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-10-10T22:36:52.605Z","etag":null,"topics":["esp32","fahrplan","micropython","public-transport","python","python3","ssd1306","timetable","vvs"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aschuma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-19T20:31:40.000Z","updated_at":"2024-04-02T08:48:14.000Z","dependencies_parsed_at":"2023-01-24T09:15:34.646Z","dependency_job_id":null,"html_url":"https://github.com/aschuma/esp32_ssd1306_metaefa","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschuma%2Fesp32_ssd1306_metaefa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschuma%2Fesp32_ssd1306_metaefa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschuma%2Fesp32_ssd1306_metaefa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aschuma%2Fesp32_ssd1306_metaefa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aschuma","download_url":"https://codeload.github.com/aschuma/esp32_ssd1306_metaefa/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":221713500,"owners_count":16868262,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","fahrplan","micropython","public-transport","python","python3","ssd1306","timetable","vvs"],"created_at":"2024-10-09T22:36:58.897Z","updated_at":"2024-10-27T17:53:30.785Z","avatar_url":"https://github.com/aschuma.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"```\n                                                                                \n                              _|_|_|      _|_|                  _|_|            \n  _|_|      _|_|_|  _|_|_|          _|  _|    _|    _|_|      _|        _|_|_|  \n_|_|_|_|  _|_|      _|    _|    _|_|        _|    _|_|_|_|  _|_|_|_|  _|    _|  \n_|            _|_|  _|    _|        _|    _|      _|          _|      _|    _|  \n  _|_|_|  _|_|_|    _|_|_|    _|_|_|    _|_|_|_|    _|_|_|    _|        _|_|_|  \n                    _|                                                          \n                    _|   \n```\n\nThe aim of this project is to display the departure data of one or more VVS stations (Haltestellenmonitor) on an ESP32 microcontroller equipped with an Oled SSD1306 display. \nVVS is the Stuttgart public transport system. VVS provides the current timetable of relevant stations by a public available REST endpoint. \nMicropython is the programming language of choice for this project.\n\nHere is what you get when you deploy the application on your ESP32 board:\n\n![Demo](https://github.com/aschuma/esp32_ssd1306_metaefa/raw/master/esp32_ssd1306_metaefa.jpg)\n\nThe top line contains the current time.\nThe other lines hold the tram/bus line number, the departure time, the delay and the short name of the station (RH, SMi). \n(The relevant tram/bus lines and stations are configurable within a configuration resource)\n\nPlease note that the hosted version of the public REST endpoint (metaEFA) used by this project is not available anymore. \nInformation on hosting a MetaEFA server yourself can be found at https://github.com/opendata-stuttgart/metaEFA.\n\nLinks:\n- http://www.vvs.de/\n- https://github.com/opendata-stuttgart/metaEFA\n- https://www.espressif.com/en/products/socs/esp32\n- https://www.aliexpress.com/item/Lolin-ESP32-OLED-wemos-for-Arduino-ESP32-OLED-WiFi-Modules-Bluetooth-Dual-ESP-32-ESP-32S/32807531243.html\n- http://micropython.org/\n\n# Onboarding \n\nThis is just a brief description of what steps have to be performed to enable the development of this application. Please consult Google to get in-depth details.\n\n## Prepare development infrastructure\n\n- Install the USB driver to enable board access: https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers\n- Install python 3.x \n- Clone the repository\n   ```\n   git clone https://github.com/aschuma/esp32_ssd1306_metaefa.git\n   ```\n- Create a virtual environment, you may obtain more information about the steps below here: http://docs.python-guide.org/en/latest/dev/virtualenvs/ \n   ```\n   cd esp32_ssd1306_metaefa/\n   virtualenv py3 -p $(which python3)\n   source py3/bin/activate\n   ```\n- Install development tools (`ampy`, `rshell`)   \n   ```\n   pip3 install -r requirements.txt \n   ```\n\n## Micropython - prepare the ESP32 board\n\n- Download the latest ESP32 micropython image from \n   https://micropython.org/download \n- Prepare the board\n  ```\n  esptool.py --port /dev/cu.SLAB_USBtoUART flash_id\n  esptool.py --port /dev/cu.SLAB_USBtoUART erase_flash\n  esptool.py --port /dev/cu.SLAB_USBtoUART write_flash -z 0x1000 \u003cpath-to-downloaded-image\u003e\n  \n  ```\n  \n## Micropython - check board access\n\n- The subsequent command is for MacOS only. Similar tools are available for Linux and Windows. \n   ```\n   screen /dev/cu.SLAB_USBtoUART 115200\n   ```\n   After that, you will be connected to the micropython shell running on the board.\n   You may leave the shell by typing `Ctrl-A`, `K` and `y.`\n- File explorer\n   ```\n   rshell -p /dev/cu.SLAB_USBtoUART\n   ```         \n   The files on the board should be available locally at `/pyboard` on your dev machine.\n   You may copy files to the board by using the `cp` command. More details are available here: https://github.com/dhylands/rshell\n   \nPlease be aware that you can not use multiple shells simultaneously to the access the board.\n\n\n## Deployment\n\n- Copy `src/config.py.template` to `src/config.py` and adjust at least the wifi settings.\n- Copy recursively all files of `src` to the root directory of the board using the `rshell` tool or the `ampy` tool.\n   - https://github.com/dhylands/rshell \n   - https://github.com/adafruit/ampy\n- The board should reboot itself. If not unplug the USB cord and plug it back again. \n- In case of problems to connect to the board via  ```\n   screen /dev/cu.SLAB_USBtoUART 115200\n   ``` press `CTRL-C` and `CTRL-D` to trigger a reboot. Then you should see some log messages. \n   \n# Finally\n\nBe aware that my primary coding language is not python. So please forgive me my bad coding style. I'm still learning python and ESP32 development.\n\nPlease feel free to issue a bug report or submit a PR. Any helping hand is welcome.\n   \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschuma%2Fesp32_ssd1306_metaefa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faschuma%2Fesp32_ssd1306_metaefa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faschuma%2Fesp32_ssd1306_metaefa/lists"}