RICM4 2017 2018 - Ruche Connectee / SRS

=1.  Introduction=

1.1 Purpose of the requirements document
This SRS (Software Requirements Specification) is a description of the project, containing all users and technologies characteristics.

1.2 Scope of the product
The project consists of building a connection between a hive and a beekeeper, to monitor the hive with some captors. We are twinned with an IESE group which is working on the captors and they'll give us the collected data.

1.3 Definitions, acronyms and abbreviations
LoRa: Long Range radio RF technology, can be use to 20km far.

1.4 References
Project's sheet : Project Wiki [FR]

Topic : Ruche connectée LoRa

1.5 Overview of the remainder of the document
Now we will detail the project, its purpose and charateristics. =2.  General description=

2.1 Product perspective
The aim of the project is basically to transmit data from serial link to a distance monitoring computer. This project can evolve in the future to connect hives from all around the metropolis to a central server. basically offering a way to monitor living insect colonies from afar.

2.2 Product functions
The product will have an overview of informations collected from the hive at anytime, and it'll be flexible in order to add others captors (or others hives). At the moment, the aim is to collect the weight and the inside's temperature of the hive.

2.3 User characteristics
There are two users:

-The beekeeper : He will have access to the database and any measurements at any time.

-The administrator : He will have control of everything, database, code, website infrastructure. Thos two persons can be the same.

2.4 General constraints

 * Radio occupation : We can only emit 1% of the time (36 second each hour in total)
 * Modularity : We must be able to easily add a new sensor.
 * Stability : We can't open the hive in winter, to avoid harming bees.

2.5 Assumptions and dependencies
=3.Specific requirements, covering functional, non-functional and interface requirements=
 * document external interfaces,
 * describe system functionality and performance
 * specify logical database requirements
 * emergent system properties and quality characteristics.

3.1 Requirement 1 (Global aspect)
Function: Access to sensors' measurement.

Description: At any time, the beekeeper must be able to knows the most recent measurements, and any other prior to that.

Inputs: Measurements.

Source: Sensors -> SX1272 -> SX1276(Gateway LoRa) -> RaspberryPi -> Node-red -> InfluxDB -> Graphana

Outputs: Website displaying measurements (using Graphana).

Destination:

Action: Measurements on screen, he can also set a date to display measurements from that day.

Non functional requirements:

Pre-condition:

Post-condition:

Side-effects: Must not bother bees

3.2 Requirement 2 (SX1276 -> RaspberryPi)
Function: Forwarding the LoRa packets received.

Description: All the packet received by the GateWay must by forwarded to the RapsberryPi in order to process them.

Inputs: LoraPacket.

Source: SX1276(Gateway LoRa) -> RaspberryPi

Outputs:

Destination: RaspberryPi

Action:

Non functional requirements:

Pre-condition: Sensor data must have been send by the STM32 placed on the Hive

Post-condition: Rasberry Pi must have internet connection

Side-effects:

3.3 Requirement 3 (RaspberryPi -> Node-red)
Function: Decode the packet previously forwarded.

Description: The forwarded packet have to be parsed to detect for which installation they are comming (Thanks to our alternative LoRawan protocol). Then, the incomming packet are processed and analyzed by the right treatment function.

Inputs: LoraPacket (base 64).

Source: RaspberryPi

Outputs: Descripted packet.

Destination: RaspberryPi

Action:

Non functional requirements:

Pre-condition: Node-RED server must be running on the RaspberrypPi

Post-condition:

Side-effects:

3.4 Requirement 4 (Node-red -> InfluxDB)
Function: Store the received packet in a DataBase

Description: Once the packets have been processed in Node-RED, they have to be stored as the beekeeper must be able to see data from the beginning. Inputs: Processed packet.

Source: RaspberryPi

Outputs: Descripted packet.

Destination: RaspberryPi

Action:

Non functional requirements:

Pre-condition: Node-RED and InfluxDB server must be running on the RaspberrypPi

Post-condition:

Side-effects:

3.5 Requirement 5 (InfluxDB -> Graphana)
Function: Display the collected packet with graphs based on time

Description: Thanks to Graphana, the packets stored in our databased can be dislayed and monitored with a graphical interface

Inputs: Stored packets.

Source: InfluxDB

Outputs: Graphs.

Destination: Computer monitor

Action:

Non functional requirements:

Pre-condition: InfluxDB and Graphana server must be running on the RaspberrypPi

Post-condition: Monitor must be connected to the computer

Side-effects:

=4. Product evolution= =5. Appendices= =6. Index=
 * Add more sensors.
 * More commands to control the emitter with the reciever (change measurement frequency,...)