Affichage des articles dont le libellé est electronique. Afficher tous les articles
Affichage des articles dont le libellé est electronique. Afficher tous les articles

lundi 7 octobre 2019

NodeMCU Episode 6 :DHT11 (humidité et temperature) Nano et NodeMcu(LoLin)


Voici un nouveau Projet.
Il fait froid chez moi et je voudrais savoir quand le chauffage va être mis en route.
J'ai besoin d'un NodeMCU branché sur mon Wifi qui enverra les informations d'humidité et de température sur via le Wifi sur une page PHP (base de donnée, jolie schéma etc...)
Déjà verifier que j'arrive à récupérer des données du DHT11 sur le NodeMCU.
Bon ca va faire 1h30 que je suis dessus.
Le satané cablage m'aura fait perdre pas mal de temps.

Branchements:
DHT11 - Nano
Plus (+) - 3,3V
OUT- D2
Moins (-) - GND

Branchements:
DHT11 - NodeMCU LoLin V0.1
Plus (+) - 3,3V
OUT- D4 (What The F....)
Moins (-) - GND

Librairie Utilisé:
DHT_Unified_Sensor

Modifié ainsi:
Comment la ligne du DHT22
decomment la ligne du DHT11
Ajout les librairies suivantes:
// REQUIRES the following Arduino libraries:
// - DHT Sensor Library: https://github.com/adafruit/DHT-sensor-library
// - Adafruit Unified Sensor Lib: https://github.com/adafruit/Adafruit_Sensor

  ! Toujours bien penser à fermer ses fenêtres COM3 ou COM5 ou autre avant de téléverser. !
Mon LoLin est toujours considéré comme un NODEMCU 0.9 (ESP12 Module) dans Outils/ Type de Carte

Maintenant, il faut préparer une page PHP pour récupérer les données
mettre un client Web pour envoyer ces données.
et bien sûr espacer les délais de 1000 (1 seconde) à 900000 au minimum (15mn)

Page PHP: (le fichier "tempdht11_result.txt" doit déjà exister)
https://github.com/tumador/Sonde_DHT_Wifi_PHP
Voici le script Arduino pour l'ESP pour envoyer les données au fichier PHP
https://github.com/tumador/Sonde_DHT_Wifi_PHP

mardi 16 juillet 2019

Arduino Episode 19 : Projet Reveil (tout va bien)

Arduino Episode 19 : Projet Reveil (tout va bien)

J'ajoute juste mon code où le superflu est supprimé, et les effets me conviennent.
Prochaine étape : Le tilt

// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <stdint.h>

RTC_DS3231 rtc;
char str [20];
char joursemaine[12];
char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};
char jourmois[12];
char anneefull[4];
char horaire[12];

#define HARDWARE_TYPE MD_MAX72XX::ICSTATION_HW
#define MAX_DEVICES 4
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10

// Hardware SPI connection
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
int j = 0;

void setup () {
P.begin();
P.setIntensity(0);
Serial.begin(9600);
delay(3000); // wait for console opening

if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}

if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
rtc.adjust(DateTime(2019, 7, 15, 10, 01, 0));
}
}

void loop () {
DateTime now = rtc.now();

int anneefull = now.year();
int annee= (now.year()-2000);
int mois = now.month();
int jour = now.day();
int heure = now.hour();
int minutes = now.minute();

if (P.displayAnimate())
{
sprintf(joursemaine,daysOfTheWeek[now.dayOfTheWeek()]);
sprintf(jourmois,"%02d/%02d",jour,mois);
sprintf(anneefull,"%02d",anneefull);
sprintf(horaire,"%02d:%02d",heure,minutes);

switch (j) {
case 0:
P.displayText(joursemaine, PA_CENTER, 25 , 2000, PA_DISSOLVE, PA_DISSOLVE);
break;
case 1:
P.displayText(jourmois, PA_CENTER, 25 , 2000, PA_DISSOLVE, PA_DISSOLVE);
break;
case 2:
P.displayText(anneefull, PA_CENTER, 25 , 2000, PA_DISSOLVE, PA_DISSOLVE);
break;
case 3:
P.displayText(horaire, PA_CENTER, 25 , 30000, PA_DISSOLVE, PA_DISSOLVE);
break;
default:
break;
}
j = j + 1;
if (j > 5) j = 0;
}

Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(") ");
Serial.print(now.day(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.year(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(j);
Serial.println();
}

dimanche 7 avril 2019

Arduino Episode 18 : Projet Reveil

Voici un projet qui s'impose à moi,
après un achat sur le bon coin, je me retrouve avec quelques éléments qui ne m'interesse pas vraiment.
-arduino
-matrice 7219
-une horloge temps réel ds3231m


et l'idée à germée.
 Je vais faire un reveil,  juste ajouter un buzzer un tilt et je pourrais faire une horloge qui affiche l'heure, sonne, et s'éteint lorsqu'on lui met la tête en bas.
on pourra toujours changer l'arduino nano par un esp8266 pour le mettre sur Internet.

Voici rapidement les branchements
Max7219 - Nano
VCC - 5V
GND - GND
DIN - PIN 11
CS -  PIN 10
CLK - PIN 13

DS3231M - Nano
VCC - 3V
GND - GND
SCL - SCL or A5
SDA - SDA or A4


Pour la librairie du DS3231M, j'opte pour RTCLib, plus rapide que DS3231M  ou DS3231 ou DS3231F
Il configure l'heure tout seul, l'affiche, et fait meme un test de prévision (ici ca ne marche pas)

2019/4/8 (Monday) 18:10:47
 since midnight 1/1/1970 = 1554714647s = 17994d
 now + 7d + 30s: 2019/4/16 06:40:53

Voici la partie code pour le RTC :
// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include
#include "RTClib.h"

RTC_DS3231 rtc;

char daysOfTheWeek[7][12] = {"Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"};

void setup () {

#ifndef ESP8266
  while (!Serial); // for Leonardo/Micro/Zero
#endif

  Serial.begin(9600);

  delay(3000); // wait for console opening

  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    while (1);
  }

  if (rtc.lostPower()) {
    Serial.println("RTC lost power, lets set the time!");
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
  }
}

void loop () {
    DateTime now = rtc.now();

    Serial.print(" (");
    Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
    Serial.print(") ");

    Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
   
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
   
    Serial.print(" Depuis le 1/1/1970 minuit = ");
    Serial.print(now.unixtime());
    Serial.print("s = ");
    Serial.print(now.unixtime() / 86400L);
    Serial.println("d");
   
    // calculate a date which is 7 days and 30 seconds into the future
    DateTime future (now + TimeSpan(7,12,30,6));
   
    Serial.print(" Maintenant + 7d + 12h + 30minutes +6s: ");
    Serial.print(future.day(), DEC);
    Serial.print('/');
    Serial.print(future.month(), DEC);
    Serial.print('/');
    Serial.print(future.year(), DEC);
    Serial.print(' ');
    Serial.print(future.hour(), DEC);
    Serial.print(':');
    Serial.print(future.minute(), DEC);
    Serial.print(':');
    Serial.print(future.second(), DEC);
    Serial.println();
   
    Serial.println();
    delay(5000);
}

vendredi 17 août 2018

Fritzing: découverte

Voici un petit article pour apprendre à utiliser FRITZING: 



Fritzing est un outil OpenSource et gratuit, permettant de réaliser des montages électroniques à des fin de présentation.

L'outil est simple d'utilisation et pratique.
http://fritzing.org/home/

Téléchargez, décompressez et Utilisez-le.

Pour les présentation, restez sur l'onglet Platine d'essai

Sur le côté droit, se trouve les composant disponibles. Vous pouvez en télécharger d'autres (github ou autres) et les ajouter en faisant fichier, ouvrir.
Ils iront s'ajouter automatiquement dans la bibliothèque myPart

Vous pouvez reliez les composants directement, et ajouter des coudes pour que ce soit plus joli.
Vous pouvez également changer la couleur du câble , ou détail des composant, toujours dans la fenêtre de droite.

Un exemple en vidéo :https://www.youtube.com/watch?v=g5PIiQTjel8

Alternative:
Simulateur : NG SPICE
http://ngspice.sourceforge.net/

vendredi 29 décembre 2017

Raspberry épisode 28 : DHT on reviens dessus en mode electronique

Si vous n'avez pas un module tout fait, mais juste un composant electronique, voici comment l'utiliser.
(Je l'ai fait car mon module ne répondait plus, je pensais qu'il était grillé, j'en ai donc recommander sur internet)
(En fait, je n’exécutait pas la commande PIGPIOD)


La 1ere Broche, sur la résistance 4,7 KOhms , puis alimentation électrique 5V
La 2eme Broche, sur l'autre bout de la résistance, et le PIN DATA du Raspberry (ex BCM17)
La 3ème Broche, sur rien
La 4ème Broche sur la Masse.

-Branchement sur le Raspberry, comme d'habitude , l'aide se trouve sur ce site: https://fr.pinout.xyz
-Pour reconnaitre une résistance, n'hésitez pas à utiliser des sites comme: https://www.dcode.fr/code-couleur-resistance
ou
https://www.digikey.fr/fr/resources/conversion-calculators/conversion-calculator-resistor-color-code-5-band 

Bravo à vous :)

mercredi 6 septembre 2017

Arduino : Episode 1 : le ventilateur fou




 Bonjour,


Voici une nouvelle section, au même titre que le Raspberry, vous trouverez ici mes expériences avec l'Arduino.
Le gros avantage étant que c'est vraiment pas chère.

Pourquoi Arduino et pas Raspberry ?
Le Raspberry est un ordinateur, il lui faut un temps pour s'allumer, lancer ses services mais est beaucoup plus puissant et plus cher.
Un Arduino est un contrôleur, il est bête, et effectue toujours les mêmes tâches. Mais il a l'énorme avantage d'être abordable et rapide dans son exécution.

Je voulais adapter mon projet Raspberry Episode 19 car il était vraiment trop long à s'allumer.
Bref, avant de savoir si j'avais un bus, j'étais déjà parti.

J'ai acheter, il y a presque 1 an maintenant un Arduino Nano pour 4€ sur Ebay.
Un peu de soudure par ci par là (sur ce modèle il faut jouer du fer à souder) et le tour est joué.

 Le Code:

 Ensuite il faut connecter en Micro-USB son arduino à son PC, installer le logiciel Arduino
(sélectionner le modèle, dans outils, type de carte, ainsi que la connectique :COM3)


void setup() {
  // put your setup code here, to run once:
pinMode(13,OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
digitalWrite(13, HIGH);
delay(4000);
digitalWrite(13, LOW);
delay(3000);
}
 Le code situé dans le Void setup ne sera utilisé qu'une fois.
Celui dans le loop sera exécuté en boucle.

Ici, on applique un mode sortie au PIN13
puis on boucle sur envoyer de l'electricité au port 13
attendre 4000 millisecondes (4 secondes)
arrêter d'envoyer l'electricité
attendre 3000 millisecondes, et on recommence : on allume, on attend, on éteint, on attend, on allume ...

Connexion:



Pour la connectique, on branche un câble durant sur la PIN Masse (GND) de l'arduino et un autre sur le PIN 13 (digitale). Avec un ventilateur, pas de bornage (- ou +) ca tourne dans un sens ou dans l'autre. Plus tard avec une LED on fera attention et on ajoutera une résistance pour ne pas la griller.
On vérifie le code (avec l'îcone Coche), on téléverse (avec l'îcone Fleche) et aussitôt le script est utilisé.


Pour information, il est conseillé de sauvegarder votre travaille.
Une fois le code injecté dans l'arduino, il ne peut pas être reversé vers le logiciel.



mardi 5 septembre 2017

Electronique : variateur de lumière

Voici une présentation d'un variateur de lumière, type halogène. et quelques explications.

Je vois pleins de composants, mais qu'est-ce que c'est ?
http://www.sonelec-musique.com/electronique_theorie_composants_formes.html

-Bornier
Entrée / Sortie du courant sur la gauche

-Fusible (blanc et metal) au centre
Brule si court circuit ou surchauffe.

-Résistance en R2
Limite l'intensité du courant. Il ne me semble pas qu'elle soit borné, mais on fait attention à garder une cohérence. Il y a de jolies couleurs dessus qui permettent de connaître sa valeur.
https://www.apprendre-en-ligne.net/crypto/passecret/ohm.html

-Potentiomètres rectilignes (faders)
Variateur en haut (noir) pour faire varier l'intesité du courant
Il s'agit d'une résistance ajustable selon la valeur que nous souhaitons.

-LED à côté du carré jaune (le voyant du variateur)
C'est une ampoule, borné (ou le + et le - sont important, et qui peut grillé si l'intensité est trop importante, donc on insert avant une resistance qui réduira l'intensité du courant)

-Le carré Jaune : le condensateur
Ce bidule, si j'ai bien compris stock l'intensité du courant (car il s'agit de deux plaque de conducteur séparé par un isolant, s'il est en forme de cylindre, c'est que les planques ont été enroulés)
Il existe des condensateurs borné (c'est à dire que le + et le moins sont important) et d'autres non. 

-Triac en noir à droite, soudé au radiateur (metal qui fait presque le tour)
https://www.astuces-pratiques.fr/electronique/le-triac-principe-de-fonctionnement
Il semble que ce soit une espèce d'interrupteur electrique qui laisse passer le courant s'il recoit une tension minimum.

-La bobine en cuivre
Sert à distribuer l'electricité de manière plus douce, et pas limiter les chutes de tensions soudaines.
https://openclassrooms.com/courses/l-electronique-de-zero/la-bobine
http://www.sonelec-musique.com/electronique_realisations_gradateur_lumiere_001.html

Merci à l'article suivant:
https://gradot.wordpress.com/2015/01/12/variateur-a-triac/

Peut-être reviendrais-je sur l'organisation de tous ces composants....


jeudi 24 août 2017

Brancher un Ventilo en USB

Pour brancher un ancien ventilateur en USB, voici comment effectuer le branchement.
A gauche, l'USB
A droite, le câble du ventilateur

-Noir sur Noir
-Rouge sur Jaune
Le reste, on n'en a pas besoin