Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/minarox/racecast-emitter

Onboard autonomous IoT project to capture and transmit data and media stream from the race car.
https://github.com/minarox/racecast-emitter

i2c-bus livekit nodejs socat typescript

Last synced: 18 days ago
JSON representation

Onboard autonomous IoT project to capture and transmit data and media stream from the race car.

Awesome Lists containing this project

README

        





Logo

Emitter

![Project Version](https://img.shields.io/github/package-json/v/RaceCast/Emitter?label=Version) 
![Project License](https://img.shields.io/github/license/RaceCast/Emitter?label=Licence)


Onboard autonomous IoT project to capture and transmit data and media stream from the race car.


rallye.minarox.fr »




Table of Contents



  1. About The Project



  2. Getting Started


  3. Author

## About The Project

Javascript app for acquiring and transmitting data and media stream from the various sensors mounted on the embedded system from the race car through cellular network.

### Features

- Init environment (reset linux services, setup GPS, etc.)
- Fetch GPS datas
- Connect and share GoPro stream and other datas throught LiveKit

### Tech Stack

- [TypeScript](https://www.typescriptlang.org/)
- [LiveKit](https://github.com/livekit/server-sdk-js)
- [Puppeteer](https://pptr.dev/)
- [Dotenv](https://github.com/motdotla/dotenv)

(back to top)

## Getting Started

### Prerequisites

This project is highly hardware / software dependant and as not been tested on other component expect mine :
- Raspberry Pi 5 (with Ubuntu 22.04 and ModemManager deactivated)
- Quectel EC25 Modem (preconfigured in ECM mode, with an "Orange" SIM card)
- GoPro Hero 12 Black
- Elgato CamLink 4K

The current user need to be added to the "dialout" group to allow communication with the modem's serial ports without `sudo` :
```bash
sudo gpasswd -a username dialout
```

### Deploy on embedded system

1. Clone the project and install dependencies :
```bash
git clone https://github.com/RaceCast/Emitter
cd Emitter
npm i
```

2. Create `.env` file at the root of the project with these variables:
```dotenv
LIVEKIT_WS_URL="wss://example.com"
LIVEKIT_HTTP_URL="https://example.com"
LIVEKIT_KEY="key"
LIVEKIT_SECRET="secret"
LIVEKIT_ROOM="room"
```

3. Build TypeScript files :
```bash
npm run build
```

4. Run the app :
```bash
npm start
```
The app automaticaly setting up environment and start needed scripts.

(back to top)

## Author

[@Minarox](https://www.github.com/Minarox)

(back to top)