Outils pour utilisateurs

Outils du site


cielmonprintemps

Ciel mon Printemps

Matériel

Interface

Nous utilisons TouschOSC pour effectuer les réglages. en fonction des lieux. Voici le fichier de configuration pour TouchOSC MK1

Il faut ensuite télécharger TouchOSC Editor sur un ordinateur pour synchroniser avec l'appareil mobile. Attention, il n'y a pas de de version pour Linux.

Streaming

Code

Code Arduino station météo

#include <WiFiS3.h>
#include "arduino_secrets.h"
 
#define anemometre A2
#define PI_4 0.78539816339
#define PI_2 1.5707963267948966192313216916398
#define PI3_4 2.35619449019
#define PI 3.1415926535897932384626433832795
#define PI5_4 3.92699081699
#define PI3_2 4.71238898038
#define PI7_4 5.49778714378
 
 
int status = WL_IDLE_STATUS;
// Le nom du réseau et le mot de passe sont stockés dans le fichier arduino_secrets.h
char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;
 
WiFiUDP Udp;
 
// Définition de l'adresse IP et du port de destination
IPAddress serveurIp(192, 168, 1, 159);  // 192.168.1.159
unsigned int serveurPort = 7000;
 
// définition du port local
unsigned int localPort = 7001;
 
unsigned long temps;
bool etat = false;
bool etat2 = false;
 
void setup() {
  Serial.begin(9600);
 
  // Vérification de la présence du module WiFi
  if (WiFi.status() == WL_NO_MODULE) {
    Serial.println("La communication avec le module WiFi a échouée!");
    // Arrêt
    while (true)
      ;
  }
 
  String fv = WiFi.firmwareVersion();
  if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
    Serial.println("Mettez à jour le firmware");
  }
 
  // Tentative de connexionau réseau WiFi
  while (status != WL_CONNECTED) {
    Serial.print("Tentative de connexion au SSID: ");
    Serial.println(ssid);
    status = WiFi.begin(ssid, pass);
 
    // Attente de 10s pour la connexion
    delay(10000);
  }
 
  Serial.println("Connecté au WiFi");
  affichageStutWiFi();
  Serial.println("\nConnexion au serveur...");
 
  // Démarre la liaison UDP
  Udp.begin(localPort);
 
  // Intialisation des ports de la station météo
  pinMode(anemometre, INPUT);  // Anémomètre
  pinMode(13, OUTPUT);
 
  temps = millis();
}
 
void loop() {
  if ((digitalRead(anemometre) == HIGH) && (etat == false) && (etat2 == false)) {
    etat = true;
    etat2 = true;
    int duree = millis() - temps;
    float vitesse = 10.0 / duree;
    float angle;
    switch (analogRead(A1) / 100) {
      case 0:
        angle = 0.0; //
        break;
      case 1:
        angle = PI_4; //
        break;
      case 2:
        angle = PI_2; //
        break;
      case 4:
        angle = PI7_4; //
        break;
      case 6:
        angle = PI3_4; //
        break;
      case 7:
        angle = PI3_2; //
        break;
      case 8:
        angle = PI5_4; //
        break;
      case 9:
        angle = PI; //
        break;
    }
    envoyeDonnees(vitesse * cos(angle), vitesse * sin(angle), serveurIp, serveurPort);
    temps = millis();
  }
  if ((digitalRead(anemometre) == HIGH) && (etat == false) && (etat2 == true)) {
    etat2 = false;
    etat = true;
  }
  if (digitalRead(anemometre) == LOW) {
    etat = false;
  }
}
 
void envoyeDonnees(float x, float y, IPAddress serveurIp, unsigned int ServeurPort) {
 
  // Formaqtion du message OSC
  uint8_t message[] = { 0x2F, 0x76, 0x65, 0x6E, 0x74, 0x00, 0x00, 0x00, 0x2C, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  uint8_t xTab[4];
  uint8_t yTab[4];
  memcpy(&xTab, &x, 4);
  memcpy(&yTab, &y, 4);
  for (int j = 0; j < 4; j++) {
    memcpy(&message[12 + j], &xTab[3 - j], 1);
    memcpy(&message[16 + j], &yTab[3 - j], 1);
  }
 
  // Envoie du message par UDP
  Udp.beginPacket(serveurIp, ServeurPort);
  Udp.write(message, 20);
  Udp.endPacket();
}
 
void affichageStutWiFi() {
  // Affiche le SSID du réseau
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
 
  // Affiche l'adresse IP de la carte
  IPAddress ip = WiFi.localIP();
  Serial.print("Adresse IP: ");
  Serial.println(ip);
 
  // Affiche la force du signal reçu
  long rssi = WiFi.RSSI();
  Serial.print("force du signal (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");
}

Archive projet

Code teteDeTurc

Code pour la prise de photos pour les festivaliers.

Archive des sources du programme

Code cielMonPrintemps

Programme principal de l'installation.

Archive des sources du programme

Liens pour le code

Droidcam

Application qui permet de transformer son téléphone en caméra sans fil vue comme une webcam

Lancer l'application via ADB en wifi

FP3:/ # monkey -p com.dev47apps.droidcam -v 1
FP3:/ # ps -A |grep cam                                                                      
u0_a156      31680   762 32171960 197348 SyS_epoll_wait     0 S com.dev47apps.droidcam
FP3:/ # kill 31680
cielmonprintemps.txt · Dernière modification : 2024/04/27 08:40 de Mushussu