Question sur arduino nano V3.0

Portrait de C4l4m4r

Bonjour, je cherche a automatisé la fonction d'une télécommande en fonction de l'heure , pour cela je compte démonter la télécommande , placé un transistor a la place du bouton , mon projet inclus donc une horloge temps réel , et aussi un écran pour afficher des informations ( écran lcd 16;2 relié en i2c ) je me pose donc des question car je souhaite utilisé le plus petit arduino possible, et j'aimerai savoir si ce câblage théorique est bon car j'ai lu quelque par que les ports d4 et d5 pouvaient servir pour les pin sda et scl

 screenshot_2.png 

Merci d'avance.

Portrait de Spy

Bonjour C4l4m4r

Le plus petit que je connaisse c'est "Wemos D1 MINI" tu peux même profiter de la wifi intégrée !

Avec Bus "I2C" & "SPI" alimentation 3.3 ou 5 volts pour le code ...

Pendant que j'y pense deux liaisons I2C sur la même carte Arduino ... Tu vas galérer alors que si tu prends un RTC en SPI là c'est cool !

Résultat de recherche d'images pour "wemos d1 mini"

Portrait de C4l4m4r
Portrait de gael

Bonjour C4l4rm4r,

Le SDA et SCL ont besoins des pind A4 et A5 sur une carte NANO donc pas de problème sur ton schéma. Si tu souhaites utiliser un microcontrôleur plus petit que le NANO je te conseil d'utiliser soit l'ATTINY85 ou le 2313. Sache que ce sont des puces qui ne mesurent meme pas 1 cm et qui consomment très peu de courant.

Tu peux tout à fait contrôler deux périphs en I2C (c'est un bus de communication) , il faut simplement qu'ils ne possédent pas la même adresse. Si c'est deux modules différents, il y a peu de chance qu'ils aient la meme adresse. ;)

Portrait de C4l4m4r

Bonjour, merci de ta réponse 

je débute bien comme il faut la dedans ,j'ai bien penser a utiliser des puces micro controller , mais es ce que l'attiny 85 a assez de port pour supporter un écran + une horloge en temps réel ,autrement dit 2 liaison i2c car c'est bien la le problème il faut cabler un transitor , une horloge en temps réel en i2c , un ecran en i2c , + deux bouton pour contrôler l'écran , (chose que j'avais oublier depréciser , désolé )  

Portrait de C4l4m4r

PS: même si en soit je voulais savoir si les ports d4 et d5 pouvaient être utiliser pour un liaison sda scl

Portrait de Spy

re C4l4rm4r,

Ta télécommande est radio ou infrarouge ?

Portrait de C4l4m4r

@spyma télécommende est radio, mais j'en possède une en trop de toute facon, 

Portrait de gael

Tu peux très bien connecter ton horloge et ton ecran sur le meme bus I2C. C'est de cette manière que l'on s'y prend lorsque tu veux afficher l'heure sur un écran : tu as une horloge RTC de type DS3231 et un ecran en i2c et rien ne t'empèche d'utiliser le meme bus  et bien sur les bornes A4 et A5. Si l'attiny85 est trop petit penche toi vers l'attiny2313 qui posséde plus d'I/O.

Portrait de C4l4m4r

mais comment faire pour gérer deux arriver d'information sur le même port , car pour moi dans ma tête sa donne un truc comme sa XD ...

screenshot_1_0.png

Portrait de Walter

Regarde la description de wikipedia c'est très bien expliqué, https://fr.wikipedia.org/wiki/I2C
Hors mis les résistances de liaison manquante, c'est ça.
Ton arduino est le maître de la communication, le RTC et LCD étant les esclaves.

Portrait de C4l4m4r

OK merci je comprend mieux maintenant

Portrait de gael

Comme dis walter ton nano est maitre. Tes deux modules ne possedent pas la même adresse.

Portrait de Spy

Vous connaissez l'adresse de ces modules I2c ?

Portrait de Walter

D'après la datasheet du DS3231  c'est 0x68, et pour l’afficheur I2C LCD 16x2 c'est 0x27.

Si les composants achetés ne respecte pas les datasheet, on peut toujours faire un scanne des 128 adresses possibles.

Portrait de gael

C'est généralement toujours celle-ci. Pour avoir tester une centaine d'écran I2C jene suis jamais tombé sur une adresse différente.

Portrait de Spy

Une centaine ....

Portrait de gael

Oui c'est mon métier

Portrait de C4l4m4r

bonjour et merci , 

Du coup je reste sur ces deux module 

Portrait de Spy

Ok j'ai regardé les libraries qui concernent ces deux modules en fin de compte c'est très simple à utiliser, donc "C4l4rm4r" devait réalisé sont projet assez rapidement.

Portrait de Spy

Une question à C4l4rm4r : comment fais tu pour programmer l'heure dans le module RTC et surtout pour la télécommande, le tout est en dur dans le ou les programmes ?

Avec une puce Wemos tu peux faire cela par wifi avec un navigateur ou un programme Android Windows IOS etc... C'est une idée de mon père.

Portrait de C4l4m4r

Bonjour , merci pour programmer l'heure exact dans une horloge rtc y a des tuto , c'est assez bien expliquer sur ce site http://gilles.thebault.free.fr/spip.php?article53 ( je ne suis pas ur dde bien avoir compris ta question ) et d'après ce que j'ai vu l'arduino peut lire l'heure ,on stock l'heure dans une variable et tout simplement lorsque la variable a la valeur de l'heure ou je veux actionner la télécommande , j'envoie un signal dans la base du transistor , celui ci étant soudé a la place du bouton de la télécommande démonté 

le problème de la solution du wifi , a mon avis bien plus simple , c'est que :

1 il faut avoir accès au wifi 

2 il faut un autre appareil allumé pour le contrôlé 

Portrait de gael

Bonsoir, il est très simple de configurer l'heure avec 3 boutons vu que tu posséderas des boutons. Pour la carte wifi, cela reste ton choix. Spy et moi-même avons proposé deux puces avec lequel tu peux effectuer ce que tu souhaites, maintenant à toi de choisir.

Portrait de C4l4m4r

Oui Merci beaucoup à vous  

Portrait de Spy

Pour ce qui est de la Wifi, n'importe quel appareil qui possède la connexion Wifi convient. Nul n'est besoin de routeur ou d'une box, il est possible de créer un serveur dans la Wemos SSID (nom du réseau Wifi)  de ton choix, un couple login mot de passe de ton choix et d'insérer une page HTML dans laquelle tu peux mettre à l'heure le module RTC, et modifier l'heure ou les heures de programmation de la simulation de la touche sur la télécommande. Le transistor c'est plus délicat à mettre en place il vaudrait mieux, à mon avis, de passer par un contact sec d'un relais Reed je pense. Tu peux mémoriser ta dernière programmation dans la mémoire EEPROM de la puce. Avantage pas de soucis si une coupure de courant intervient et changement de la programmation super simple. Nul besoin d'avoir un réseau Wifi à proximité, c'est la puce qui le crée. brossden avait posté des tutos qui répondaient à ta problématique mais bon à force de l'accuser de bien des maux, il en a eu ras le bol et a tout effacé en partant ( tout bénéfice pour tous les autres ? ).

Si tu mets à l'heure en dur par un code ne le met pas dans le code final, car en cas de redémarrage du micro contrôleur, ce dernier te provoquera des soucis !

Portrait de C4l4m4r

Um , d'accord je vois mais , une fois l'heure set , je ne peux pas déconnecter mon appareil du wemos ? 

Portrait de C4l4m4r

d'ailleur j'ai un telephone sous android  je serai donc tenté de faire une mini appli sous app inventor , donc le wifi peut etre une bon point ...

Portrait de C4l4m4r

mais dans le cas ou je crée une app , je n'ai plus besoins de l'écran , et des boutons , mais ai je toujours besoin de l'horloge , es ce que je ne peux pas me servir de l'heure système du téléphone ? 

Portrait de Walter

Si bien sûre, en fait il faut voire la fréquence à laquelle tu te connectera à ton montage en wifi.
Et le comparer à la dérive dans le temps de ton montage et la précision que tu veux avoir.
J'ai cru comprendre que c'était de l'ordre de la minute par 24h ?
Et voire aussi si tu peux avoir des coupures de courant qui te ferons perde l'heure au système.

Si tu as une borne wifi chez toi, le plus simple serait de connecter ton montage dessus.

Portrait de C4l4m4r

Sa me semble être plus pratique, je pense opter pour cette solutions 

Portrait de Walter

C4l4m4r, la solution wifi, ne nécessite pas forcement un réseau wifi de configuré, l'ESP8266 peut être en mode AP et créer son propre réseaux.
Il faut effectivement avoir un autre appareil, mais uniquement lorsque tu veux modifier la configuration de ton objet.

Après comme tu as un LCD, 3 bouton peuvent aussi très bien faire l'affaire, pour modifier la configuration (heure et horaires de fonctionnement).

C'est une télécommande de quoi, volet roulant?

Portrait de C4l4m4r

Bonjour ,

oui c'est une télécommande de volet roulant

mais j'aimerai garder un système complètement indépendant 

Portrait de Walter

Tu ne sais pas quel codage la télécommande utilise, pour voir si tu ne peux pas complètement la remplacer par ton montage?

Portrait de Spy

J'aime bien les perroquets !

Portrait de Spy

C4l4m4r

Puis que tu reviens sur la Wifi voilà ce que cela peut donner un fois programmé

Exemple

Portrait de Jetfuzz

Hello

Tu ne sais pas quel codage la télécommande utilise, pour voir si tu ne peux pas complètement la remplacer par ton montage?

regarde voir par là, un arduino + module HF qui émule ta télécommande, couple à un Ras pi, en serveur web, ca marche du feu de dieu. de plus tu peux émuler une foultitude de code radio.
J'ai un pote qui a automatisé toute sa maison avec cette solution.
http://www.rflink.nl/blog2/

Cordialement

JetfuZZ

Portrait de Spy

Comment être sur que la télécommande est en 433 MHz ?

Portrait de Spy

Je m'attendais à une aide plus conséquente, Jetfuss, gael, Walter les piliers du site ??

Portrait de Jetfuzz

Hello
C'est le post de C4l4m4r ...
Donc j'essaie de répondre qu'a ses interrogations.
Si tu as des questions, tu peux ouvrir un nouveau post.

Cordialement

JetfuZZ

Portrait de un visiteur

.

Portrait de Spy

Pourquoi avoir supprimé ton ânerie ? (Un visiteur)

Portrait de Walter

Avec plaisir, si je peux y répondre, spy, mais je ne comprend ton problème. Sur quoi tu bute?

Portrait de gael

On attend de ses nouvelles non?

Portrait de Spy

Admettons

J'ai réalisé un truc, avec l'aide de mon paternel, qui, je pense correspondrait assez bien à la demande de C4l4m4r

Voici la chose

C4l4m4r qu'en penses tu ?

Portrait de Spy

Jetfuss " C'est le post de C4l4m4r ...Donc j'essaie de répondre qu'à ses interrogations. "

Je remarque effectivement que tu essaies de trouver sur le Net une solution toute faite, mais qui en réalité ne répond en rien au problème de C4I4m4r... Juste à se passer de sa télécommande qu'il possède en surplus. Donc où est ton aide si précieuse ?

Walter : C'est du même Acabit des conseils pour se passer de la télécommande mais pas de réels avancées. On essaierai de noyer le poisson que ce ne serait pas très différent. De plus on me propose de m'aider sur des points sur lesquels je bute. Quelle mascarade !

Sur la vidéo en lien un peu plus haut on voit bien que les attentes de C4..... sont concrétisées. L'application sur le smartphone permet même de choisir des heures différentes pour chaque jour de la semaine voir même de ne pas avoir d'ordre de piloter la télécommande avec une consigne à "00:00:00" mais il est possible de prendre n'importe quelle heure pour ce faire.

La transmission entre le module Wemos et le smartphone ainsi que le traitement de la trame reçue par la Wemos et le module DS3231 prend moins d'une seconde donc il suffit d'ajouter une seconde avant de lancer le programme. Une fois la transmission faire le smartphone n'a plus besoin d'être et peut être éteint, il n'a plus d'interaction avec le montage.

Donc tout le principe vient de la trame envoyée pas ce fameux smartphone qui est par exemple :

"/D2018,10,30,15,28,05,2,15,20,00,21,20,00,17,18,00,14,00,00,21,20,00,23,00,00,23,00,00,"

Le "/D" en tête sert de point de départ pour localiser la trame dans Wemos.

La suite est ni plus ni moins que les valeurs telles que : < l'année, le mois, le jour, l'heure, les minutes, les secondes> qui permettent à la Wemos de mettre à l'heure le DS3231 par le bus I2C. "2018 10 30 15:28:05" format à l'anglaise !

Puis la valeur sur un seul digit représente le numéro du jour dans la semaine 1 pour Lundi ... 7 pour Dimanche.

Les datas qui suivent, je pense que tu l'auras certainement deviné, forment 7 groupes de 3 valeurs <HH,MM,SS> pour chacun des 7 jours de la semaine. Il suffit donc pour la Wemos de recueillir l'heure dans le module DS3231, ainsi que le numéro du jour puis de comparer cette heure à celle programmer pour le jour dit et lorsqu'il y a concordance d'utiliser une pin de la Wemos pour piloter la télécommande ou un module autre pour faire plaisir à Jetfuss et à Walter. En cas de coupure d'alimentation la pile du DS3231 conserve l'heure en temps réel. Ce module à même suffisamment de mémoire pour y stocker les heures des programmations journalières. Au retour de l'alimentation il suffit de relire ces valeurs et de reprendre le cycle.

J'ai commencé à avoir un problème, car je me suis aperçu comme souvent dans les libraries pleines de bugs qu'elles ne permettaient pas de programmer l'heure dans le DS3231 ou n'étaient pas compatible avec certains modules Arduino et la Wemos en particulier. Mais à force de recherche, j'ai trouvé la perle rare la library uRTClib un petit bijou de library qui fonctionne à merveille et qui, cerise sur le gâteau, permet de stocker des valeurs et de les lire à volonté dans ce même module sans autre chose. 

Coté Wemos des libraries classiques pour réaliser un serveur "Acces Point" pour les anglophones qui veut dire point d'accès c'est à dire que le module Wifi génère lui-même un réseau wifi avec son propre SSID et son mot de passe pour y accéder puis une écoute d'éventuels clients wifi, lecture de la trame reçue et traitement de ces informations.

voici donc le début du code :

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "Arduino.h"
#include "Wire.h"
#include "uRTCLib.h"
uRTCLib rtc(0x68, 0x57); 

Tu remarqueras que le module RTC (DS3231) possède deux adresses mais là personne ne t'en a parler... 0x68 et 0x57 en Héxa. Une adresse pour lire et autre pour écrire dans ce module.

Un dernier petit souci rencontré avec uRTClib l'année n'est codée que sur 1 byte donc deux digits "18" pour 2018, mais il suffit de créer une variable Century est d'y stocker "20" soit le siècle en cours moins 1.

Comme mon intention n'est pas d'étaler mon savoir comme brossden en a été accuser par des ..... on va dire ignorants, je ne donnerai ici aucun code pour ne pas avoir les mêmes déboires.

Je pense quand même avoir été plus constructif que certains, la vidéo un peu plus haut te prouve que ce n'est pas du flanc !

Si tu respectes le principe ci-avant (qui n'est pas la seule façon de faire je m'empresse de le dire) tu arriveras à réaliser ton projet.

La library uRTClib comportent des exemples qui, je pense, te permettront de progresser rapidement dans ton projet, mais je reste à l'écoute pour de plus amples explications si besoins étaient !

J'ai oublié de préciser que la Wemos retourne la même trame au client ce qui permet à celui-ci de vérifier que les bonnes valeurs ont été prises en compte et que dans le cas contraire une seconde transmission à lieu. Tous les essais que j'ai faits, n'ont donné aucune Erreur.

Jetfuss & Walter voilà ce que j'appelle de l'aide !

Portrait de Walter

Bravos, excellente présentation, moi aussi c'est ce que j'appel de l'aide.

Du coup tu n'a pas de question?

Portrait de gael

Walter, pas de provocation s'il te plait.

Portrait de Spy

Walter " Du coup tu n'a pas de question? "

Si j'en avais je n'attendrais pas grand chose ici vu les participants actuels !

Coluche : »C'est un mec qui nous vendait de l'intelligence, et il n’avait pas un échantillon sur lui. »

Portrait de Walter

;) Perso moi j'ai rien a vendre, surtout pas de l'intelligence.

Mais vu la frequence a la quelle tu en parle, cela ne semble pas être ton cas!

Comme il semble que nous soyons quelques un a en être dépourvu peut être que tu peux nous faire un prix de gros :)

Portrait de Spy

Gael : Walter, pas de provocation s'il te plait.

Merci Gael !

Portrait de Walter

Désolé gael, mais je trouve que je suis déjà largement assez souple comme ça, surtout vis a vis de quelqu'un qui passe son temps a provoquer.

Mon message était sincère je trouve sa présentation très bien, et que si il transmet les informatioin a c4l4m4r, lui seront d'une grande aide.

Par contre ses pseudo allusion a notre sujet son tout sauf une aide.

J'ai un gros doute sur le fait que la plus grande provocation vienne de ma part?

Surtout que personnellement je respecte mon l'interlocuteur !

Pages