A multifunctional and modular Firmware for Multitech's mDot based on ARM mBed provides a widerange of functionality for several Sensors such as MAX44009, BME280, MPU9250, SI1143 and uBlox. It allows you to quickly build a Sensornode that measures specific data with its sensors and sends it via LoRaWAN.

Dependencies:   mDot_LoRa_Sensornode_Flowmeter_impl mbed-rtos mbed

LoRa-Sensornode Firmware for Multitech mDot

A multifunctional and modular Firmware for Multitech's mDot which provides a widerange of functionality for several Sensors. It allows you to quickly build a Sensornode that measures specific data with its sensors and sends it via LoRaWAN.

/media/uploads/mitea1/logo-lora-600x370.png /media/uploads/mitea1/mt_mdot_family_642px.png

Supported Sensors

Idea

The Firmware has some predefined Application Modes running different Tasks(Measurements). Each mode can be used in a different Scenario. Application_Modes define which sensors are used, how often they aquire data and how often the data has to be sent via LoRa. Lets say you just want to measure the Light then you choose an Application_Mode (or define one) that only runs TaskLight for light measurement. As a standard all measurements are taken every second and sent via LoRa but you can change that interval depending on your usage Scenario

app/MPU9250AccelerationMessage.h

Committer:
mitea1
Date:
2018-11-02
Revision:
10:4051c38bf73f
Parent:
0:f2815503561f

File content as of revision 10:4051c38bf73f:

/**
 * @file MPU9250AccelerationMessage.h
 *
 * @author Adrian
 * @date 01.06.2016
 *
 */

#ifndef MPU9250ACCELERATIONMESSAGE_H_
#define MPU9250ACCELERATIONMESSAGE_H_
#include <stdio.h>
#include <string>
#include <vector>
#include "SensorMessage.h"

/**
 * @class MPU9250AccelerationMessage
 * @brief A Container that can hold acquired acceleration values from the MPU9250. The container will be
 * transported via a MessageQueue between different Tasks.
 */
class MPU9250AccelerationMessage: public SensorMessage {
public:
	MPU9250AccelerationMessage();
	virtual ~MPU9250AccelerationMessage();

	/**
	 * Sets the x-axis acceleration value of the MPU9250AccelerationMessage
	 * @param xAcceleration x-axis acceleration to be stored
	 */
	void setXAcceleration(float xAcceleration);

	/**
	 * Sets the y-axis acceleration value of the MPU9250AccelerationMessage
	 * @param yAcceleration y-axis acceleration to be stored
	 */
	void setYAcceleration(float yAcceleration);

	/**
	 * Sets the z-axis acceleration value of the MPU9250AccelerationMessage
	 * @param zAcceleration
	 */
	void setZAcceleration(float zAcceleration);


	/**
	 * Gets the x-axis acceleration value from the MPU9250AccelerationMessage
	 * @return
	 */
	float getXAcceleration();

	/**
	 * Gets the y-axis acceleration value from the MPU9250AccelerationMessage
	 * @return
	 */
	float getYAcceleration();

	/**
	 * Gets the z-axis acceleration value from the MPU9250AccelerationMessage
	 * @return
	 */
	float getZAcceleration();

	/**
	 * Gets a small LoRaMessage Type Formated String from the  MPU9250AccelerationMessage.
	 * This String can later be used for transportation via LoRa
	 * @return
	 */
	virtual char* getLoRaMessageString();

private:

	std::string loraMessage;
	std::vector<std::string> loraMessageId;

	float xAcceleration;
	float yAcceleration;
	float zAcceleration;

};

#endif /* MPU9250ACCELERATIONMESSAGE_H_ */