diff --git a/ASTREOS_SMP.ino b/ASTREOS_SMP.ino
index b20a084ad03cb98f415c0e485cf4e4a1db98b47f..d7108dab6bc5cf246c7471ea6299993a321f1da2 100644
--- a/ASTREOS_SMP.ino
+++ b/ASTREOS_SMP.ino
@@ -20,7 +20,7 @@ void loop(){
   // ---------------------------------- Lecture et calcul du champ magnétique ---------------------------------------- 
   
   // lecture de la valeur analogique (entre 0 et 1024) pour une tension entre 0 et 5V
-  int hallAnalogique = analogRead(PORT_HALL);
+  hallAnalogique = analogRead(PORT_HALL);
 
   // transforme la valeur lue en Gauss
   // les valeurs évoluant entre 102 et 922 sont transformées en valeur évoluant entre -640 et 640
@@ -37,6 +37,7 @@ void loop(){
   //Serial.print("Lecture de la tension en mV = "); Serial.println(fsrVoltage);
   if (fsrVoltage == 0) {
     Serial.println("Aucune pression");
+    newton = 0 ;
   } else {
     // La tension = Vcc * R / (R + FSR) où R = 10K et Vcc = 5V
     // d'où FSR = ((Vcc - V) * R) / V 
@@ -64,6 +65,6 @@ void loop(){
   Serial.print("=> Force Analogique = "); Serial.print(fsrAnalogique); Serial.print(" || Force en Newtons: "); Serial.println(newton); 
 
   // attendre 100 millisecondes
-  delay(100);
+  delay(1000);
 }
 
diff --git a/Arduino/ASTREOS.ino b/Arduino/ASTREOS.ino
new file mode 100644
index 0000000000000000000000000000000000000000..4aa6500489f60d2de07c12bf0342af1f4027e752
--- /dev/null
+++ b/Arduino/ASTREOS.ino
@@ -0,0 +1,92 @@
+/* 
+   GaussPlot 27/12/2011  Arduining.com
+Showing Gauss measured by the SS495B in the serial monitor.
+(Miniature Radiometric Linear Hall Efect Sensor)
+Sensor connected to Analog channel 0.
+
+Translated and commented by Meurisse D. for the tutorial 
+http://wiki.mchobby.be/index.php?title=Senseur-Hall-SS495A
+
+*/
+#define XRANGE 50 
+#define PORT_HALL A0
+#define PORT_FSR A2
+
+int x,gss ;
+
+int fsrAnalogique ; // La lecture analogique depuis le pont diviseur FSR+Resistance.
+int fsrVoltage; // La lecture analogique convertie en tension
+unsigned long fsrResistance; // La tension convertie en resistance
+unsigned long fsrConductance;
+long fsrForce; // La resistance convertie en force (Newton)
+
+void setup(){
+  Serial.begin(9600);
+}   
+
+void loop(){
+  // lecture de la valeur analogique du Gaussmètre (entre 0 et 1024) pour une tension entre 0 et 5V
+  int aValue = analogRead(PORT_HALL);
+  //Serial.print(aValue);
+
+  // lecture de la valeur analogique du capteur de force (entre 0 et 1024) pour une tension entre 0 et 5V
+  int fsrAnalogique = analogRead(PORT_FSR);
+    
+  // transforme la valeur de 0 à 1024 vers 0 à 50
+  x = map(aValue, 0, 1024, 0, XRANGE);
+
+  // transforme la valeur lue en Gauss
+  gss = map(aValue, 102, 922, -640, 640);
+
+  // ------ Affichage d'un bargraph sur le moniteur série ----
+  /*Serial.print("|"); 
+  for (int i=0;i<x;i++){
+    if(i==XRANGE/2-1)Serial.print("|");
+    else Serial.print("-");
+  }
+  Serial.print("O");
+  for (int i=x+1;i<XRANGE;i++){
+    if(i==XRANGE/2-1)Serial.print("|");
+    else Serial.print("-");
+  }
+  Serial.print("|");*/
+  // ----------------------------------------------------------
+
+  // affiche la valeur en Gauss
+  Serial.println(gss);
+  //Serial.println(" Gauss");
+
+  // lecture de la valeur analogique (entre 0 et 1023) pour une tension entre 0 et 5V (= 5000mV)
+  /*fsrVoltage = map(fsrAnalogique, 0, 1023, 0, 5000);
+
+  Serial.print("Lecture de la tension en mV = ");
+  Serial.println(fsrVoltage);
+  if (fsrVoltage == 0) {
+    Serial.println("Aucune pression");
+  } else {
+    // La tension = Vcc * R / (R + FSR) où R = 10K et Vcc = 5V
+    // d'où FSR = ((Vcc - V) * R) / V 
+    fsrResistance = 5000 - fsrVoltage; // fsrVoltage est en millivolts donc 5V = 5000mV
+    fsrResistance *= 10000; // 10K resistance
+    fsrResistance /= fsrVoltage;
+    Serial.print("FSR resistance en ohms = "); Serial.println(fsrResistance);
+   
+    fsrConductance = 1000000; // on mesure en micro-ohm 
+    fsrConductance /= fsrResistance;
+    Serial.print("Conductance en micro-ohm : "); Serial.println(fsrConductance);
+   
+    // Use the two FSR guide graphs to approximate the force
+    if (fsrConductance <= 1000) {
+      fsrForce = fsrConductance / 80;
+      Serial.print("Force en Newtons: "); Serial.println(fsrForce);
+    } else {
+      fsrForce = fsrConductance - 1000;
+      fsrForce /= 30; 
+      Serial.print("Force en Newtons: "); Serial.println(fsrForce);
+    }
+  }*/
+  
+  // attendre 1/10 de seconde
+  delay(200);
+}
+
diff --git a/Raspberry/RecuperationValeur_MQTT.py b/Raspberry/RecuperationValeur_MQTT.py
new file mode 100644
index 0000000000000000000000000000000000000000..e166851a19878188adfc27f927ed0e554694e5ca
--- /dev/null
+++ b/Raspberry/RecuperationValeur_MQTT.py
@@ -0,0 +1,54 @@
+##############
+## Script listens to serial port and writes contents into a file
+##############
+## requires pySerial to be installed
+import serial
+import paho.mqtt.client as mqtt
+import time
+import sys
+
+def on_connect(client, userdata, flags, rc):
+    if rc == 0:
+        print("Connected to broker")
+
+        global Connected
+        Connected = True
+ 
+    else:
+        print("Connection failed")
+
+Connected = False
+
+client = mqtt.Client(transport="websockets")
+client.on_connect = on_connect
+client.connect("pil-09.univlehavre.lan", 9001, 60)
+ 
+client.loop_start() 
+
+while Connected != True: 
+    time.sleep(0.1)
+
+serial_port = '/dev/ttyACM0';
+baud_rate = 9600; #In arduino, Serial.begin(baud_rate)
+
+ser = serial.Serial(serial_port, baud_rate)
+
+try:
+    while True:
+        line = ser.readline();
+        line = line.decode("utf-8") #ser.readline returns a binary, convert to string
+	if "-" in line:
+		prefix = '-'
+	else:
+		prefix = ''
+
+	value = ''.join(c for c in line if c.isdigit())	
+	if value.isdigit():
+		value = prefix+value;
+		print(int(value));
+		client.publish("capteurs/gauss1", int(value));
+	else:
+		print("Error bad value", value);
+except KeyboardInterrupt:
+    client.disconnect()
+    client.loop_stop()
diff --git a/VisualisationValeur.py b/VisualisationValeur.py
new file mode 100644
index 0000000000000000000000000000000000000000..ef2ddb594914c9a59b0d6d8340a9a97d2c6006aa
--- /dev/null
+++ b/VisualisationValeur.py
@@ -0,0 +1,64 @@
+# UTILISATION
+
+# sans argument = full time 
+
+# avec argument =>
+# 	arg1 = date de debut
+#	arg2 = date de fin
+
+
+import matplotlib.pyplot as plt
+import csv
+import sys
+from datetime import datetime
+
+x = []
+y = []
+moy = []
+CONST_MOYENNE = 50
+fullTime = False
+
+if len(sys.argv) == 1:
+	fullTime = True
+elif len(sys.argv) == 3 :
+	try:
+		date1 = datetime.strptime(sys.argv[1], '%Y-%m-%d %H:%M:%S')
+		date2 = datetime.strptime(sys.argv[2], '%Y-%m-%d %H:%M:%S')
+	except:
+		print("Erreur, arguments incorrect. Les dates doivent etre sous la forme \"AAAA-MM-JJ HH-mm-SS\"")
+		exit(1)
+else :
+	print("Erreur, arguments incorrect. Les dates doivent etre sous la forme \"AAAA-MM-JJ HH-mm-SS\"")
+	exit(1)
+
+i = 0 
+with open('mytable.csv','r') as csvfile:
+	next(csvfile, None)
+	plots = csv.reader(csvfile, delimiter=',')
+	for row in plots:
+		if not fullTime:
+			date = datetime.strptime(row[1],'%Y-%m-%d %H:%M:%S')
+			if (date1-date).total_seconds() > 0:
+				continue
+
+		if fullTime or (date2-date).total_seconds() > 0 :
+			x.append(i)
+			y.append(int(row[2]))
+			
+			if i >= CONST_MOYENNE :
+				moyenne = 0 
+				for j in range(i-CONST_MOYENNE, i, 1) :
+					moyenne = moyenne+y[j]
+				moy.append(moyenne / CONST_MOYENNE)
+				
+			else:
+				moy.append(int(row[2]))
+			i = i+1
+		
+plt.plot(x,y, label='Donnes brut')
+plt.plot(x,moy, label='Moyenne mobile (50)')
+plt.xlabel('Gauss')
+plt.ylabel('temps (200ms)')
+plt.title('Astreos')
+plt.legend()
+plt.show()
\ No newline at end of file
diff --git a/readme.rst b/readme.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ff71fb2a59cc4c1f9c5ec099a35cf7e8fb738794
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,21 @@
+# Astreos
+
+## Lancement d'un test simple
+
+- Mettre en fonctionnement [Firediag](https://git.litislab.fr/hicham.brahimi/firediag) (Lancer le script [Verification.py](https://git.litislab.fr/hicham.brahimi/firediag/blob/master/Verification.py) en desactivant GenerationDonneesMQTT)
+
+- Installer et lancer les scripts respectivement dans l'Arduino et le Raspberry Pi 
+```sh
+# Pour le Raspberry Pi
+$ source .profile
+$ workon cv
+$ python RecuperationValeur_MQTT.py &
+$ disown # Si lancé par SSH
+```
+- Si la BDD est trop grosse pour être lu sur http://website.cs-dc.org/apps/ci1/firediag/index.php/controller/ : 
+    - Exporter la table valeur 
+    ```sh
+     mysql -u firediag -p ********** -e "select * from valeur;" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > mytable.csv # Ajouter une clause WHERE si plusieurs capteurs
+    ```
+    - Executer [VisualisationValeur.py](https://git.litislab.fr/hicham.brahimi/astreos_arduino/blob/master/VisualisationValeur.py)
+