wDSPiy - commander le DSPiy par Wifi (et par Alexa et en MQTT)

Discutions générales sur le DSPiy et tout ce qui s'y rattache
Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy

Messagepar alka » dim. 26 mars 2017 12:11

en ce 26 mars, bug : wdspiy est resté a l'heure d'hiver !

je viens de comprendre que l'heure fournie par les serveurs NTP est l'heure UTC et que c'est au client (ie moi) de gérer le passage heure d'été/hiver.
Dans un monde de milliards d'objets connectés c'est assez cocasse de déporter le même traitement au lieu de l'offrir en centralisé. Etonnant.

Il ne me reste qu'a faire un patch !
en cherchant un peu, vais utiliser la librairie NtPClientLib qui gère tout ça.
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: wDSPiy

Messagepar thierryvalk » lun. 27 mars 2017 08:04

C'est un peu normal qu'un serveur devant diffuser une heure de référence ne s'occupe que de l'heure UTC.
Tout le monde n'utilise pas l'heure d'été, et cela même dans nos régions.
La gestion des dates et heures est une vraie plaie, par exemple un système qui fait des statistiques sur 24H. Un jour par ans n'aura que 23H et un autre 25H, faut gérer tout cela.
C'est donc mieux que chacun s'adapte à sa manière.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy

Messagepar alka » lun. 27 mars 2017 10:08

pourquoi je savais que t'allais réagir à ça ? :mrgreen:

pas d'accord votre honneur. Je comprend que des serveur d'horloge donnent a d'autres serveurs une heure fiable, cad qui n'avance que d'une seconde toutes les secondes et pas de 3601 secondes ou de -3599 secondes quand c'est l'hiver ou l'été.
Mais il y a aussi plein d'appareils qui ont juste besoin de l'heure juste. Imposer a chacun de programmer les règles de l'endroit ou ils sont est une hérésie et un risque de maintenance. Imagine que les anglais qui par esprit de contradiction (ce qui n'est pas dans leur nature), sortent de l'heure d'été/hiver ou décalent la date d'une semaine... le nombre de logiciels a mettre a jour :-|

Depuis le temps, j'imaginais que les serveurs NTP avaient l'option -france -daylight qui donne l'heure correcte en France. Ou même qu'un pool de serveurs en france donne l'heure correcte au lieu de l'heure UTC. Rien trouvé.
A moins que je n'utilise ma box internet comme serveur NTP. Faut que j'essaie...
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: wDSPiy

Messagepar thierryvalk » lun. 27 mars 2017 10:57

Il me semble que ce sont les Anglais les premiers qui ont instauré l'heure d'été.
Sinon, c'est bien de remettre les softs à jour, on la vu en 2000. :)

Sinon, ma voiture, Française et avec GPS ne s'est pas mise à l'heure d'été.
Pas bien grave, mais étrange de devoir aller dans "Options d'affichage" pour changer l'heure et bien sur pas une simple case "Heure d'été" à cocher.
Etre à l'heure en France est une option ? 8|

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy

Messagepar alka » lun. 27 mars 2017 13:22

Dans mon ancienne voiture, allemande avec GPS et infotrafic, il fallait aussi aller dans les menus pour cliquer. Encore plus scandaleux car on tolère moins ces imperfections des allemands :mrgreen:
Vais voir dans l'actuelle tout a l'heure.... a suivre.
edit: après une seconde en hiver, mon carosse teuton connecté a trouvé tout seul que c'est l'été de la pendule. fantastique!


apparté :
Wikipedia a écrit : Le méridien de Greenwich fut adopté comme standard international en octobre 1884 à la conférence internationale du méridien de Washington. En contrepartie, les Britanniques se sont engagés à adopter le système métrique
cette phrase en italique n'existe que dans le wikipédia français.
Cette affaire de faire passer les anglais au système métrique était une exigence française dans la négociation, non retenue au final par le comité international qui a décidé. Preuve supplémentaire qu'il faut se méfier de wikipédia...
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy

Messagepar alka » dim. 28 juil. 2019 22:57

j'avais complètement oublié cette histoire heure d'été / heure d'hiver
ça tient en 3 lignes de savoir si c'est l'heure d'hiver ou l'été à Paris... d'accord c'est une ligne "parenthèseuse" en mars et octobre :mrgreen:

Code : Tout sélectionner

// moment est l'heure UTC a verifier, recue par un serveur NTP en secondes depuis 1900
// retourne true si heure d'ete en france, false sinon
{
  int y = year(moment);
  int m = month(moment);
  int d = day(moment);
  int h = hour(moment);
 
  if ((m<3) || (m>10)) return false; // pas d'heure d'ete en Jan, Feb, Nov, Dec
  if ((m>3) && (m<10)) return true; // toujours heure d'ete en Apr, May, Jun, Jul, Aug, Sep
  if (m == 3 && (h + 24 * d) >= (1 + 24 * (31 - (5 * y / 4 + 4) % 7)) || m == 10 && (h + 24 * d)<(1 + 24 * (31 - (5 * y / 4 + 1) % 7)))
    return true;
  else
    return false;
}
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: wDSPiy

Messagepar thierryvalk » dim. 2 févr. 2020 19:06

>>>>Et ?

Si j'ai bien compris (j'ai pas tout relu :gene3: ) ton affaire est en local et donc demande au téléphone de se connecter à ta carte qui fait serveur.

Depuis peu, et bien que septique, j'ai testé Google Home.
(J'aurais pu tester Alexa, mais Amazon ne vent pas ses produits en Belgique, et faut reconnaitre, Google ne parle pas le Français Belge :o )

Bref, c'est tout de même impressionnant d'efficacité pour une technologie qui est relativement jeune.

Le rapport avec le fil ? De contrôler son DSPiy non pas en Wifi local mais via un serveur externe. (et solution beaucoup moins DIY)

J'ai acquis un boitier Sonoff 4CH pro.
Il dispose de 4 relais libres de potentiel, Wifi et RF en 433MHz.
Il peut s'alimenter soit en DC de 5 à 24V soit en 230V.

On est en plein dans les Iot, il faut charger l'appli EWeLink, s'inscrire, configurer si nécessaire par dip-swicth le module selon le mode fonctionnement des relais.
Après, l'appli permet de créer des scènes : par exemple "Home cinéma" qui via le relai 1 va alimenter les DSPiy, le relais 2 mettre en ON le projecteur tout en coupant le relai 3 qui gère l'éclairage.
(bon, c'est un exemple de ce qui est théoriquement possible, j'ai pas encore tester ce cas réel)

Pour appeler cette scène, soit via le téléphone soit via la voix avec Ok google .. "Allume Home Cinéma"

Le coté marrant, mais du tout écologique, c'est que la commande part soit en direct vers les serveur Chinois soit si par voix en passant par les serveurs de Google.
Au final, c'est le serveur Chinois qui va envoyer un message au boitier à relais.

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy

Messagepar alka » dim. 2 févr. 2020 21:26

ah tiens, une réponse par ici. Tu m'obliges a parler de ce que j'ai dans les tiroirs ;)

Bien vu la prise commandée. Pour toi qui éteins et allume tes DSPiy c'est parfait.

Ces prises commandées par le cloud fonctionnent a merveille. La révolution domotique vocale est a portée de tout le monde et au prix chinois!

Chez moi c'est Alexa qui règne et j'utilise plutot les prises et appareils compatibles Tuya (aussi connu comme l'appli Smart Life).
SonOff utilise ewelink, le concurrent de SmartLife. Du coup pas de sonoff chez moi. De ce que j'ai vu, SmartLife et eweLink sont fonctionnellement équivalents, mais j'ai commencé avec Tuya alors je continue. TUYA inclus beaucoup plus de marques je crois. C'est chinois et leur serveurs pour l'europe sont en allemagne.

Ca fait drole de penser que je parle a Alexa dans mon salon, qui envoie ma phrase dans le cloud amazon, qui analyse et transmet la requete au serveur tuya en allemagne, qui envoie l'ordre d'allumer la lampe a coté de moi dans mon salon, le tout en moins d'une demi seconde ! Plus vite que si j'avais du aller a l'interrupteur !!

Si tu ne connais pas, tu peux regarder IFFT pour faire des scenarios domotique plus riches que ce que proposent les routines Alexa/google ou les scènes SmartLife/ewelink.

Pour en revenir a mon wDSPiy : il a une interface de type HTTP REST API. Ca s'utilise comme du http. En local ou a distance avec une redirection de port sur mon routeur.

Je voudrai aussi ajouter la commande vocale a mon wDSPiy : bien sur pour Allumer/éteindre et aussi pour monter/baisser le volume et changer de source.

Les services vocaux comme Alexa ou Google ne savent que échanger avec un tiers de cloud à cloud. Ils ne permettent pas de lancer des commandes HTTP locales : trop risqué pour la sécurité.
Pour utiliser Alexa (ou google assistant) avec son device perso, on devrait créer son propre service. J'avais regardé comment faire avec Alexa : c'est possible mais reste un peu lourd pour moi.

J'ai cherché une solution plus simple en détournant un service Alexa existant.

première idée : acheter une carte 3 ou 4 relais compatible Alexa. Ca existe chez sonoff et d'autres. Ca me donnerait trois ou quatre "lignes" que je pourrai entrer sur des GPIO de l'ESP8266. Donc 8 à 16 commandes possibles. Ca marcherait mais c'est une carte de plus a rajouter dans la boite.
idée 1bis : utiliser le controleur IR compatible Alexa que j'ai et n'utilise pas. Suffirait de démonter une led IR et cabler sur un GPIO de l''ESP8266 et décoder les commandes IR. Reste a trouver un appareil audio connu qui a sensiblement les mêmes commandes que le DSPiy et interpréter les commandes entrantes pour en faire des commandes DSPiy.

deuxième idée : utiliser le hack Wemo ESP8266 (note pour moi : Librairie fauxmoESP). C'est un hack diy qui permet de faire passer un ESP8266 pour un appareil compatible Alexa de marque Belkin Wemo. Plein de ces appareils IOT utilisent des ESP8266, dont Belkin Wemo et aussi SonOff (d'ailleurs il existe des firmwares alternatifs DIY pour SonOff aussi). Il me suffirait de déclarer mon ESP8266 comme un module "wemo 4 relais" et j'obtiendrai 16 commandes possibles.

troisième idée ( la bonne) : Détourner un service existant qui gère nativement sur un ESP8266 des commandes HTTP REST et JSON. Un diyer a fait un projet pour piloter des appareils homecinema en Infrarouge. IRController. Une sorte de hub logitech Harmony sur ESP8266. Il a créé son service Alexa chez Amazon et l'a mis a disposition. Le code source ESP8266 est dispo et je l'ai déjà bidouillé pour utilisation en local.
Dans ce cas, il n'y a pas de service tiers : c'est géré directement dans le cloud Alexa et pas de limite au nombre de commandes. Je pourrai créer les phrases d'activation moi même. Malheureusement son service Alexa n'existe qu'en anglais et allemand. Le développeur m'a promis que le français est pour bientot. C'est Amazon qui doit valider. J'attends.

Pas sur que j'utiliserai tous les jours cette commande vocale, mais ce sera cool de l'avoir.

Voilà. On dérive coté domotique ;)
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar thierryvalk » lun. 3 févr. 2020 19:09

idée 1bis : utiliser le controleur IR compatible Alexa que j'ai et n'utilise pas. Suffirait de démonter une led IR et cabler sur un GPIO de l''ESP8266 et décoder les commandes IR. Reste a trouver un appareil audio connu qui a sensiblement les mêmes commandes que le DSPiy et interpréter les commandes entrantes pour en faire des commandes DSPiy.

Et pourquoi ne pas utiliser directement ton controleur IR pour contrôler le DSPiy ?
Soit en IR soit en câblé en passant par un petit RC pour supprimer la porteuse et l'appliquer sur le Trigger IN ?

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » lun. 3 févr. 2020 21:28

thierryvalk a écrit :
idée 1bis : utiliser le controleur IR compatible Alexa que j'ai et n'utilise pas. Suffirait de démonter une led IR et cabler sur un GPIO de l''ESP8266 et décoder les commandes IR. Reste a trouver un appareil audio connu qui a sensiblement les mêmes commandes que le DSPiy et interpréter les commandes entrantes pour en faire des commandes DSPiy.

Et pourquoi ne pas utiliser directement ton controleur IR pour contrôler le DSPiy ?
Soit en IR soit en câblé en passant par un petit RC pour supprimer la porteuse et l'appliquer sur le Trigger IN ?

Oui ce serait encore plus simple : j'avais oublié Triger_In comme recepteur IR si je veux le mettre dans le boitier du DSPiy.

En fait, SmartLife permet d'apprendre les codes télécommande existante avec ce boitier qui a aussi un recepteur IR. C'est pour l'instant limité a on, off, volume+/-. Il manque la selection de sources. J'avais donc créé avec SmartLife un device "Despi". J'ai pas osé "DSPiy" ca me paraissait trop aléatoire pour la compréhension vocale !
Je lui ai appris les codes télécommande pour On et Off. Et hop "Alexa, allume le Despi" :)
C'était marrant comme démonstrateur mais ca me gonflait d'avoir un peit controleur a placer en face du DSPiy.

La solution 3 purement logicielle et 100% http me plait bien si j'arrive a mes fins. Sinon, cette "idée 1bis améliorée par Thierry : controleur dans le boitier DSPiy cablé sur le TrigerIN" me plait bien aussi. Je vais prévoir un 5V auxiliaire dans mon futur boitier, au cas où ;)
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » mer. 3 juin 2020 15:27

pour mémoire : quelques caractères spéciaux utf-8 qui me seront utiles

code hexadecimal

⚪ ⚫ 🔵

▲ ▼
△ ▽

■ □



🔉 🔈 🔊 🔇

🐇
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » sam. 13 juin 2020 12:21

Il a fait moche ces derniers jours, propice a des travaux d'intérieur.

La grande nouvelle, c'est que Alexa a pris le contrôle :)
Le prototype qui me sert pour le développement et mise au point pour Alexa m'a donné de nouvelles idées et finalement il restera sans doute en place. J'y reviens un peu plus loin.

Je peux maintenant dire*
Alexa, voudrais tu allumer Diespi s'il te plait.
Alexa, voudrais tu éteindre Diespi s'il te plait.
"Alexa, voudrais tu mettre le Diespi à 50 s'il te plait" et il se met à -36dB.

Bien sûr, si je modifie l'état du DSPiy par autre moyen (BP, interface Web, télécommande) Alexa est au courant. Tout le monde est synchronisé.

* Là on nous regarde alors je suis poli. En vrai je suis plus directif avec elle :mrgreen:
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » sam. 13 juin 2020 12:23

Comment ça marche ?

Le but est de passer des commandes vocales Alexa à un ESP8266.
J'ai d’abord expérimenté la librairie la plus connue fauxmoESP. Malheureusement pas top et le développeur vient d'annoncer l’arrêt du support. En cherchant davantage j'ai trouvé la bonne : ESPAlexa.


Cette librairie émule le protocole Philips Hue reconnu par Alexa. Donc pas besoin de développer de skill Alexa: Un gros travail de moins.

L'objet est reconnu comme une lampe dimmable : parfait pour les commandes On, Off et un niveau que je peux interpréter comme un volume.
On pourrait aussi déclarer l'objet comme une lampe couleur et utiliser les codes couleur pour le contrôle de Source ou Preset, mais c'est inutile pour moi.

Il fallait lui trouver un nom. Après quelques tentatives pour qu'Alexa le reconnaisse bien il s'appelle "DSP" que je prononce a l'anglaise "Di ès Pi".

Ca a été super rapide à mettre en place. Le plus long a été la conversion des code volumes.
- Les commandes vocale d'Alexa sont en % de [0 .. 100]
-La valeur envoyée a l'objet et retourné par la librairie est un code de [0 .. 255]. Conversion linéaire.
- Les codes volume du DSPiy sont de [110 .. 0] descendant et la correspondance en dB n'est pas linéaire.
- Mon interface de contrôle a distance du DSPiy ne connait a des codes [1..25] par saut de 3dB car je l'avais initialement prévue pour le slider web moins précis.
Prise de tête pour jongler avec ces 4 correspondances et trouver comment ne pas frustrer Alexa !


Pour le développement j'ai utilisé une carte ESP8266 que j'ai appelée #Pi.
En version prototype, Alexa contrôle #Pi qui contrôle le DSpiy.

Et puis je me suis rappelé que j'avais un encodeur et un OLED qui trainent et hop, le projet #Pi est né.

Interconnexions et protocoles utilisés
Image
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » sam. 13 juin 2020 12:51

photos du #Pi

Image

Je n'avais jamais touché à un écran OLED. Je découvre et tatonne :)
C'est 128x64 de 0.96" avec driver SSD1306 que j'utilise en I2C.

J'ai dans l'idée de conserver ce #Pi en "télécommande déportée" du DSPiy. Avec un afficheur et un vrai bouton physique c'est plus pratique qu'une télécommande IR. C'est complémentaire.

A ce stade, je me pose des questions d'architecture : laisser Alexa dans le #Pi comme pour le proto ou l'installer dans le wDSPiy. Il y a du pour et du contre.

Il reste du taf et mon souci actuel est la trop faible réactivité de l'encodeur pour le volume. Il est ralenti par le délai de réaction de l'infrarouge entre le wDSPiy et le DSPiy en bout de chaine. J'ai des idées a tester.


au fait, Thierry : le DSPiy utilise un OLED 128x32 avec controleur SSD1305. Ca doit se ressembler. Comment controle tu la luminosité de l'affichage ? j'ai une solution proposée par la librairie que j'utilise mais pas tres probante.
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
thierryvalk
Administrateur du site
Messages : 3519
Enregistré le : jeu. 9 juil. 2015 20:08
Localisation : Belgique

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar thierryvalk » sam. 13 juin 2020 13:08

Voici la ligne de code:

Code : Tout sélectionner

lcd_putcmd(0x81);lcd_putcmd(D01_ECRAN_CONTRASTE<<1);}//set contraste control // Set SEG Output Current


Mais dépend peut-être de l'initialisation, dans le cas du DSPiy :

Code : Tout sélectionner

lcd_putcmd(0xae);//// Display Off (0x00/0x01)
   lcd_putcmd(0xd5);lcd_putcmd(0x10);// Set diplay Clock as 160 Frames/Sec
   lcd_putcmd(0xa8);lcd_putcmd(0x1f);// set multiplex ratio 1/32 Duty (0x0F~0x3F)
   lcd_putcmd(0xd3);lcd_putcmd(0x0);//set diplay offset Shift Mapping RAM Counter (0x00~0x3F)
   lcd_putcmd(0x40);//set start line Set Mapping RAM Display Start Line (0x00~0x3F)
   lcd_putcmd(0xad);lcd_putcmd(0x8e);//master config Disable Embedded DC/DC Converter (0x00/0x01)
   lcd_putcmd(0xd8);lcd_putcmd(0x05);//d9   set area color  Set Monochrome & Low Power Save Mode


   lcd_putcmd(0x20);lcd_putcmd(0x2);//set addressing mode Set Page Addressing Mode (0x00/0x01/0x02)

if(c<3)//sens de l'écran
{

      lcd_putcmd(0xa0|0);//set segment remap Set SEG/Column Mapping (0x00/0x01)  0
      lcd_putcmd(0xc0|0);//set common remap Set COM/Row Scan Direction (0x00/0x08) 0
}
else
{

      lcd_putcmd(0xa0|01);//set segment remap Set SEG/Column Mapping (0x00/0x01)  0
      lcd_putcmd(0xc0|0x08);//set common remap Set COM/Row Scan Direction (0x00/0x08) 0
}
lcd_putcmd(0xda);lcd_putcmd(0x02|0x10);//set common config Set Alternative Configuration (0x00/0x10)
   lcd_putcmd(0x91);lcd_putcmd(0x3f);lcd_putcmd(0x3f);lcd_putcmd(0x3f);lcd_putcmd(0x3f);//set LUT Define All Banks Pulse Width as 64 Clocks
   lcd_putcmd(0x81);lcd_putcmd(contraste);//set contraste control // Set SEG Output Current
   //lcd_putcmd(0x82);lcd_putcmd(contraste);//Set Brightness for Area Color Banks
   lcd_putcmd(0xd9);lcd_putcmd(0xd2);//set precharge period // Set Pre-Charge as 13 Clocks & Discharge as 2 Clock
   lcd_putcmd(0xdb);lcd_putcmd(0x08);//VCOMH Set VCOM Deselect Level
   lcd_putcmd(0xa4);//set entire display // Disable Entire Display On (0x00/0x01)
   lcd_putcmd(0xa6|0);//set inverse display Disable Inverse Display On (0x00/0x01)

   lcd_clrbuf();
   lcd_update();
         lcd_putcmd(0xae|1);//// Display Off (0x00/0x01)

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » sam. 13 juin 2020 14:57

ok merci. Je vais voir ça. D01_ECRAN_CONTRASTE vaut de 0 à 100. <<1 étend la plage à 200 et tu gardes les 55 derniers pour augmenter la luminosité quand on vient de toucher a un bouton. Je prévois de faire un truc du même genre avec un joli fade out si possible.

Dans mon cas, avec la librairie qui gère les détails, ça s'écrit simplement setContrast(n) avec n entier de 0 à 255. Ca va dans le registre 0x81 comme pour toi.
Je viens de trouver qu'on peut aussi jouer sur precharge dans le registre 0xd9 pour diminuer davantage le contraste.
Lien pour ma mémoire : https://forum.arduino.cc/index.php?topic=515370.0 Coup de chance, c'est exactement le même driver écran que moi. J'utilise la lib U8G2.


ps: DStudioa été canibalisé !
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » dim. 14 juin 2020 17:29

je ne comprend pas tout à ces registres. C'est documenté pour SSD1306 mais je n'ai pas le courage de tout lire ;) tests par ici
En jouant sur Vcom deselect (0xdb) et precharge (0xd9) on arrive a énormément baisser la luminosité.
Le plus bas que j'ai pu obtenir c'est avec Vcom = 0 et Precharge = 0. Le texte est encore lisible mais vraiment faible. Très inférieur a ce que setContrast(0) permet. On le saura :)
acheter un DSPiy ? c'est ici

Avatar de l’utilisateur
alka
Administrateur du site
Messages : 2907
Enregistré le : mer. 15 juil. 2015 15:18
Localisation : 92
Contact :

Re: wDSPiy - commander le DSPiy par Wifi

Messagepar alka » mar. 16 juin 2020 11:07

Ma fierté de débuggeur junior vient de monter d'un cran :frime:

A l'occasion d'un test hier pour migrer à la dernière version du core arduino pour ESP8266, mon programme wDSPiy crash a l'exécution dès le départ. Après avoir maudit les développeurs qui font des upgrades de librairie incompatibles je me suis dit qu'ils en savent plus que moi et que je devais chercher de mon coté. La résolution du souci m'a permis de comprendre ce qui s'est passé le mois dernier.

On rembobine: en mai, un crash aléatoire après mise en boitier m'a pris la tete. Plein de suspects, surtout la Flash. Finalement c'était dû au connecteur du capteur IR. Le bruit d'un mauvais contact du GND déclenchait des faux-positifs de réception IR incessantes et autant d'interruptions sur le µC. J'avais attribué le crash à la surcharge du µC.

Ce n'était pas tout a fait la bonne raison.

Le crash de hier était systématique, au moment d'initialiser les interruptions pour l'IR. Tiens tiens.... Un bref message d'erreur suffisant pour remonter la piste.
La librairie Infrarouge que j'utilise est assez ancienne, issue d'un portage du monde arduino. La règle avec arduino est de mettre en cache en flash le code gérant les interruptions, ce que faisait ma librairie. C'est déconseillé avec ESP8266.
Le µC plantait car les interruptions accédaient à la flash en permanence en même temps que mon code. Ca n'arrive jamais pour arduino qui est mono thread mais ESP8266 est multithread. Les récents core arduino pour esp8266 sont mieux optimisés et détectent ce souci potentiel dès l’initialisation des interruptions.

J'ai tellement modifié cette librairie IR que je ne peux installer la dernière (dont le code ne ressemble plus du tout au mien d'ailleurs!).
Il a fallu farfouiller dans le code .cpp de la librairie pour remplacer aux bons endroits ICACHE_FLASH_ATTR par ICACHE_RAM_ATTR. Ca n'a l'air de rien quand on le sait !


J'ai perdu du temps avec cette affaire mais j'ai aussi compris un truc plutôt important et mon code est dorénavant plus robuste.

Je retourne dans mon terrier jouer avec l'OLED :)



ps: le lien vers le post qui m'a éclairé https://stackoverflow.com/questions/581 ... to-isrs-an
acheter un DSPiy ? c'est ici


Retourner vers « DSPiy général »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 7 invités