esp8266:le_partageoir
Différences
Ci-dessous, les différences entre deux révisions de la page.
— | esp8266:le_partageoir [2024/02/09 17:10] (Version actuelle) – créée - modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Le partageoir , la partagette ====== | ||
+ | Le ou La ? | ||
+ | Le partageoir est un objet électronique qui fait des trucs informatiques. | ||
+ | C'est peu la pataugeoire des enfants du numérique, expérimentant l' | ||
+ | Et aussi une sorte de TAZ, stase temporaire à deux sous dont les tiroirs sont à surprises. | ||
+ | L' | ||
+ | Parce que jusque là, un boite à partage et autre pirate box, coûte plus de 25€ | ||
+ | nécessite une bonne source d' | ||
+ | Parce que les codes de la programmation de la puce ESP8266 sont disponibles, | ||
+ | et que personne ne s'en est occupé jusqu' | ||
+ | tous le monde semble se perdre dans l' | ||
+ | semant dans les nuages ce qui de fait reste très local, jetant par les fenêtres empommées son savoir, ses connaissances, | ||
+ | Le partageoir n'a pas besoin d' | ||
+ | Elle n'a pas besoin d' | ||
+ | Elle ne vous fait pas consommer sournoisement 15000 km de réseau mondial au moindre clic ( prendre sa voiture pour aller acheter son pain à moins du kilomètre ou naviguer sur les réseaux sociaux toute la journée est aujourd' | ||
+ | |||
+ | Le partagoir ne sait faire pour le moment qu'un truc, partager localement des données numériques. | ||
+ | |||
+ | Il peut devenir [[http:// | ||
+ | |||
+ | Le partageoir est aujourd' | ||
+ | |||
+ | Je dirais que le partageoir est sur une base de processeur ARM alors que la partagette est autour d' | ||
+ | |||
+ | ===== Nouvelle utilisation ===== | ||
+ | |||
+ | A partir d'une ESP8266 PRO cad avec 16Mo de flash, que je concidere suffisant, si on a besoin de plus il faut s' | ||
+ | |||
+ | * Après avoir flashé l'ESP un premier reset est nécessaire | ||
+ | * le moniteur série raconte tout un tas de trucs tel que le déroulement des opérations | ||
+ | * l'ESP se lance , et va chercher un serveur NTP (FreeWifi, | ||
+ | * elle se met en mode AP (Point d' | ||
+ | * http:// | ||
+ | * user=toto pass=linux par defaut, ftp en mode passif , attention une seule session à la fois! | ||
+ | * ftp -p 192.168.4.1 / passer par put les fichier "/ | ||
+ | * de base il suffi de deposer / | ||
+ | * on peut changer les fichier un a un , ou globalement par curl | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | **Commande bash** : faire un fichier ex : esp_partagette_ftp.sh dans le repertoire à transféré, | ||
+ | < | ||
+ | echo " | ||
+ | ftp -p -n -v 192.168.4.1 <<!! | ||
+ | user toto gnulinux | ||
+ | " > / | ||
+ | for file in `find . -type f -print | sed ' | ||
+ | echo "put $file" >> / | ||
+ | done | ||
+ | echo "exit | ||
+ | !!" >> / | ||
+ | bash / | ||
+ | </ | ||
+ | |||
+ | le programme est aussi fourni avec les sources | ||
+ | |||
+ | mais le mieux ?? est peut etre d' | ||
+ | |||
+ | Fichier prtgeuse.txt: | ||
+ | < | ||
+ | #info chipID = 001840EF | ||
+ | SOURCE_SSID ssid d'ou recupérer les fichiers (prtgeuse.txt) | ||
+ | SOURCE_PASS | ||
+ | SOURCE_SITE , url | ||
+ | DOSSIER , le repertoire contenant le site a telecharger | ||
+ | PAGES_VERSION , telecharge si nouvelle version , int | ||
+ | HORAIRES | ||
+ | SRVNTP serveur NTP pour mise a l' | ||
+ | SSID SSID prise par la PARTAGETTE | ||
+ | PASS mot de passe si existe | ||
+ | SITEIP IP du site de la partagette | ||
+ | SITE nom du site de la partagette | ||
+ | CANAL canal_wifi de 1 a 13 | ||
+ | MAX_CONNEXION nbr de connexion simultanées max =5 (8 en theorie) | ||
+ | INVISIBLE si 1 SSID invisible | ||
+ | </ | ||
+ | exemple | ||
+ | < | ||
+ | # Global | ||
+ | # SOURCE_SSID ssid d'ou recupérer les fichiers + config.ini | ||
+ | ### definitions globales | ||
+ | SOURCE_SSID = PARTAGEUSE | ||
+ | SOURCE_PASS = 1234567890 | ||
+ | SOURCE_SITE = http:// | ||
+ | #MODIFPASS | ||
+ | ### définition par zones WiFi | ||
+ | # par partageoir/ | ||
+ | # PREMIERE PARTAGETTE | ||
+ | # Nom des partagettes | ||
+ | # chipId , repertoire de cette SD | ||
+ | # PAGES_VERSION , telecharge si nouvelle version , int | ||
+ | # HORAIRES | ||
+ | # faire un fichier / | ||
+ | CHIP_ID = 6605423 | ||
+ | PAGES = simple | ||
+ | VERSION = 1 | ||
+ | HORAIRES = 0, | ||
+ | SRVNTP = FreeWifi | ||
+ | SSID = PARTAGEOIR | ||
+ | PASS = | ||
+ | SITE = http:// | ||
+ | MAX_CONNEXION = 6 | ||
+ | CANAL = 1 | ||
+ | INVISIBLE = 0 | ||
+ | FTPUSER = toto | ||
+ | FTPPASS = linux | ||
+ | GLOBPASS = gnulinux | ||
+ | ################################################ | ||
+ | CHIP_ID = 6605424 | ||
+ | PAGES = defaut | ||
+ | VERSION = 1 | ||
+ | HORAIRES = 0, | ||
+ | SSID = PARTAGETTE | ||
+ | PASS = | ||
+ | SITE = http:// | ||
+ | </ | ||
+ | fichier / | ||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | /index.xml | ||
+ | /index.html | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Ancienne à base de SD ==== | ||
+ | |||
+ | - Il faut déposer ses données sur une microSD, un simple copie. | ||
+ | - < | ||
+ | - < | ||
+ | - Mettre la microSD dans le partageoir et appuyer sur le bouton. | ||
+ | - Les données sont visibles sur un réseau WIFI 100m autour | ||
+ | - Tous le monde peut les lire il suffit de se connecter à son réseau WIFI | ||
+ | - Il y a possibilité de déposer un fichier avec un code et d' | ||
+ | - **C' | ||
+ | ===== Avantage: ===== | ||
+ | - maîtrise de ses données partagées | ||
+ | - on peut laisser l' | ||
+ | - fonctionne avec 2 piles ou avec le soleil | ||
+ | - code libre | ||
+ | |||
+ | ===== Exemples d' | ||
+ | ==== Une fiction interactive, | ||
+ | De base une fiction interactive, | ||
+ | |||
+ | Mais en ajoutant des fonctions voir des capteurs à la puce, on pourrait: | ||
+ | * savoir la proximité du lecteur, le reconnaître | ||
+ | * connaître l' | ||
+ | * capter les mouvement de la puce et y lier le texte et ses modifications | ||
+ | * allumer des leds en fonction des visiteurs | ||
+ | * ajouter des boutons pour ajouter des actions au partagoir | ||
+ | * ... | ||
+ | |||
+ | ===== Évolution possible de l' | ||
+ | ==== Inclusion de variable venant des GPIO/A0 ou de capteurs de l'ESP dans un script Twine ==== | ||
+ | La page html/ | ||
+ | |||
+ | Inclure une possibilité de sortir les variables par http (?json) exemple http:// | ||
+ | |||
+ | Un code javascript pourrait etre du genre | ||
+ | < | ||
+ | var url = new URL(" | ||
+ | var A0 = url.searchParams.get(" | ||
+ | </ | ||
+ | < | ||
+ | let url = ' | ||
+ | fetch(url) | ||
+ | .then(res => res.json()) | ||
+ | .then((out) => { | ||
+ | console.log(' | ||
+ | }) | ||
+ | .catch(err => { throw err }); | ||
+ | </ | ||
+ | |||
+ | ===== Matériel ===== | ||
+ | aujourd' | ||
+ | * wemos esp8266 pro (16Mo de flash et un connecteur d' | ||
+ | * un shield DS1309 pour l' | ||
+ | Au début de l' | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * MT3608 2A DC-DC Step Up Power | ||
+ | |||
+ | =====Connexions===== | ||
+ | si vous faites cela sans le shield wemos | ||
+ | | CD/DAT3/CS | GPIO15 | | ||
+ | | CMD/DI | GPIO13 | | ||
+ | | CLK/SCLK | GPIO14 | | ||
+ | | DAT0/DO | GPIO12 (may need an 10K pullup to 3.3V) | | ||
+ | | VSS1 & VSS2 | GND | | ||
+ | | VDD | 3.3V | | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ===== Codes ===== | ||
+ | ==== Partagettes ==== | ||
+ | ==== Partagette V37 septembre 2019 ==== | ||
+ | * version Cartels Numérique | ||
+ | * correction sur la synchronisation de l' | ||
+ | * mise au point des cycles de DeepSleep en accord avec la programmation horaire | ||
+ | * {{ : | ||
+ | |||
+ | ==== Partagette V34 mars 2019 ==== | ||
+ | * correction bug initialisation | ||
+ | * seul le json est utiliser pour la config | ||
+ | * {{ : | ||
+ | ==== Partagette V32 dec 2018==== | ||
+ | * corrections et possibilité de mettre un emoji sur le ssid, cela filtre aussi les smartphones capables de voir le réseau wifi et donc aussi de lire du javascript (Twine2 notamment) | ||
+ | * cycle ssid: | ||
+ | Cette nouvelle version permet d' | ||
+ | * ajout/tests de la commande accessible par /edit qui permet d' | ||
+ | ==== Partagette V20 à 30 ==== | ||
+ | Je reviens sur la synchronisation de l' | ||
+ | |||
+ | Une commande protégée cmd? | ||
+ | |||
+ | {{ : | ||
+ | ==== Partagette V18 et V19 ==== | ||
+ | Après quelques essais , j'ai implémenté d' | ||
+ | * Mise a jour automatique de l' | ||
+ | * présence d'un serveur FTP, pour pouvoir s'y connecter en mode passif | ||
+ | * un mode administration déclenché par un mot de passe | ||
+ | * des commandes libres | ||
+ | * /gpio_all donne l' | ||
+ | * /date donne la date de l'ESP | ||
+ | * /fichier donne la liste des fichiers de la flash | ||
+ | * /cmd_ftpon ouvre le ftp | ||
+ | * des commandes en mode admin forme : http:// | ||
+ | * format="" | ||
+ | * reset="" | ||
+ | * maj_heure http:// | ||
+ | * info_conf="" | ||
+ | * heure_ntp="" | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ==== Partagettes anciennes versions ==== | ||
+ | **V8** {{ : | ||
+ | |||
+ | C'est une version que je présente au Summerlab SN juillet 2018 | ||
+ | |||
+ | PlatformIO a des bibliothèques a trous :( je repasse sur arduino pour cette parti d' | ||
+ | * inclusion d'un client NTP mettant a jour l' | ||
+ | * le mécanisme de maj du site sur la flash fonctionne | ||
+ | * définitions supp | ||
+ | * SITEIP = nnn.nnn.nnn.nnn permet d' | ||
+ | * INVISIBLE, CANAL, MAX_CONNEXION | ||
+ | * c'est maintenant des .txt qui sont les fichiers de config pour pouvoir passer sur les serveurs http classiques | ||
+ | * définition et test de la partageuse sur une simple AP TPLink/ | ||
+ | * nginx sert un répertoire // /public// contenant | ||
+ | * //defaut/ // : la première connexion prend prtgeuse.txt ici | ||
+ | * // / | ||
+ | * // / | ||
+ | |||
+ | |||
+ | |||
+ | V6 J' | ||
+ | |||
+ | ==== V9 ==== | ||
+ | {{ : | ||
+ | * led clignote a chaque lecture de fichier | ||
+ | ==== V8 ==== | ||
+ | {{ : | ||
+ | * taille ssid, hostname passe a 30car | ||
+ | * test mlDNS et corrections de choses bugantes | ||
+ | ==== V7 ==== | ||
+ | {{ : | ||
+ | Ajouts: | ||
+ | * parametre canal_wifi (1): faire le point sur le lieu pour trouver un canal peu encombré | ||
+ | * parametre max_connexion (8) : connexion simultanée possible , 8 peut etre le top? | ||
+ | * visible (1) : SSID visible=1 invisible=0 | ||
+ | * modif index.html de base ( pas pris encore en compte ) ?partie flash si pas de SD?? | ||
+ | |||
+ | le fichier param.cfg est au format json, j'ai collé un pass a cause d' | ||
+ | < | ||
+ | { | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | " | ||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | ==== V6 ==== | ||
+ | Sur PlatformIO et plus arduino : {{ : | ||
+ | |||
+ | pensez pour telecharger sur la flash le spiffs , data dans le / du projet (pas /src) et faire par le terminal d'Atom : | ||
+ | - platformio run --target buildfs | ||
+ | - platformio run --target uploadfs | ||
+ | ==== V5 ==== | ||
+ | * / | ||
+ | * SSID ( seul puisque tout est redirigé desus ) | ||
+ | < | ||
+ | # le SSID final sera renommé en .local | ||
+ | # par défaut SSID deviendra partageoir.local | ||
+ | # par defaut hostname deviendra partagoir.local | ||
+ | |||
+ | SSID = partageoir | ||
+ | HOSTNAME = partageoir | ||
+ | |||
+ | #PASSWORD = 0123456789 | ||
+ | MODIFPASS = 777 | ||
+ | </ | ||
+ | * source{{: | ||
+ | * bin {{: | ||
+ | ==== V4 ==== | ||
+ | Fonctionne avec arduino-ESP8266 6.5.1 | ||
+ | * partageoir.cfg fichier de parametrage sur la carte de la forme | ||
+ | |||
+ | * le SSID et le nom dépendent de la présence d' | ||
+ | * si le SSID=partageoir.local, | ||
+ | |||
+ | * code partageoir-V4 {{: | ||
+ | ==== V2 ==== | ||
+ | * param.txt | ||
+ | * nom long sur la SD | ||
+ | * {{: | ||
+ | * {{: | ||
+ | |||
+ | |||
+ | ==== V1 ==== | ||
+ | |||
+ | ==== param.ini ==== | ||
+ | // | ||
+ | - des commentaire qui commencent par ";" | ||
+ | - des catégories entre crochets [] | ||
+ | - des couples item = valeur | ||
+ | |||
+ | * //; | ||
+ | * //[wifi]// est le début de la catégorie ' | ||
+ | * //ssid = partage.local// | ||
+ | ainsi | ||
+ | * [wifi] / ssid = nom du réseau wifi | ||
+ | * [wifi] / hostname = nom du partageoir sur ce réseau => ainsi partageoir.local sera à la fois le nom de la machine pour l'url de votre navigateur et le nom du wifi. | ||
+ | * [network] / IPC = 4 et IPD = 3 , cela défini une adresse IP unique sur le réseau wifi | ||
+ | * si vous avez plusieurs partageoir il faut leur donner des IPD différent | ||
+ | * IPC et IPD doivent être compris entre 1 et 254 | ||
+ | * [materiel] sdgpio = 16 ,connexion du signal CS sur ESP-12 ( dépend des puces ESP et de votre bricolage ) | ||
+ | Il existe un fichier logfile = CONNECT.LOG qui contient les ssid environnant et les mac des machines qui se connectent. | ||
+ | |||
+ | ==== Sur base de l'IDE arduino 1.6.5 adapté à l'ESP: ==== | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | avec un portail | ||
+ | |||
+ | * code portail en chantier : | ||
+ | ==== Les fichiers de la SD ==== | ||
+ | les fichiers à coller à la racine de la SD, formatée en fat: | ||
+ | Attention les noms de fichier sont encore en 8.3 à l' | ||
+ | * index.htm et test.pdf | ||
+ | * / | ||
+ | * param.ini | ||
+ | mon param.ini du moment | ||
+ | < | ||
+ | ; | ||
+ | ; | ||
+ | [wifi] | ||
+ | ; le nom du réseau WIFI ici = nom de la page | ||
+ | ; url de la page = partage.local/ | ||
+ | |||
+ | ssid = partage.local | ||
+ | hostname = partage | ||
+ | |||
+ | ; réseau ouvert | ||
+ | ; password = | ||
+ | |||
+ | ; mot de passe d' | ||
+ | ; le dépot est fermé par le firmware pour le moment | ||
+ | ;modifpass = sesame | ||
+ | |||
+ | [network] | ||
+ | ;mac = 01: | ||
+ | ;ip de base =192.168.4.1 | ||
+ | ; jamais 2 ip identiques sur le même réseau | ||
+ | ;ip modifiée = 192.168.IPC.IPD | ||
+ | IPC = 4; | ||
+ | IPD = 3; | ||
+ | |||
+ | [materiel] | ||
+ | ; CS connexion sur ESP-12 | ||
+ | sdgpio = 16 | ||
+ | |||
+ | [log] | ||
+ | ; compteur d' | ||
+ | ; compteur = compteur.log | ||
+ | ; trace des connexions | ||
+ | ; logfile = CONNECT.LOG | ||
+ | </ | ||
+ | |||
+ | Le firmware tout fait a flasher avec esptool ou esptool.py : |