Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
# this main directory contains the primary files to run the program
To run the main program: simply execute start.sh
You need to edit the prefix= and name= lines in start.sh
For example, the gateway's certificate is: cb11952a43-certificate.pem.crt
so I would set the prefix to cb11952a43
# stubs/
This directory contains the same system files but the subsystem classes are all configured to return a value of 55 and not connect to GPOI or board specific I/O
this is useful for testing the system as-is without the hardware, it also allows us to indirectly measure the sensor board's power requirements
# config/
this directory contains the special configuration files for the raspberry pi OS that I needed to configure for the gateway and nodes
# tests/
This directory contains 2 differnet testing programs that I used to test system performance
to start just run start_[iterate/latency] and modify it to include your certificates.
start_iterate.sh will walk through each sensor system and reqest the value from
it, wait until it recieces a response and ask for the next sensor.
Useful for testing power load as this will activate differnt sensors
start_latency.sh will test the latency with 20 requests and responses and calculate
the average request latency from the time sent to the time received and print
the calculation
# The MQTT message layout along with supported commands:
My MQTT message topology is: sensors/{device}/{name}
sensors/temp/gateway
"get" : "value"
sensors/pressure/gateway
"get" : "value"
sensors/humidity/gateway
"get" : "value"
sensors/altitude/gateway
"get" : "value"
sensors/soil/gateway
"get" : "value"
sensors/water/gateway
"get" : "state" # also "value"
"get" : "total"
"get" : "cumulative"
"setTime" : "10" # accepted range is 1-122
"set" : "on"
"set" : "off"
"set" : "clear"
sensors/led/gateway
"get" : "state" # also "value"
"set" : "on"
"set" : "off"
sensors/info/gateway
"get" : "bulk"
sensors/cmd/gateway
"get" : "uptime"
"get" : "timestamp" #used for testing
"deviceState" : "disconnect"
"deviceState" : "reboot"
"deviceState" : "halt"
My program allows the gateway to also be a sensor/measuring device but it is not required