Skip to content

Jayclifford345/mqtt-emergency-generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MQTT Emergency Generator Simulator

This repoistory will allow you to spin up Emergency Generators producing fake IoT data. Each generator will write to its own MQTT topic the following values:

  1. Load
  2. Voltage
  3. Fuel Level
  4. Temperature

The payload will look like this:

{"generatorID": "generator1", "lat": 40.68066, "lon": -73.47429, "temperature": 186, "power": 186, "load": 2, "fuel": 277}

There are two ways to setup this Sim: Docker + Locally

Option1: Locally

  1. Install the Mosquitto MQTT Broker onto your device:
sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
sudo apt-get update
sudp apt-get install mosquitto
  1. Start the Mosquitto broker:
sudo systemctl enable Mosquitto
sudo systemctl start Mosquitto
  1. Clone this repo to your local system:
git clone https://github.com/Jayclifford345/mqtt-emergency-generator.git
  1. Naviage to this folder
cd mqtt-emergency-generator/tree/master/generator_simulator
  1. Install the pip requirements
RUN python3 -m pip install --no-cache-dir -r requirements.txt
  1. Setup your enviroment variables
export GENERATORS=3
export BROKER=localhost
  1. Run the the simulator
python3 src/emergency_generator.py

Option2: Docker (Recommended)

  1. Clone this repo to your system
git clone https://github.com/Jayclifford345/mqtt-emergency-generator.git
  1. Build the simulator docker image:
docker build generator_simulator/. -t emergency-generator:latest
  1. Deploy the docker-compose file:
docker-compose up -d

Edge to Cloud Replication

This section will teach you how to configure InfluxDB OSS to send data to InfluxDB Cloud.

  1. Create a remote connection
influx remote create --name cloud --remote-url https://us-east-1-1.aws.cloud2.influxdata.com --remote-org-id <ORG_ID> --remote-api-token <CLOUD_TOKEN>
  1. Create a replication between a local bucket and a cloud bucket
influx replication create --local-bucket-id 1f158076adc417f5 --remote-bucket-id 621a1bf27327b2fc --remote-id 0947082f21c3e000  --name edge_to_cloud

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

About

Demo for InfluxDB roadshow training

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%