Difference between revisions of "RICM4 2017 2018 - Ruche Connectee / SRS"

From air
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 51: Line 51:
 
* Radio occupation : We can only emit 1% of the time (36 second each hour in total)
 
* 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.
 
* Modularity : We must be able to easily add a new sensor.
* Transmissions errors : In case of interferences, we need to manage the reemission of data
 
 
* Stability : We can't open the hive in winter, to avoid harming bees.
 
* Stability : We can't open the hive in winter, to avoid harming bees.
  +
 
==2.5 Assumptions and dependencies==
 
==2.5 Assumptions and dependencies==
 
=3.Specific requirements, covering functional, non-functional and interface requirements=
 
=3.Specific requirements, covering functional, non-functional and interface requirements=
 
* document external interfaces,
 
* document external interfaces,
 
* describe system functionality and performance
 
* describe system functionality and performance
* specify logical database requirements,
+
* specify logical database requirements
* design constraints,
 
 
* emergent system properties and quality characteristics.
 
* emergent system properties and quality characteristics.
   
   
==3.1 Requirement X.Y.Z (in Structured Natural Language)==
+
== 3.1 Requirement 1 (Global aspect) ==
 
'''Function''':
 
'''Function''':
Access to sensors' measures.
+
Access to sensors' measurement.
   
 
'''Description''':
 
'''Description''':
At any time, the beekeeper must be able to know the most recent measurements, and any other
+
At any time, the beekeeper must be able to knows the most recent measurements, and any other
 
prior to that.
 
prior to that.
   
Line 74: Line 73:
   
 
'''Source''':
 
'''Source''':
Sensors -> SX1272 -> SX1276 -> RaspberryPi -> Cloud -> VM at Nicolas PALIX's laboratory
+
Sensors -> SX1272 -> SX1276(Gateway LoRa) -> RaspberryPi -> Node-red -> InfluxDB -> Graphana
   
 
'''Outputs''':
 
'''Outputs''':
Line 82: Line 81:
   
 
'''Action''':
 
'''Action''':
Measurements on screen, he also can set a date to display measurements from that day.
+
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''':
 
'''Non functional requirements''':
   
 
'''Pre-condition''':
 
'''Pre-condition''':
  +
InfluxDB and Graphana server must be running on the RaspberrypPi
   
 
'''Post-condition''':
 
'''Post-condition''':
  +
Monitor must be connected to the computer
   
'''Side-effects''': Most not bother bees
+
'''Side-effects''':
   
 
=4. Product evolution=
 
=4. Product evolution=

Latest revision as of 15:44, 6 March 2018

Document History
Version Date Authors Description Validator Validation Date
1.0 05/02/18 BESNIER - LEVESQUE - WEILL Starting TBC TBC


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

  • Add more sensors.
  • More commands to control the emitter with the reciever (change measurement frequency,...)

5. Appendices

6. Index