Mariah
is a hub for your Smart Boat. Sensors will send it data, which will be
collected and emitted to customizable endpoints.
-
Gathers from various sensors and updates a state object
- GPS
- Pitch, Roll, Yaw
- Temp/Humidity (planned)
-
Provides an API for accessing state
- Sockets? MQTT? I'd like a pub-sub model to push data to local clients.
-
Optional- sends state object to AWS IoT on an interval
- 10 seconds for cost considerations
npm install
node app
- Generate an IoT cert with the one-click certification creation.
- Move certs to
/certs
- Update
/config.js
to match cert locations
- Configure IoT Rules logging
- Create IAM Role
- Turn on logging in the IoT Rules settings pane
- Create a bucket in the same region as your device
- Create a rule
- Attribute:
*
- Topic filter:
gps
- Condition: leave blank
- Attribute:
- Add action (Store messages in Amazon S3 bucket)
- S3 bucket: use the bucket created earlier
- Key:
${topic()}/${timestamp()}
- Create a new role to grant IoT access
This library relies on connection to a GPSD server to receive data. Use the gpsd-fake
library to create a local GPSD server. By default, it should be broadcasting on the correct ports and there will be no additional configuration needed. The GPSD server needs to be running before starting Mariah.
- Has a connector to each sensor
- Clinometer
- DHT
- GPS
- Publishes sensor data to MQTT Server
- Attempts to send data to AWS IoT if possible
- Connects to MQTT Server
- Displays real-time sensor data provided via MQTT