samedi 26 novembre 2016

Ventiller en fonction d'une température et /ou d'un taux d'humidité

Un petit montage pour mettre en fonctionnement deux ventilateurs en fonction de la température et/ou du taux d'humidité


Un petit montage arduino très simple

Un code aussi très simple

#include "DHT.h"                            // Librairie pour DHT22
#define DHTPIN 9                            // DHT22 Sensor connecte au PIN 9 pour le pole data
#define DHTTYPE DHT22                       // DHT de type22 DHT22
DHT dht22(DHTPIN, DHTTYPE);

int fan1 = 7;                               //le ventilateur 1 a son pole positif connecte au PIN7
int fan2 = 4;                               //le ventilateur 1 a son pole positif connecte au PIN4

void setup()
{
  Serial.begin(9600);                       //
  Serial.println("DHT22 mesure de la temperature et de l'hygrometrie"); // Texte a afficher sur le moniteur série
  dht22.begin();                            //  
  pinMode (fan1,OUTPUT);                    //
  pinMode (fan2,OUTPUT);                    //
}

void loop()                                 // on lance une serie de commande en boucle
{

delay(2000);
  float t = dht22.readTemperature();        // On enregistre la valeur de temperature dans la variable t
  float h = dht22.readHumidity();           // On enregistre la valeur d'humidite dans la variable h
 
  Serial.print("Temperature: ");            // on affiche du texte sur le moniteur serie
  Serial.print(t);                          // on affiche du texte sur le moniteur serie
  Serial.print(" C ");                     // on affiche du texte sur le moniteur serie
  Serial.print("Humidite : ");              // on affiche du texte sur le moniteur serie
  Serial.print(h);                          // on affiche du texte sur le moniteur serie
  Serial.println(" %");  


  if (t >21){                                // si la variable t est superieur a 21 (vous pouvez modifier la valeur)
   digitalWrite (fan1, HIGH);                // la valeur de fan 1 est portee a haut
 } else {                                    // sino
      digitalWrite (fan1, LOW);              // la valeur de fan 1 est portee a bas
 }



    if (h >65){                              // si la variable h est superieur a 65 (vous pouvez modifier la valeur)
   digitalWrite (fan2, HIGH);                // la valeur de fan 2 est portee a haut
 } else {                                    // sinon
      digitalWrite (fan2, LOW);              // la valeur de fan 2 est portee a bas
 }

   delay(500);                               // on attends 500 millisecondes avant de relancer la boucle
}


jeudi 24 novembre 2016

Utilisation de piles pour les petits montages électroniques.

J'étais toujours en questionnement sur la durée de vie des piles pour nos montages électroniques.

Laquelle choisir ?

Que signifie tous ces codes, chiffres et lettres ?

Sont elle polluantes ou très polluantes, toxiques ou non .......

Une page intéressante pour répondre à une partie de ces questions :












dimanche 7 février 2016

Programmer l'Attiny85 avec une arduino UNO

Le Tiny AVR Programmer de chez Saperkfun est très pratique et simple d'emploi après une légère configuration comme nous l'avons décrit ici

Mais il est intéressant aussi de savoir le programmer avec juste une carte arduino un breadboard et quelques fils.

Aller je me lance. Encore une fois je n'invente rien je suis un tuto et retranscrit ici ce que je fait.

Je pars du tutoriel suivant trouvé sur hackster.io  ICI

Il y a en premier lieu toute la partie configuration arduinoUNO comme ISP (In-System Programming)

Je connecte l'arduinoUNO, je lance le soft arduino IDE. J'ouvre l'exemple ArduinoISP.

File -> Examples -> ArduinoISP

Je le téléverse dans l'arduinoUNO

J'ajoute le support du Attiny85 dans le soft arduino IDE.

J'ouvre Fichiers > Préférences   puis dans la fenêtre qui s'ouvre dans la case nommées "Additional Boards Manager URLs" je colle l'adresse suivante :
https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json


Je clique OK


Après quoi j'ouvre le gestionnaire de cartes



Ceci ouvre une fenêtre comme ceci :

Je descend jusqu'à la ligne "attiny by Davis A. Mellis". Et je clique dessus.

Voila c'est installé.

Je vérifie dans >Outil




Voilà qui est fait, il maintenant temps de passer à la partie matériel.

Le matériel nécessaire :

  • une carte arduino UNO (originale)
  • l’ATtiny85 à programmer.
  • des câbles
  • une breadboard
  • un condensateur 10µF  25 V
Je connecte l' arduino UNO avec Attiny85 en utilisant un breadboard comme ci dessous :

Arduino Uno – ATtiny85
  • 5V – Vcc
  • Gnd – Gnd
  • Pin 13 – Pin 2
  • Pin 12 – Pin 1
  • Pin 11 – Pin 0
  • Pin 10 – Reset
Un schéma plus simple qu'un long discour :


Et dans la réalité j’obtiens :



J'ajoute le condensateur de 10µF entre Resest et GND sur l'arduino UNO.

Ceci pour prévenir le reset de l'arduino UNO quand le programme est chargé sur l'Attiny85.

Comme j'utilise un condensateur électrolytique je m'assure que l'anode est sur le GND (sinon c'est mal).

Téléversement du programme sur l'Attiny85.

Nous retournons donc maintenant sur le logiciel.

>outils>type de carte  sélectionner "attiny" 

>outils>processeur>  sélectionner "attiny85"

>outils>clock  sélectionner 8 MHz (internal)


Je m'assure pour finir que l'arduino comme isp est sélectionné.

>outils>programmateur  sélectionner "arduino as isp"


Par défaut le ATtiny85 fonctionne à 1Mhz, pour le faire fonctionner à 8Mhz :

>outils>   "graver la séquence d'initialisation"

Je devrais avoir un message du type de celui ci dessous


Mais en fait j'ai ça :



Et là je sèche total

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

après quelques recherches sur le toile j'ai trouvé ceci :

http://www.lesusinesnouvelles.com/wiki/index.php?title=Microcontrolleur_ATTINY85

J'ai
donc téléversé sur l'arduino après avoir :
tout déconnecté
sélectionné type de carte "Arduino Genuino/Uno"
le port
et programateur : "parallel programmer"

le téléversement se passe normalement

je reconnecte tout comme ci dessus

lance la séquence 

>outils>   "graver la séquence d'initialisation"

et là pas de message d'erreur, juste un écran noir



je  charge maintenant le code exemple  "Blink"


Je le téléverse, et là tout semble se passer nomalement :




Maintenant il faut vérifier que cela fonctionne :

J'enlève toutes les connection et réalise le cablage suivant :

Mais là rien ne se passe

à suivre ...

eureka, j'ai compris pourquoi j'ai oublié de modifier le 13 en zéro
 à suivre































lundi 1 février 2016

Premier essai attiny85 et Tiny AVR Programmer

Ca y est le Tiny AVR Programmer de chez Sparkfun est arrivé, les attiny 85 sont arrivés.

Let's go ......



Tout d'abord j'ai suivi le tutoriel de Spakfun,  celui CI

Comme je suis pour l'instant sous linux ou mac je suis passé directement à la page ICI 

Sur l'ordinateur Ubuntu le logiciel arduino est une version 1.0.X j'ai donc chargé le fichier nécessaire ATtiny for Arduino 1.0.x 

J'ai voulu aussi tester sur le mac ou est chargée une version 1.6.X j'ai donc chargé le fichier nécessaire ATtiny for Arduino 1.6.x

J'ai décompressé et déplacé le dossier "attiny" dans le dossier /arduino/hardware, j'ai d'ailleurs créé ce dossier hardware qui n’existait pas.

Puis j'ai lancé arduino, menu type de carte : ATtiny

Puis processeur : AtTiny85

J'utilise la puce suivante :



Le point suivant est très important d'après le site car il y a risque de destruction de la puce

Clock : 1 MHz

Apparemment mettre plus ralenti à 8 et détériore à 20.

Je connecte le Programmer et charge le sketch suivant :

je le copie d'abord dans la fenêtre du soft arduino, puis clique sur téléverser.

int blinkPin = 0;

void setup()
{
  pinMode(blinkPin, OUTPUT);
}

void loop()
{
  digitalWrite(blinkPin, HIGH);
  delay(500);
  digitalWrite(blinkPin, LOW);
  delay(500);
}

Le résultat vous le voyez sur la vidéo du début de l'article, donc ça fonctionne.

Les prochaines étapes :

1 - Tenter la même programation avec diverses cartes arduino uno, arduino nano, arduino mega, arduino leonardo

2 - essayer un projet simple, attiny85 seule et servo

3 - essayer attiny85 dht22 et transmission sans fil vers RaspberryPi pour usage Gladys (pour remplacer la liaison série actuelle) avec les composants suivants :

Émetteur récepteur NRF24L01 + 2,4 GHz :






et transmetteur Wi-Fi :





Et pour finir 433Mhz RF Transmetteur Module + Kit Récepteur pour Arduino ARM MCU WL TE122 :







dimanche 31 janvier 2016

Utiliser les arduino nano chinoise ...

J'ai fait l'acquisition de plusieurs arduino nano chinoise, vu leur prix c'est une bonne affaire

Malheureusement en essayant simplement de faire fonctionner un sketch de base "blink", pas moyen de téléverser sur l'arduino.

Bon ne nous affolons pas recherche sur internet.

Je suis tombé sur cette page :

http://kiguino.moos.io/2014/12/31/how-to-use-arduino-nano-mini-pro-with-CH340G-on-mac-osx-yosemite.html

Et là après quelques tâtonnements :


Bon pour être bien sur un petit sketch simple

un servo de modelisme simple






Un câblage tout aussi simple





le sketch :

#include <Servo.h>

Servo myservo;  // Création objet myservo par lequel on envois les instruction au servo

void setup()
{
  pinMode(6,OUTPUT);
  myservo.attach(6);  // pin auquel on associe notre objet connecté au fil données du servo, jaune sur le schéma orange sur notre servo
}

void loop()

  myservo.write(0);     // mise du servo à sont angle minimum       
  delay(1000);          // pendant une seconde
  myservo.write(255);   //
mise du servo à sont angle maximum !       
  delay(1000);          // pendant une seconde
}




Résultat :


jeudi 21 janvier 2016

Un truc génial et pas cher attiny85....

...... pour réaliser plein de petits montages. Elle est plus petite et moins cher que l'atmega328 (le coeur de l'arduino).




Projets domotiques :

Thermomètre indépendant transmettant en 2,4 Ghz

 http://arduino.stackexchange.com/questions/18163/using-attiny85-nrf24l01-dht2-cant-get-data-from-dht22


******

Contrôler un moteur pas à pas en wifi avec un script json (qui doit pas être bien éloigné du node.js pour notre projet gladys)



http://blog.nyl.io/esp8266-motor/

ouvrir et fermer portes, vollets, et mettre en mouvement tout un tas d'objets ...


*****

Contrôler un relai selon les données récoltées avec une sonde de températures DS18B20


http://www.duinos.net/show/?id=200

*****

Une porte domotique que l'on vérouille ou dévérouille avec son smatphone (pour moins de 40euros) :


http://blog.idleman.fr/raspberry-pi-22-creer-une-porte-domotique-partie-1/

*****

Projets modelistiques :

Avec des servos

Créer des sons

Diffuser des sons

Une floppée de gadget utiles ou pas :

Une alarme pour piège à souris :



http://www.instructables.com/id/Cheap-Wireless-Mousetrap-Alarm-Using-an-ATtiny85/?ALLSTEPS

*****

Un mini robot qui trouve et suit une ligne :


*****

Une guirlande led rgb pilotée



http://shin-ajaran.blogspot.sg/2014/04/wearable-electronics-arduino-x-attiny85.html

*****

Une micro lampe de poche



http://www.instructables.com/id/Supercapacitor-Programmable-Attiny-LED-Flashlight/?ALLSTEPS

Pour quelques euros à chaque fois.

Facile a programmer .....

.... avec un arduino :



https://www.hackster.io/arjun/programming-attiny85-with-arduino-uno-afb829
http://highlowtech.org/?p=1695
http://forum.arduino.cc/index.php?topic=150870.0

..... avec unTinyProgrammer :



à acheter ici :
https://www.sparkfun.com/products/11801

ou plutôt de france ici:
https://www.gotronic.fr

à fabriquer ici:
http://www.thingiverse.com/thing:12461



Ou avec un RaspberryPi



http://www.instructables.com/id/Programming-the-ATtiny85-from-Raspberry-Pi/?ALLSTEPS
https://www.raspberrypi.org/forums/viewtopic.php?f=96&t=106655
http://blog.stevemarple.co.uk/2013/03/how-to-use-gpio-version-of-avrdude-on.html


pas mal de projets :

http://www.instructables.com/tag/type-id/category-technology/keyword-attiny85/

http://www.electronics-lab.com/tag/attiny85/

Voila la découverte de l'attiny85 va me permettre de compléter le projet domotique et plus ....

mardi 19 janvier 2016

Les origines ....

D'où me viens cet envie d'un aide de camps domestique informatique ?

Je crois que la référence la plus éloignée dont je me souvienne c'est Hal, l'ordinateur de 2001.



Après il y a plein de références litéraires ou cinématographiques.

Les personnages qui ont un majordome dévoué m'ont toujours aussi amusés, mais avoir à son service h24 un humain me gène un peu, alors un ordinateur c'est idéal.

Il faut que je voit si on peut renommer le Gladys de la maison Hal ?

Pour ne montrer que quelques un de ces assistants dotés d'une AI

Robby



R2D2 et C3PO





 Jarvis


Sonny