• STATISTIQUES
  • Il y a eu un total de 0 membres et 30581 visiteurs sur le site dans les dernières 24h pour un total de 30 581 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] NewbieContest
    Nous vous proposons une série de challenges regroupant plusieurs domaines allant de l'exploitation de fail...
    Hacking
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [EN] HackQuest
    Logic: 12, JavaScript: 14, Applet: 6, CrackIt: 13, Crypto: 11, Internet: 3, Exploit: 7, Stegano: 12, Flash: 1, Programmi...
    Challenges
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster
    [FR] Le top web
    Nous offrons une sélection la plus large possible de resources webmaster gratuites, hébergement gratuit...
    Webmaster
    [EN] Gekko
    Site de challenge présenter sous la forme d'une quête. Vous êtes un agent secret qui répond sous le nom...
    Challenges
    [EN] Listbrain Version 3
    Site proposant 66 challenges présentés dans une liste mélangée.
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
ARDUINO, Petite demande
10-12-2013, 10h17 (Modification du message : 12-12-2013, 22h21 par Di0Sasm.)
Message : #1
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
ARDUINO, Petite demande
Salut, enfaite je possède un projet cette année. Une station météo, ayant une grosse partie ARDUINO je voulais juste savoir qu'est-ce qu'il donne ce code ? Je les essayer quelques erreurs de simplicités mais sinon je voulais voir ce qu'il peut donner en réduction de code il prends pas mal de place ...
Sinon, vu la consommation d'une carte arduino je voulais me renseigner sur un autre support

Code C :
 
#include <LiquidCrystal.h> //On inclue les différentes librairies
#include <Wire.h>
#include "Adafruit-BMP085.h"
#include "DHT.h"
#include "RTClib.h"

#define DHTPIN 2 //on définit le pin du DHT
#define DHTTYPE DHT22 //on définit le type du DHT peut aussi etre DHT11 ou DHT21

#define REDPIN 5 //On définit le Pin pour les LED rouge
#define GREENPIN 6 //On définit le Pin pour les LED bleu
#define BLUEPIN 3 //On définit le Pin pour les LED verte
#define FADESPEED 50 //On définit un indicateur de temps pour la rotation des couleurs et le rafraissichement des données

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //On définie les Pins pour l'écran LCD

const int lumiPin = A0; //On définit le Pin de la photorésistance
int lumiValue = 0; //On définit la variable qui va retenir la valeur de la photorésistance
int lumilcdValue = 0; //On définit la variable qui affichera le % de luminosité sur le LCD

Adafruit_BMP085 bmp;//on démarre les variables de lesibraries
DHT dht(DHTPIN, DHTTYPE);
RTC_DS1307 RTC;

void setup() {
Serial.begin(19200); //on demarre une communication serial
if (!bmp.begin()) {
Serial.println("BMP085 ERREUR !!!");//on vérifie si le bmp085 fonctionne
while (1) {}
}
Serial.println("DHT21 TEST");//on vérifie si le DHT fonctionne
dht.begin();
Wire.begin();
RTC.begin();
if (! RTC.isrunning()) {
Serial.println("RTC ERREUR !!!");
// la ligne suivante définit l'heure du RTC à celle ou le code a été compilé
RTC.adjust(DateTime(__DATE__, __TIME__));
}
//On définie les Pins en mode sortie pour le ruban LED
pinMode(REDPIN, OUTPUT);
pinMode(GREENPIN, OUTPUT);
pinMode(BLUEPIN, OUTPUT);

lcd.begin(20, 4); //On définit le nombre de caractères par ligne et le nombre de lignes du LCD

}

void loop() {

lumiValue = analogRead(lumiPin); //On lit la valeur de la photorésistance

/* Pour utiliser la valeur de la photorésistance, il faut faire un peu de math.
La photorésistance fournit un nombre à 10-bits.
Mais analogWrite() utilise des chiffres à 8-bits.
Il faut diviser la valeur par 10 pour ramener celle-ci à un % */

lumilcdValue = lumiValue/10;

int alti = bmp.readAltitude();//on ne garde que la partie entière de la valeur pour l'altittude sa gagne toujours deux caracteres sur le lcd...

int h = dht.readHumidity(); //on definit h pour stocker la valeur d'humidité
int t = dht.readTemperature();//on definit t pour stocker la valeur de temperature

if (isnan(t) || isnan(h))
{
Serial.println("DHT ERREUR !!!");//on revérifie le dht
} else {
Serial.print("Humidite: ");//on imprime les valeurs dans le serial si le lcd ne marche pas cela permet de débeguer...
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(t);
Serial.println(" *C");
}
Serial.print("Temperature = ");// a partir d'ici ce sont les données du bmp085
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pression = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print("Altittude = ");
Serial.print(bmp.readAltitude());
Serial.println(" metres");
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(101500));
Serial.println(" metres");
Serial.println();

DateTime now = RTC.now();// a partir d'icic ce sont les données du DS1307
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), 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 Minuit 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calcul d'une date dans 7jours
DateTime future (now.unixtime() + 7 * 86400L + 30);
Serial.print("Maintenant + 7 Jours + 30 Secondes: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), 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();

// on passe à l'affichage sur le lcd
lcd.print(now.day(), DEC); //On affiche le jour
lcd.print('/');
lcd.print(now.month(), DEC); //On affiche le mois
lcd.print('/');
lcd.print(now.year(), DEC); //On affiche l'annee
lcd.print(" "); //espace
lcd.print(now.hour(), DEC); //On affiche l'heure
lcd.print(':');
lcd.print(now.minute(), DEC); //On affiche les minutes
lcd.setCursor(0, 1); //On passe à la seconde ligne
lcd.print(bmp.readTemperature()); //On affiche notre moyenne de température
lcd.print("*C"); //On affiche l'unité de température
lcd.print(" "); //espace
lcd.print("%Humi:"); //On affiche le % d'humidité
lcd.print(h); //On affiche notre moyenne de température
lcd.setCursor(0, 2); //On passe à la troisieme ligne
lcd.print("Pression: "); //On affiche la pression atmosphérique
lcd.print(bmp.readPressure()); //on lit la valeur de pression du BMP085
lcd.print("Pa"); //On affiche l'unité de pression : Pascal
lcd.setCursor(0, 3); //On passe à la quatrième ligne
lcd.print("Alti:"); //On affiche l'altitude
lcd.print(alti); //On lit la valeur depuis le BMP085
lcd.print("m"); //On affiche l'unité d'altitude : mètres
lcd.print(" "); //espace
lcd.print("%Lumi:"); //On affiche le % de lumiere
lcd.print(lumilcdValue); //On affiche la valeur calculé plus haut
delay(6000);// on patiente ^^

//maintenant on pilote les led
int r, g, b; //on définit les variables pour nos couleurs
//transformation bleue à violet

for (r = 0; r < 256; r++){analogWrite(REDPIN, r) ; delay(FADESPEED);}

 

//transformation violet à rouge

for (b = 255; b > 0; b--){analogWrite(BLUEPIN, b) ; delay(FADESPEED);}
//transformation rouge à jaune

for (g = 0; g < 256; g++){analogWrite(GREENPIN, g) ; delay(FADESPEED);}

 

//transformation jaune à vert

for (r = 255; r > 0; r--){analogWrite(REDPIN, r) ; delay(FADESPEED);}
//transformation vert à cyan

for (b = 0; b < 256; b++){analogWrite(BLUEPIN, b); delay(FADESPEED);}

 

//transformation cyan à bleue

for (g = 255; g > 0; g--){analogWrite(GREENPIN, g) ; delay(FADESPEED);}

lcd.clear(); // on nettoie le lcd pour les prochaines données

}


Voilà répondez si ya des erreurs ou des remarques Smile


EDIT les librairies :

Adafruit-BMP085-Library
DHT-sensor-library
RTClib (DS1307)


Projet : ( maquette exemple trouver )

[Image: sface.jpg]
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
12-12-2013, 17h10
Message : #2
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
Personne :p ?
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
12-12-2013, 17h11
Message : #3
Booster2ooo Hors ligne
Contributeur
*****



Messages : 165
Sujets : 14
Points: 63
Inscription : Aug 2011
RE: ARDUINO, Petite demande
Ca m'aurait plus de tester mais je n'ai pas le matos pour :/
+1 (0) -1 (0) Répondre
12-12-2013, 17h36
Message : #4
Yttrium Hors ligne
Membre actif
*



Messages : 106
Sujets : 14
Points: 48
Inscription : Jul 2012
RE: ARDUINO, Petite demande
Donc pour répondre tout d'abord avec la question de la consommation, a mon avis tu trouvera pas mieux qu'un microcontrôleur comme celui de l'arduino, mais rien ne t'empêche de le séparé de cette dernière avec un montage de ce type !

[Image: arduinobb_12.jpg]

Sinon pour ce qui est du code, je trouve personnellement que c'est le bordel, surtout en ce qui concerne l'affichage Serie / LCD mais pour un projet électronique, je ne pense pas que cela doit poser le moindre problème a part si tu souhaites y apportées des modifications dans 1 ans ou plus :p
BufferoverfloW

Всё минется, одна правда останется
+1 (0) -1 (0) Répondre
12-12-2013, 17h41 (Modification du message : 12-12-2013, 17h43 par Yuri.)
Message : #5
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
@ Sinon pour ce qui est du code, je trouve personnellement que c'est le bordel, surtout en ce qui concerne l'affichage Serie / LCD le problème c'est que je suis obliger de passer une ligne pour chaque position d'affichage :/

Je suis tous à faits d'accords, mais je pense de m'y penchez réellement et édit, dans quelques jours.

D'accord, niveau consommation, enfaite je possède deux petits panneaux photovoltaïques de 12v çà fonctionne mais sinon je voulais juste savoir si il y avais un autre type.
Maintenant niveau montage, je vais le tester.

Merci,
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
15-12-2013, 15h52
Message : #6
thxer Hors ligne
:(){ :|:&amp; };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: ARDUINO, Petite demande
j'y connais rien ma ça donne envie de se lancer !
Niveau budget ça représente combien l'ensemble ?
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
15-12-2013, 19h06
Message : #7
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
Entre 150-200 €, pour le projet ensuite il te faudrat du matériels de base donc 30-60€. Sachant que arduino est Open source donc c'est déjà un point positif :p
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
15-12-2013, 23h09
Message : #8
Yttrium Hors ligne
Membre actif
*



Messages : 106
Sujets : 14
Points: 48
Inscription : Jul 2012
RE: ARDUINO, Petite demande
Avec 30€ tu peux largement commencé thxer Wink

Yuri, oui, il existe d'autre marque de microcontrôleur, comme PIC ou si je me rappel bien Texas Instrument, mais je ne pense pas que tu y trouvera le moindre avantage en comparaison des atmel !
BufferoverfloW

Всё минется, одна правда останется
+1 (0) -1 (0) Répondre
16-12-2013, 11h18
Message : #9
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
Citation : Avec 30€ tu peux largement commencé thxer Wink

Ayant aucun matériel ton budget est vraiment très serrer :/
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre
16-12-2013, 15h22
Message : #10
Yttrium Hors ligne
Membre actif
*



Messages : 106
Sujets : 14
Points: 48
Inscription : Jul 2012
RE: ARDUINO, Petite demande
http://dx.com/p/uno-r3-development-board...ack-215600
= 8€61 * 2
http://dx.com/p/ethernet-shield-with-wiz...lot-118061
= 7€01
http://dx.com/p/breadboard-jumper-wires-...pack-80208
= 2€30
http://dx.com/p/arduino-digital-temperat...ule-121350
= 2€19
http://dx.com/p/433mhz-rf-transmitter-mo...een-220194
= 1€92

Donc avec un total de 30€ tu peux te faire une station météo qui transmet ces données a une second arduino dans la maison capable de mettre les données sur le net.
Alors oui, je trouve que 30€ suffit largement pour commencée :p
BufferoverfloW

Всё минется, одна правда останется
+1 (1) -1 (0) Répondre
16-12-2013, 20h27
Message : #11
thxer Hors ligne
:(){ :|:&amp; };:
*



Messages : 382
Sujets : 60
Points: 162
Inscription : Feb 2013
RE: ARDUINO, Petite demande
Merci pour les infos
Thxer.com
Twitter Thxer_

Code BASH :
echo "JkZ Palx" | sed 'y/lPZaJxk/MG3@tEH/'




+1 (0) -1 (0) Répondre
17-12-2013, 09h10
Message : #12
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
1 fer à souder de l’étain j’ai essayé au maximum d’avoir des câbles avec des embouts mais des fois faut quand même souder. Un premier prix convient du moment que l’embout est assez fin pour faire vos soudures. http://www.electronique-diffusion.fr/pro...s_id=22842

1 multimètre (pas obligatoire) mais recommandé pour vérifier les tensions, les polarités, les résistances, la continuité, etc…

1 pince coupante pour raccourcir les choses trop longues

1 pince de précision histoire de pas passer 20mn à brancher un câble avec ses gros doigts ^^

De la gaine Thermo pour bien isoler les soudures si vous en avez http://www.electronique-diffusion.fr/pro...s_id=66266

1 Sucre pour raccorder les alimentations http://www.electronique-diffusion.fr/pro...s_id=15531

Pistolet à colle chaude pour fixer les capteurs sur la boîte http://www.electronique-diffusion.fr/pro...s_id=21733

Ce qu’il m’a fallut pour la partie matériel:

1 boite en platique 3 euros chez Leclerc

1 Arduino UNO http://snootlab.com/arduino/142-arduino-uno-rev3.html

1 Bredboard 470 points + Câbles mâle/mâle http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

Câbles mâle/femelle http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

1 Ecran LCD 20×4 http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

1 Potientiomètre 10 kΩ

1 DHT22 http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

1 DS1307 http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

1 BMP805 http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1035779597

1 Photo résistance

1 Résistance 220Ω

5 Résistances 10kΩ

3 MOFSET IRF44 TO-220 N-Channel 49A 55V http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1439.l2649

2 Interrupteurs ouvert/fermé.

1 Ruban LED Analogique http://cgi.ebay.fr/ws/eBayISAPI.dll?View...1423.l2649

1 Adaptateur Jack 2,1mm pour l’alimentation http://www.electronique-diffusion.fr/pro...cts_id=475

1 Alimentation 12V L’ampérage dépend du nombre de LED que vous branchez dessus. J’ai récupéré la mienne d’un vieux disque dur, elle convertit le 220V alternatif en 12V 2A
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (1) -1 (0) Répondre
22-12-2013, 00h54
Message : #13
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: ARDUINO, Petite demande
salut,

Tu te pose la question de la consommation électrique, mais tu la prend d'où ? pile, port usb, alim de labo ?
un arduino c'est ~40-50mA, l'écran je sais pas.
mais tu peux imaginer une entrée pour allumer ou éteindre l'écran pour faire baisser la conso, et peut-etre un ne555 en astable + diviseur de fréquence pour couper l'alim de l'arduino et faire encore descendre l'énergie necessaire, une simple idée.
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
23-12-2013, 11h32 (Modification du message : 23-12-2013, 14h10 par Yuri.)
Message : #14
Yuri Hors ligne
Czech Membre
*



Messages : 53
Sujets : 7
Points: 4
Inscription : Aug 2013
RE: ARDUINO, Petite demande
Citation :1 Adaptateur Jack 2,1mm pour l’alimentation http://www.electronique-diffusion.fr/pro...cts_id=475

Reliée à un réseau Photovoltaïque je crois
12V / 2 panneaux
Citation :" Pour apprendre à boxer il suffit d'une nuit. Il faut une vie entière pour apprendre à combattre. "
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Petite épreuve très simple InstinctHack 17 884 25-08-2013, 18h02
Dernier message: supersnail

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut