projets:cctv_disco:start

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:cctv_disco:start [2021/11/22 13:25]
admin [Références et liens]
projets:cctv_disco:start [2022/04/06 17:31] (Version actuelle)
risbo [Photos et médias]
Ligne 21: Ligne 21:
 ===== Notes techniques et matériaux ===== ===== Notes techniques et matériaux =====
  
-  * Esp 32 +  * **ESP32 cam** [[https://www.amazon.fr/XTVTX-ESP32-CAM-Bluetooth-ESP32-CAM-MB-compatible/dp/B093GSCBWJ/ref=sr_1_2_sspa?keywords=esp32+cam&qid=1637572898&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExVFlWMFU3VUdITTBJJmVuY3J5cHRlZElkPUEwNzc5OTg2MTBLODAzWTkyUTNYSSZlbmNyeXB0ZWRBZElkPUEwMjMwMzMyMlMzUVpVSU9SUVpUTiZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=|Chez amazon]] 
-  Camera shield esp 32 +la camera envoie un flux video en wifi...eventuellement avec Motioneye (sur linux) on peut ajouter des fonction de detection mouvement/face etc...  mais c'est sur linux et complexe.
-  esp8266 +
-  led de couleur assez puissantes +
-  booster 5V-12v +
-  * lecteur mp3 pour arduino + ampli + enceinte   OU  enceinte bluetooth powerbank+
  
 +  * **ESP8266 :** Permet de commander en wifi l'allumage de LED et d'un module mp3 via une page web.
  
-**ESP32 cam** [[https://www.amazon.fr/XTVTX-ESP32-CAM-Bluetooth-ESP32-CAM-MB-compatible/dp/B093GSCBWJ/ref=sr_1_2_sspa?keywords=esp32+cam&qid=1637572898&sr=8-2-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUExVFlWMFU3VUdITTBJJmVuY3J5cHRlZElkPUEwNzc5OTg2MTBLODAzWTkyUTNYSSZlbmNyeXB0ZWRBZElkPUEwMjMwMzMyMlMzUVpVSU9SUVpUTiZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=|Chez amazon]]+  * **Lecteur Redmp3** [[https://www.amazon.fr/HLLR-multiprises-amplificateur-monaural-Haut-Parleur/dp/B09M347LCM/ref=sr_1_6?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=module+mp3+arduino+UART&qid=1637573964&sr=8-6|Amazon]] (se declenche avec une arduino ou esp..) necessite une carte micro SD et necessite un ampli et enceinte pour faire :!: un son assez puissant.... ou enceinte bluetooth...batterie integrée. Fonctionne avec librairie Redmp3.h 
  
-la camera envoie un flux video en wifi...eventuellement avec Motioneye (sur linuxon peut ajouter des fonction de detection mouvement/face etc...  mais c'est sur linux et complexe.+  * :!: **Led 4mm** [[https://www.amazon.fr/BOJACK-couleurs-pi%C3%A8ces-assored-Transparent/dp/B07RTWQSJB/ref=sr_1_1_sspa?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=led+4mm&qid=1637574016&sr=8-1-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzTlBMVUJGWEUzNFpHJmVuY3J5cHRlZElkPUEwMjE4MzA2M0NCMFJPQk5MN1JVQyZlbmNyeXB0ZWRBZElkPUEwNzg1MTEzMjJSOTc1VU5QOTdaTiZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=|Amazon]]  ne seront pas puissante a cette taille.... ou COB 3W (necessitant radiateur[[https://fr.aliexpress.com/item/4001197438816.html?src=google&src=google&memo1=freelisting&albch=shopping&acnt=248-630-5778&isdl=y&slnk=&plac=&mtctp=&albbt=Google_7_shopping&aff_platform=google&aff_short_key=UneMJZVf&albagn=888888&isSmbAutoCall=false&needSmbHouyi=false&albcp=10191220526&albag=107473525328&trgt=1284054470089&crea=fr4001197438816&netw=u&device=c&albpg=1284054470089&albpd=fr4001197438816&gclid=CjwKCAiAnO2MBhApEiwA8q0HYcGiRxQ_a_-R3cDrbKuW4i2Z3E9pK4Vlkhx3w2dXck8m3Jbc1fTYIhoCy1wQAvD_BwE&gclsrc=aw.ds|Ali]] ?
  
-**ESP8266 :** Permet de commander en wifi l'allumage de LED et d'un module mp3.+  Jumper 
 +  Breadboard 
 +  Powerbank et peut être booster... 
 +  * Enceinte Bluetooth si besoin son fort
  
-**Lecteur mp3** (se declenche avec une arduino ou esp..) necessite une carte micro SD ! 
-[[https://www.amazon.fr/HLLR-multiprises-amplificateur-monaural-Haut-Parleur/dp/B09M347LCM/ref=sr_1_6?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=module+mp3+arduino+UART&qid=1637573964&sr=8-6|Lien externe]] 
-necessite un ampli et enceinte pour faire :!: un son assez puissant.... ou enceinte bluetooth...batterie integrée.. 
  
-:!: **Led 4mm**   ne seront pas puissante a cette taille.... 
-[[https://www.amazon.fr/BOJACK-couleurs-pi%C3%A8ces-assored-Transparent/dp/B07RTWQSJB/ref=sr_1_1_sspa?__mk_fr_FR=%C3%85M%C3%85%C5%BD%C3%95%C3%91&keywords=led+4mm&qid=1637574016&sr=8-1-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUEzTlBMVUJGWEUzNFpHJmVuY3J5cHRlZElkPUEwMjE4MzA2M0NCMFJPQk5MN1JVQyZlbmNyeXB0ZWRBZElkPUEwNzg1MTEzMjJSOTc1VU5QOTdaTiZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=|Lien externe]] 
  
 ==== Esp8266 page web controle ==== ==== Esp8266 page web controle ====
Ligne 53: Ligne 48:
  
  
-===== Photos et médias=====+==== Code ==== 
 +Code qui cree une pageweb avec deux boutons, déclenchant allumage de deux led et lancant fichier mp3. 
 +L'url de la page est donné en serie. (en l'occurence ici : 192.168.0.125) 
 + 
 +<code c+> 
 +// MP3 lib 
 +#include <SoftwareSerial.h> 
 +#include "RedMP3.h" 
 + 
 +#define MP3_RX 12//RX of Serial MP3 module connect to D7 of wemos 
 +#define MP3_TX 13//TX to D8, wemos 
 +MP3 mp3(MP3_RX, MP3_TX); 
 + 
 +int8_t track  = 0x01;//the first song in the TF card 
 +int8_t track2  = 0x02;//the first song in the TF card 
 +int8_t volume = 0x1a;//0~0x1e (30 adjustable level) 
 + 
 + 
 + 
 +// Load Wi-Fi library 
 +#include <ESP8266WiFi.h> 
 +  
 +// Replace with your network credentials 
 +const char* ssid     = "Artnum"; 
 +const char* password = "artnum123"; 
 +  
 +// Set web server port number to 80 
 +WiFiServer server(80); 
 +  
 +// Variable to store the HTTP request 
 +String header; 
 +  
 +// Auxiliar variables to store the current output state 
 +String output5State = "off"; 
 +String output4State = "off"; 
 +  
 +// Assign output variables to GPIO pins 
 +const int output5 = 5; 
 +const int output4 = 4; 
 +  
 +// Current time 
 +unsigned long currentTime = millis(); 
 +// Previous time 
 +unsigned long previousTime = 0;  
 +// Define timeout time in milliseconds (example: 2000ms = 2s) 
 +const long timeoutTime = 2000; 
 +  
 +void setup() { 
 +  Serial.begin(115200); 
 +  // Initialize the output variables as outputs 
 +  pinMode(output5, OUTPUT); 
 +  pinMode(output4, OUTPUT); 
 +  // Set outputs to LOW 
 +  digitalWrite(output5, LOW); 
 +  digitalWrite(output4, LOW); 
 +  
 +  // Connect to Wi-Fi network with SSID and password 
 +  Serial.print("Connecting to "); 
 +  Serial.println(ssid); 
 +  WiFi.begin(ssid, password); 
 +  while (WiFi.status() != WL_CONNECTED) { 
 +    delay(500); 
 +    Serial.print("."); 
 +  } 
 +  // Print local IP address and start web server 
 +  Serial.println(""); 
 +  Serial.println("WiFi connected."); 
 +  Serial.println("IP address: "); 
 +  Serial.println(WiFi.localIP()); 
 +  server.begin(); 
 +
 +  
 +void loop(){ 
 +  WiFiClient client = server.available();   // Listen for incoming clients 
 +  
 +  if (client) {                             // If a new client connects, 
 +    Serial.println("New Client.");          // print a message out in the serial port 
 +    String currentLine = "";                // make a String to hold incoming data from the client 
 +    currentTime = millis(); 
 +    previousTime = currentTime; 
 +    while (client.connected() && currentTime - previousTime <= timeoutTime) { // loop while the client's connected 
 +      currentTime = millis();          
 +      if (client.available()) {             // if there's bytes to read from the client, 
 +        char c = client.read();             // read a byte, then 
 +        Serial.write(c);                    // print it out the serial monitor 
 +        header += c; 
 +        if (c == '\n') {                    // if the byte is a newline character 
 +          // if the current line is blank, you got two newline characters in a row. 
 +          // that's the end of the client HTTP request, so send a response: 
 +          if (currentLine.length() == 0) { 
 +            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK) 
 +            // and a content-type so the client knows what's coming, then a blank line: 
 +            client.println("HTTP/1.1 200 OK"); 
 +            client.println("Content-type:text/html"); 
 +            client.println("Connection: close"); 
 +            client.println(); 
 +  
 +            // turns the GPIOs on and off 
 +            if (header.indexOf("GET /5/on") >= 0) { 
 +              Serial.println("GPIO 5 on"); 
 +              output5State = "on"; 
 +              digitalWrite(output5, HIGH); 
 +              mp3.playWithVolume(track2,volume);   // nommer bien 001xxx.mp3 
 +              delay(50); 
 + 
 +               
 +            } else if (header.indexOf("GET /5/off") >= 0) { 
 +              Serial.println("GPIO 5 off"); 
 +              output5State = "off"; 
 +              digitalWrite(output5, LOW); 
 +              mp3.stopPlay(); 
 +              delay(50); 
 + 
 +               
 +            } else if (header.indexOf("GET /4/on") >= 0) { 
 +              Serial.println("GPIO 4 on"); 
 +              output4State = "on"; 
 + 
 +              //Actions  
 +              digitalWrite(output4, HIGH); 
 +              mp3.playWithVolume(track,volume);   // nommer bien 001xxx.mp3 
 +              delay(50); 
 + 
 +                             
 +            } else if (header.indexOf("GET /4/off") >= 0) { 
 +              Serial.println("GPIO 4 off"); 
 +              output4State = "off"; 
 +              digitalWrite(output4, LOW); 
 +              mp3.stopPlay(); 
 +              delay(50); 
 +            } 
 +  
 +            // Display the HTML web page 
 +            client.println("<!DOCTYPE html><html>"); 
 +            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); 
 +            client.println("<link rel=\"icon\" href=\"data:,\">"); 
 +            // CSS to style the on/off buttons  
 +            // Feel free to change the background-color and font-size attributes to fit your preferences 
 +            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}"); 
 +            client.println(".button { background-color: #195B6A; border: none; color: white; padding: 16px 40px;"); 
 +            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}"); 
 +            client.println(".button2 {background-color: #77878A;}</style></head>"); 
 +  
 +            // Web Page Heading 
 +            client.println("<body><h1>ESP8266 Web Server</h1>"); 
 +  
 +            // Display current state, and ON/OFF buttons for GPIO 5   
 +            client.println("<p>GPIO 5 - State " + output5State + "</p>"); 
 +            // If the output5State is off, it displays the ON button        
 +            if (output5State=="off") { 
 +              client.println("<p><a href=\"/5/on\"><button class=\"button\">ON</button></a></p>"); 
 +            } else { 
 +              client.println("<p><a href=\"/5/off\"><button class=\"button button2\">OFF</button></a></p>"); 
 +            }  
 +  
 +            // Display current state, and ON/OFF buttons for GPIO 4   
 +            client.println("<p>GPIO 4 - State " + output4State + "</p>"); 
 +            // If the output4State is off, it displays the ON button        
 +            if (output4State=="off") { 
 +              client.println("<p><a href=\"/4/on\"><button class=\"button\">ON</button></a></p>"); 
 +            } else { 
 +              client.println("<p><a href=\"/4/off\"><button class=\"button button2\">OFF</button></a></p>"); 
 +            } 
 +            client.println("</body></html>"); 
 +  
 +            // The HTTP response ends with another blank line 
 +            client.println(); 
 +            // Break out of the while loop 
 +            break; 
 +          } else { // if you got a newline, then clear currentLine 
 +            currentLine = ""; 
 +          } 
 +        } else if (c != '\r') {  // if you got anything else but a carriage return character, 
 +          currentLine += c;      // add it to the end of the currentLine 
 +        } 
 +      } 
 +    } 
 +    // Clear the header variable 
 +    header = ""; 
 +    // Close the connection 
 +    client.stop(); 
 +    Serial.println("Client disconnected."); 
 +    Serial.println(""); 
 +  } 
 +
 +</code> 
 + 
 +{{:projets:cctv_disco:capture_d_ecran_2022-03-05_111300.png?400|{{:projets:cctv_disco:img_4082.jpg?400|{{:projets:cctv_disco:img_4082.jpg?400|{{:projets:cctv_disco:screenshot_20220223-235110_samsung_internet.jpg?400|}}}}}}}}===== Photos et médias=====
 Code pour afficher les images du projet : Code pour afficher les images du projet :
 {{gallery>?&crop&lightbox }} {{gallery>?&crop&lightbox }}
  • projets/cctv_disco/start.1637583915.txt.gz
  • Dernière modification: 2021/11/22 13:25
  • de admin