diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..8c9fcfe9f81e081ae39aed8de2fe28c88fb4a357
Binary files /dev/null and b/.DS_Store differ
diff --git a/GW-V2/ttn_webhook.php b/GW-V2/ttn_webhook.php
new file mode 100644
index 0000000000000000000000000000000000000000..8fe6363bcc15a2521e1dd42edd1fb4de3239efa0
--- /dev/null
+++ b/GW-V2/ttn_webhook.php
@@ -0,0 +1,50 @@
+<?php
+// Récupération des données envoyées par TTN
+$json = file_get_contents('php://input');
+$data = json_decode($json);
+
+// Affichage des données reçues pour debug
+echo "Données reçues :\n";
+print_r($data);
+echo "\n";
+
+// Vérification de la structure des données reçues
+if (!isset($data) || !isset($data->analog_in_1) || !isset($data->analog_in_2)) {
+    echo "Erreur : Données invalides. Vérifiez que les champs analog_in_1 et analog_in_2 sont présents.";
+    return;
+}
+
+// Création des données à envoyer vers Sensor Community
+$post = new stdClass();
+$post->sensordatavalues = [
+    (object)[
+        "value_type" => "P1",
+        "value" => $data->analog_in_1
+    ],
+    (object)[
+        "value_type" => "P2",
+        "value" => $data->analog_in_2
+    ]
+];
+
+// Initialisation de la requête cURL
+$ch = curl_init("http://api.sensor.community/v1/push-sensor-data/");
+curl_setopt($ch, CURLOPT_POST, 1);
+curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+curl_setopt($ch, CURLOPT_HTTPHEADER, array(
+    "X-Sensor: esp32-900881266", // Valeur fixe
+    "X-PIN: 1",
+    "Content-Type: application/json",
+    "User-Agent: ttn-forwarder/1.0"
+));
+curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($post));
+
+// Exécution de la requête et gestion des erreurs
+$output = curl_exec($ch);
+if ($output === false) {
+    echo "Erreur cURL : " . curl_error($ch);
+} else {
+    echo "Réponse de Sensor Community : " . $output;
+}
+curl_close($ch);
+?>