Morse Attack : Différence entre versions
(→Déroulement du projet) |
|||
(29 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 3 : | Ligne 3 : | ||
==Présentation== | ==Présentation== | ||
− | Ce projet | + | |
+ | Ce projet permet de convertir du texte rentré depuis une page web (créée par le wemos) en morse. | ||
+ | |||
+ | L'utilisateur peut ensuite utiliser le bouton pour émettre ce qu'il voulait dire en morse. | ||
+ | |||
+ | Il peut aussi improviser quelques mélodies stridentes pour des heures de fun ! | ||
==Liste du matériel== | ==Liste du matériel== | ||
− | + | * deux piles de 1,5V et un boitier pour les piles | |
+ | |||
+ | * '''ou''' une batterie portable | ||
+ | |||
+ | * fils électriques | ||
+ | |||
+ | * une LED | ||
+ | |||
+ | * un buzzer | ||
+ | |||
+ | * un interrupteur | ||
+ | |||
+ | * une carte wemos | ||
+ | |||
+ | * un ordinateur avec l'IDE d'arduino | ||
+ | |||
+ | ==Équipe== | ||
+ | |||
+ | * Sarah Bucquet | ||
+ | |||
+ | * Stephane Cordier | ||
+ | |||
+ | * Nathan De Saint Just | ||
+ | |||
+ | * Corentin Gaillard | ||
+ | |||
+ | [[Fichier:equipe_au_travail_morse_attack.jpg|200px]] | ||
+ | |||
+ | ==Déroulement du projet== | ||
+ | |||
+ | |||
+ | test des composants et conception du circuit | ||
+ | [[Fichier:cablage morse attack.jpg|300px]] | ||
+ | |||
+ | création de schéma pour découper la boite en 3D | ||
+ | [[Fichier:Design de la boite morse attack.JPG|300px]] | ||
+ | |||
+ | |||
+ | assemblage de la boite | ||
+ | [[Fichier:boite morse attack.jpg|300px]] | ||
+ | |||
+ | assemblage sur la boite | ||
+ | [[Fichier:assemblage boite morse attack.jpg|300px]] | ||
+ | |||
+ | |||
+ | Pendant ce temps, sur les ordinateurs... | ||
+ | |||
+ | création d'un réseau wifi et d'une page web par la carte | ||
+ | [[Fichier:wifi morse attack.png|500px]] | ||
+ | |||
+ | ==Ressources== | ||
+ | |||
+ | * schéma de câblage | ||
+ | [[Fichier:Schéma de cablage morse attack.jpg|500px]] | ||
+ | |||
+ | * Code à mettre sur la wemos : | ||
+ | """Pour que l'IDE arduino repère la wemos, il faut installer des bibliothèques, voir ce site :[https://wiki.wemos.cc/tutorials:get_started:get_started_in_arduino]""" | ||
+ | |||
+ | <pre> | ||
+ | // on appelle la bibliothèque qui gère le Wemos D1 mini | ||
+ | #include <ESP8266WiFi.h> | ||
+ | |||
+ | // Gestion du Wifi | ||
+ | #include <ESP8266WebServer.h> | ||
+ | #include <DNSServer.h> | ||
+ | #include <ESP8266mDNS.h> | ||
+ | #include <WiFiClient.h> | ||
+ | |||
+ | //Code de la page web | ||
+ | const char index_html[] PROGMEM={"<!DOCTYPE html>\n<html>\n<body>\n\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\n<!--\n\n//Morse code converter- By Luke Watson (luke@lukewatson.f2s.com)\n//Script featured on JK (http://javascriptkit.com)\n//Visit http://javascriptkit.com for this script and more\n\nvar charCodes=new Array(36); charCodes[\"a\"]=\". _\";\ncharCodes[\"b\"]=\"_ . . .\";\ncharCodes[\"c\"]=\"_ . _ .\";\ncharCodes[\"d\"]=\"_ . .\";\ncharCodes[\"e\"]=\".\";\ncharCodes[\"f\"]=\". . _ .\";\ncharCodes[\"g\"]=\"_ _ .\";\ncharCodes[\"h\"]=\". . . .\";\ncharCodes[\"i\"]=\". .\";\ncharCodes[\"j\"]=\". _ _ _\";\ncharCodes[\"k\"]=\"_ . _\";\ncharCodes[\"l\"]=\". _ . .\";\ncharCodes[\"m\"]=\"_ _\";\ncharCodes[\"n\"]=\"_ .\";\ncharCodes[\"o\"]=\"_ _ _\";\ncharCodes[\"p\"]=\". _ _ .\";\ncharCodes[\"q\"]=\"_ _ . _\";\ncharCodes[\"r\"]=\". _ .\";\ncharCodes[\"s\"]=\". . .\";\ncharCodes[\"t\"]=\"_\";\ncharCodes[\"u\"]=\". . _\";\ncharCodes[\"v\"]=\". . . _\";\ncharCodes[\"w\"]=\". _ _\";\ncharCodes[\"x\"]=\"_ . . _\";\ncharCodes[\"y\"]=\"_ . _ _\";\ncharCodes[\"z\"]=\"_ _ . .\";\ncharCodes[\"1\"]=\". _ _ _ _\";\ncharCodes[\"2\"]=\". . _ _ _\";\ncharCodes[\"3\"]=\". . . _ _\";\ncharCodes[\"4\"]=\". . . . _\";\ncharCodes[\"5\"]=\". . . . .\";\ncharCodes[\"6\"]=\"_ . . . .\";\ncharCodes[\"7\"]=\"_ _ . . .\";\ncharCodes[\"8\"]=\"_ _ _ . .\";\ncharCodes[\"9\"]=\"_ _ _ _ .\";\ncharCodes[\"0\"]=\"_ _ _ _ _\";\nvar temp=''\nfunction transmit(){\n//A compléter\n}\nfunction encode() {\ndocument.morsecode.chars.value=document.morsecode.chars.value.toLowerCase();\ndocument.morsecode.codebox.value=\"\";\ntemp=''\nvar chars=document.morsecode.chars.value.split(\"\");\n\nfor (a=0; a<chars.length; a++) {\nif (chars[a]!=\" \") {\nif (window.charCodes[chars[a]]) {\ndocument.morsecode.codebox.value+=charCodes[chars[a]]+\" \";\ntemp+=chars[a]+\"=\"+charCodes[chars[a]]+\"\\n\";\n}\nelse\ntemp+=chars[a]+\"=(None)\\n\";\n}\nif (chars[a]==\" \"){\ndocument.morsecode.codebox.value+=\"/\";\n}\n\n}\n\n}\n// -->\n</SCRIPT>\n\n<FORM NAME=\"morsecode\">\nType in a word or phrase: <INPUT TYPE=\"TEXT\" NAME=\"chars\" size=\"28\" value=\"Help\"> <INPUT TYPE=\"BUTTON\" VALUE=\"Encode\" onClick=\"encode()\"><BR><BR>\n<TEXTAREA NAME=\"codebox\" cols=\"50\" rows=\"11\" style=\"width:70%\" wrap=\"virtual\"> </TEXTAREA><br /><INPUT TYPE=\"BUTTON\" VALUE=\"Transmit\" onClick=\"transmit();\">\n</FORM>\n\n<p>This free script provided by<br />\n<a href=\"http://javascriptkit.com\">JavaScript\nKit</a></p>\n\n</body>\n</html>"}; | ||
− | - | + | // Definition du WiFi |
+ | const char *nomDuReseau = "Morse_Attack"; // Nom du réseau wifi du petit bot | ||
+ | const char *motDePasse = "123456789"; // Mot de passe du réseau wifi du petit bot | ||
+ | // ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon | ||
− | + | //création du monServeur | |
+ | ESP8266WebServer monServeur(80); // Création de l'objet monServeur | ||
+ | //déclaration des Variables | ||
+ | int sequence[42]={1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,0}; | ||
+ | //String code=""; | ||
− | + | void setup(){ | |
+ | delay(1000); | ||
+ | Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur | ||
+ | Serial.println(); | ||
+ | Serial.println(); | ||
+ | configDuWifi(); | ||
+ | pinMode(D1,OUTPUT); | ||
+ | pinMode(LED_BUILTIN, OUTPUT); //met la led du Wemos en sortie | ||
+ | digitalWrite(LED_BUILTIN, LOW); //met la led du Wemos sur le niveau bas ce qui l'allume. | ||
+ | } | ||
− | + | void loop(){ | |
+ | monServeur.handleClient(); | ||
+ | //testAllumage(sequence); | ||
+ | } | ||
+ | void testAllumage(int *sequence){ | ||
+ | for(int i = 0; i<42; i++){ | ||
+ | int state = sequence[i]; | ||
+ | digitalWrite(D1,state); | ||
+ | delay(100); | ||
+ | } | ||
+ | } | ||
− | + | ////////////////////////CONFIGURATION WIFI/////////////////////////////////////////////// | |
+ | void configDuWifi(){ // Fonction de configuratio du Wifi | ||
+ | WiFi.mode(WIFI_AP); // le wemos est en mode "Point d'Accès" (il déploie un réseau wifi) | ||
+ | WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le "Point d'Accès". | ||
+ | MDNS.begin(nomDuReseau); // gérer les DNS ce qui rendra votre petit bot accessible | ||
+ | MDNS.addService("http", "tcp", 80); // via http://nomDuReseau.local | ||
+ | IPAddress monIP = WiFi.softAPIP(); // on récupère l'adresse IP du petit Bot | ||
+ | Serial.print("Adresse IP de ce Point d'Accès : "); | ||
+ | Serial.println(monIP); // on l'écrit sur le moniteur série | ||
+ | monServeur.on("/", HTTP_GET, []() { | ||
+ | monServeur.send_P(200, "text/html", index_html); | ||
+ | }); | ||
+ | monServeur.begin(); //Démarrage du monServeur | ||
+ | Serial.println("Serveur HTTP démarré"); | ||
+ | return; // on retourne à l'endroit ou la fonction a été appelée. | ||
+ | } | ||
+ | </pre> |
Version actuelle datée du 22 janvier 2019 à 10:00
Présentation
Ce projet permet de convertir du texte rentré depuis une page web (créée par le wemos) en morse.
L'utilisateur peut ensuite utiliser le bouton pour émettre ce qu'il voulait dire en morse.
Il peut aussi improviser quelques mélodies stridentes pour des heures de fun !
Liste du matériel
- deux piles de 1,5V et un boitier pour les piles
- ou une batterie portable
- fils électriques
- une LED
- un buzzer
- un interrupteur
- une carte wemos
- un ordinateur avec l'IDE d'arduino
Équipe
- Sarah Bucquet
- Stephane Cordier
- Nathan De Saint Just
- Corentin Gaillard
Déroulement du projet
test des composants et conception du circuit
création de schéma pour découper la boite en 3D
Erreur lors de la création de la miniature : Fichier avec des dimensions supérieures à 12,5 MP
Pendant ce temps, sur les ordinateurs...
création d'un réseau wifi et d'une page web par la carte
Ressources
- schéma de câblage
- Code à mettre sur la wemos :
"""Pour que l'IDE arduino repère la wemos, il faut installer des bibliothèques, voir ce site :[1]"""
// on appelle la bibliothèque qui gère le Wemos D1 mini #include <ESP8266WiFi.h> // Gestion du Wifi #include <ESP8266WebServer.h> #include <DNSServer.h> #include <ESP8266mDNS.h> #include <WiFiClient.h> //Code de la page web const char index_html[] PROGMEM={"<!DOCTYPE html>\n<html>\n<body>\n\n<SCRIPT LANGUAGE=\"JAVASCRIPT\">\n<!--\n\n//Morse code converter- By Luke Watson (luke@lukewatson.f2s.com)\n//Script featured on JK (http://javascriptkit.com)\n//Visit http://javascriptkit.com for this script and more\n\nvar charCodes=new Array(36); charCodes[\"a\"]=\". _\";\ncharCodes[\"b\"]=\"_ . . .\";\ncharCodes[\"c\"]=\"_ . _ .\";\ncharCodes[\"d\"]=\"_ . .\";\ncharCodes[\"e\"]=\".\";\ncharCodes[\"f\"]=\". . _ .\";\ncharCodes[\"g\"]=\"_ _ .\";\ncharCodes[\"h\"]=\". . . .\";\ncharCodes[\"i\"]=\". .\";\ncharCodes[\"j\"]=\". _ _ _\";\ncharCodes[\"k\"]=\"_ . _\";\ncharCodes[\"l\"]=\". _ . .\";\ncharCodes[\"m\"]=\"_ _\";\ncharCodes[\"n\"]=\"_ .\";\ncharCodes[\"o\"]=\"_ _ _\";\ncharCodes[\"p\"]=\". _ _ .\";\ncharCodes[\"q\"]=\"_ _ . _\";\ncharCodes[\"r\"]=\". _ .\";\ncharCodes[\"s\"]=\". . .\";\ncharCodes[\"t\"]=\"_\";\ncharCodes[\"u\"]=\". . _\";\ncharCodes[\"v\"]=\". . . _\";\ncharCodes[\"w\"]=\". _ _\";\ncharCodes[\"x\"]=\"_ . . _\";\ncharCodes[\"y\"]=\"_ . _ _\";\ncharCodes[\"z\"]=\"_ _ . .\";\ncharCodes[\"1\"]=\". _ _ _ _\";\ncharCodes[\"2\"]=\". . _ _ _\";\ncharCodes[\"3\"]=\". . . _ _\";\ncharCodes[\"4\"]=\". . . . _\";\ncharCodes[\"5\"]=\". . . . .\";\ncharCodes[\"6\"]=\"_ . . . .\";\ncharCodes[\"7\"]=\"_ _ . . .\";\ncharCodes[\"8\"]=\"_ _ _ . .\";\ncharCodes[\"9\"]=\"_ _ _ _ .\";\ncharCodes[\"0\"]=\"_ _ _ _ _\";\nvar temp=''\nfunction transmit(){\n//A compléter\n}\nfunction encode() {\ndocument.morsecode.chars.value=document.morsecode.chars.value.toLowerCase();\ndocument.morsecode.codebox.value=\"\";\ntemp=''\nvar chars=document.morsecode.chars.value.split(\"\");\n\nfor (a=0; a<chars.length; a++) {\nif (chars[a]!=\" \") {\nif (window.charCodes[chars[a]]) {\ndocument.morsecode.codebox.value+=charCodes[chars[a]]+\" \";\ntemp+=chars[a]+\"=\"+charCodes[chars[a]]+\"\\n\";\n}\nelse\ntemp+=chars[a]+\"=(None)\\n\";\n}\nif (chars[a]==\" \"){\ndocument.morsecode.codebox.value+=\"/\";\n}\n\n}\n\n}\n// -->\n</SCRIPT>\n\n<FORM NAME=\"morsecode\">\nType in a word or phrase: <INPUT TYPE=\"TEXT\" NAME=\"chars\" size=\"28\" value=\"Help\"> <INPUT TYPE=\"BUTTON\" VALUE=\"Encode\" onClick=\"encode()\"><BR><BR>\n<TEXTAREA NAME=\"codebox\" cols=\"50\" rows=\"11\" style=\"width:70%\" wrap=\"virtual\"> </TEXTAREA><br /><INPUT TYPE=\"BUTTON\" VALUE=\"Transmit\" onClick=\"transmit();\">\n</FORM>\n\n<p>This free script provided by<br />\n<a href=\"http://javascriptkit.com\">JavaScript\nKit</a></p>\n\n</body>\n</html>"}; // Definition du WiFi const char *nomDuReseau = "Morse_Attack"; // Nom du réseau wifi du petit bot const char *motDePasse = "123456789"; // Mot de passe du réseau wifi du petit bot // ATTENTION - le mot de passe doit faire soit 0 caractères soit 8 ou plus sinon //création du monServeur ESP8266WebServer monServeur(80); // Création de l'objet monServeur //déclaration des Variables int sequence[42]={1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,0,0,1,0,1,1,0,0,1,1,1,0,0,0}; //String code=""; void setup(){ delay(1000); Serial.begin(9600); // Ouvre une connexion série pour monitorer le fonctionnement du code quand on reste branché a l'ordinateur Serial.println(); Serial.println(); configDuWifi(); pinMode(D1,OUTPUT); pinMode(LED_BUILTIN, OUTPUT); //met la led du Wemos en sortie digitalWrite(LED_BUILTIN, LOW); //met la led du Wemos sur le niveau bas ce qui l'allume. } void loop(){ monServeur.handleClient(); //testAllumage(sequence); } void testAllumage(int *sequence){ for(int i = 0; i<42; i++){ int state = sequence[i]; digitalWrite(D1,state); delay(100); } } ////////////////////////CONFIGURATION WIFI/////////////////////////////////////////////// void configDuWifi(){ // Fonction de configuratio du Wifi WiFi.mode(WIFI_AP); // le wemos est en mode "Point d'Accès" (il déploie un réseau wifi) WiFi.softAP(nomDuReseau, motDePasse, 2); // on démarre le "Point d'Accès". MDNS.begin(nomDuReseau); // gérer les DNS ce qui rendra votre petit bot accessible MDNS.addService("http", "tcp", 80); // via http://nomDuReseau.local IPAddress monIP = WiFi.softAPIP(); // on récupère l'adresse IP du petit Bot Serial.print("Adresse IP de ce Point d'Accès : "); Serial.println(monIP); // on l'écrit sur le moniteur série monServeur.on("/", HTTP_GET, []() { monServeur.send_P(200, "text/html", index_html); }); monServeur.begin(); //Démarrage du monServeur Serial.println("Serveur HTTP démarré"); return; // on retourne à l'endroit ou la fonction a été appelée. }