Go Down

Topic: Bac-Ka-Poux-Bêle 2019 (Read 20115 times) previous topic - next topic

clarahugy

Nov 16, 2015, 05:48 pm Last Edit: Mar 13, 2019, 05:35 pm by jfs
bonjour,
j'ai acheté une carte arduino gsm shield R3, pour la relier à une carte commande pour une sonnette .
je souhaite que quand quelqu'un appuie sur un bouton poussoir , que le programme envoie un sms par le bié de la carte gsm et une carte commande arduino.
cela est pour mon projet j'aurai vraiment besoin d'un programme car ce que je trouve ne correspond pas vraiment à ce que je souhaite.
merci de votre aide

infobarquee

bonjour,
tu as déjà fait ton cahier des charges, tu as tout pour continuer.
déjà commencer par faire joujou avec la carte gsm pour envoyer des sms.
de l'autre coté, prendre un BP et allumer une led par exemple
et tu réunis les deux pour avoir ton prog complet.
AUCUNE AIDE PAR MP

bzhsurfing

Bonjour,
j'ai fais un programme comme je pense qu'il devrait être, essaye le et tiens moi au courant !

clarahugy

???? SVP aider moi int8_t answer;
int onModulePin= 2; // Il s'agit du port DTR (ou PWR) du module SIM900.
char aux_string[30];
// Inscrivez ici le numéro de téléphone pour l'envoie du SMS.
char phone_number[]="+33600000000";
void setup()
{

    pinMode(onModulePin, OUTPUT);
    Serial.begin(115200);
    Serial2.begin(115200);   
       
    Serial.println("------------------------------------------------------");
    Serial.println("----Upsilon Audio - Envoyer un SMS avec le SIM900-----");
    Serial.println("------------------------------------------------------");
    Serial.println("");
    Serial.println("Initialisation en cours ...");
    power_on();
   
    delay(3000);
   
    // Cette commande active la carte SIM.
    //Supprimez cette ligne si vous n'avez pas de code PIN.
    sendATcommand("AT+CPIN=****", "OK", 2000);
   
    delay(3000);
   
    Serial.println("Connexion au reseau en cours ...");

    while( (sendATcommand("AT+CREG?", "+CREG: 0,1", 500) ||
            sendATcommand("AT+CREG?", "+CREG: 0,5", 500)) == 0 );

    Serial.println("Mode SMS en cours d'activation ...");
    // Activation du mode texte pour les SMS.
    sendATcommand("AT+CMGF=1", "OK", 1000);
    Serial.println("Envoi du SMS en cours ...");
   
    sprintf(aux_string,"AT+CMGS=\"%s\"", phone_number);
    // Envoi du numéro de téléphone au module GSM.
    answer = sendATcommand(aux_string, ">", 2000);
    if (answer == 1)
    {
        // Insérez ici le coprs du message.
        Serial2.println("Ceci est un SMS !");
        Serial2.write(0x1A);
        answer = sendATcommand("", "OK", 20000);
        if (answer == 1)
        {
            Serial.println("Message envoye !");   
        }
        else
        {
            Serial.print("Erreur !");
        }
    }
    else
    {
        Serial.print("Erreur !");
        Serial.println(answer, DEC);
    }

}


void loop() // Il n'y a aucune commandes dans la fonction loop.
{
}

// Définition des différentes fonctions.

void power_on(){

    uint8_t answer=0;
   
    // Cette commande vérifie si le module GSM est en marche.
    answer = sendATcommand("AT", "OK", 2000);
    if (answer == 0)
    {
        // Mise en marche du module GSM
        digitalWrite(onModulePin,HIGH);
        delay(3000);
        digitalWrite(onModulePin,LOW);
   
        // Envoie d'une commande AT toutes les deux secondes et attente d'une réponse.
        while(answer == 0){
            answer = sendATcommand("AT", "OK", 2000);   
        }
    }
   
}

// Cette fonction permet d'envoyer des commandes AT au module GSM.
int8_t sendATcommand(char* ATcommand, char* expected_answer, unsigned int timeout){

    uint8_t x=0,  answer=0;
    char response[100];
    unsigned long previous;

    // Initialisation de la chaine de caractère (string).
    memset(response, '\0', 100);
   
    delay(100);
   
    // Initialisation du tampon d'entrée (input buffer).
    while( Serial2.available() > 0) Serial2.read();
   
    // Envoi des commandes AT
    Serial2.println(ATcommand);


    x = 0;
    previous = millis();

    // Cette boucle attend la réponse du module GSM.
   
    do{
// Cette commande vérifie s'il y a des données disponibles dans le tampon.
//Ces données sont comparées avec la réponse attendue.
        if(Serial2.available() != 0){   
            response
  • = Serial2.read();

            x++;
            // Comparaison des données
            if (strstr(response, expected_answer) != NULL)   
            {
                answer = 1;
            }
        }
    // Attente d'une réponse.
    }while((answer == 0) && ((millis() - previous) < timeout));   

    //Serial.println(response); //Cette ligne permet de debuguer le programme en cas de problème !
    return answer;
}





j'ai truvé ca c'est bn

icare

2B OR NOT(2B) = FF
Arduino 1.0.5 à 1.8.5 + gEdit + Ubuntu 18.04 LTS

Jojolito

Bonjour

Voilà je suis débutant et je viens tout juste de me mettre à l'architecture Arduino, bon je me suis acheté l'inflation mega édition Google ADK (parce que je suis un fan de l'univers Google lol )

J'ai commencé par un projet simple qui consiste faire fonctionner une sonde de température étanche DS18B20 acheter sur Amazon

 vu que je tâtonne encore niveau programmation je suis aller sur internet chercher des lignes de code tout fait et simple , le problème c'est que quand je rentre les lignes de codes dans le programme Arduino IDE et que je fais vérifier de nombreuses erreurs apparaissent..

pourtant j'ai bien fait attention à télécharger les bibliothèques nécessaires '' onewire " et "dallasinstrument"

Voici les les messages erreur:

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:57:7: warning: type 'struct OneWire' violates one definition rule [-Wodr]

 class OneWire

       ^

C:\Users\xxxx\Documents\Arduino\libraries\OneWire\OneWire.h:259:7: note: a different type is defined in another translation unit

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire/OneWire.h:68:10: note: the first difference of corresponding definitions is field 'LastDeviceFlag'

     bool LastDeviceFlag;

          ^

C:\Users\xxxxx\Documents\Arduino\libraries\OneWire\OneWire.h:270:13: note: a field of same name but different type is defined in another translation unit

<built-in>: note: type 'bool' should match type 'uint8_t'

c:\program files\windowsapps\arduinollc.arduinoide_1.8.19.0_x86__mdqgnx93n4wtt\hardware\tools\avr\avr\include\stdint.h:126:22: note: the incompatible type is defined here

 typedef unsigned int uint8_t __attribute__((__mode__(__QI__)));

                      ^

C:\Users\xxxxx\AppData\Local\Temp\cckmnESd.ltrans0.ltrans.o: In function `global constructors keyed to 65535_0_ArduinoLED.ino.cpp.o.1921':

<artificial>:(.text.startup+0x5e): undefined reference to `OneWire::begin(unsigned char)'

collect2.exe: error: ld returned 1 exit status

exit status 1
Erreur de compilation pour la carte Arduino Mega ADK




Et maintenant voilà les ligne de code que j'ai trouvé sur internet:

 // Inclusion de la bibliothèque
#include <OneWire.h>
 
// Connecteur numérique relié à DQ
const byte DS_PIN = 7;
 
 
// Création de l'objet associé au DS18B20
OneWire ds(DS_PIN);
 
 
//
// Fonction de lecture de la température
//
void getTemperature(float *temperature) {
 byte data[9], addr[8]; // Données et Adresse du module DS18B20
 
 // Réinitialisation du bus
 ds.reset_search();
 
 // Recherche du capteur
 if (!ds.search(addr)) return;
 
 // Vérification de l'adresse reçue
 if (OneWire::crc8(addr, 7) != addr[7]) return;
 
 // Vérification du modèle de capteur (DS18B20)
 if (addr[0] != 0x28) return;
 
 // Sélection du capteur
 ds.reset();
 ds.select(addr);
 
 // Lancement de la mesure
 ds.write(0x44, 1);
 delay(800);
 
 // Resélection du capteur
 ds.reset();
 ds.select(addr);
 
 // Envoie d'une demande de lecture
 ds.write(0xBE);
 
 // Lecture des données
 for (byte i = 0; i < 9; i++) {
 data = ds.read();
 }
 
 // Conversion des données en degrés Celcius
 *temperature = ((data[1] << 8) | data[0]) * 0.0625;
}
 
 
 
void setup() {
 Serial.begin(115200);
 }
 
 
 
void loop() {
 float temperature;
 
 // Lecture de la température
 getTemperature(&temperature);
 
 // Affichage de la température
 Serial.print(F("Temperature : "));
 Serial.print(temperature, 1);
 Serial.write(176); // Caractère degré
 Serial.write('C');
 Serial.println();
 }



S'il vous plaît vous pouvez m'aider ?






al1fch

#6
Jan 23, 2019, 08:43 pm Last Edit: Jan 23, 2019, 08:45 pm by al1fch
Bonjour et bienvenue sur le forum

Tu auras plus de lecteurs et de réponses si tu places ton code entre les balise appropriées (voir les messages importants épinglés en tête de forum)
D
ans un bloc de code comme ci -dessous le code sera plsu  lisible sur tablettes et smartphones , de plus le copié /coller propre dans l'IDE facilitera les tests. Pour ces raisons il est deamandé d'utiliser les balises.
Code: [Select]

// bloc de code......

J-M-L

C'est parce qu'il y a des smileys à lunette dans le code 8)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

lesept

Ça peut être un problème d'installation de la bibliothèque, peux tu vérifier si le programme de test ici fonctionne ?
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

hbachetti

Quote
C'est parce qu'il y a des smileys à lunette dans le code 8)
C'est vrai.
J'ai copié sans regarder dans l'IDE, les  8) deviennent des 8 !
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

jfs

Voilà voilà..... impatient d'inaugurer  :smiley-mr-green:
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

louismael

Bonjour,

Le titre est suffisant mais je vous donne plus de détails.
J'ai un capteur sonore ( Electret Mic Amp - MAX9814 ) et je cherche un code arduino pour que le composant capture le son et le stocke dans un (ou plusieurs) carte SD.

Merci de votre aide.

AgrafeuseWizard

Je ne peux pas trop t'aider pour ton problème mais je te souhaite bonne chance.

AgrafeuseWizard

AMADOU5

BON JOUR

je voudrais vérifier les commendes AT avec le gsm sim900 et arduino uno

J'ai un gsm sim900 quand je téléverse le programme les commende AT  NE REPOND PAS JE N'arrive pas a comprendre

voila le programme

#include <SoftwareSerial.h>

//Create software serial object to communicate with SIM900
SoftwareSerial mySerial(7, 8); //SIM900 Tx & Rx is connected to Arduino #7 & #8

void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
 
  //Begin serial communication with Arduino and SIM900
  mySerial.begin(9600);

  Serial.println("Initializing...");
  delay(1000);

  mySerial.println("AT"); //Handshaking with SIM900
  updateSerial();
  mySerial.println("AT+CSQ"); //Signal quality test, value range is 0-31 , 31 is the best
  updateSerial();
  mySerial.println("AT+CCID"); //Read SIM information to confirm whether the SIM is plugged
  updateSerial();
  mySerial.println("AT+CREG?"); //Check whether it has registered in the network
  updateSerial();
}

void loop()
{
  updateSerial();
}

void updateSerial()
{
  delay(500);
  while (Serial.available())
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available())
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }
}

j'ai joint  un fichier rar  ( le capture d'ecran de monitor)

MERCI D'avance

Fichiertds.rar

al1fch

#14
Feb 25, 2019, 11:20 pm Last Edit: Feb 26, 2019, 02:05 am by al1fch
tu perds du temps , tiens compte du message d'icare juste au dessus du tien

Quand on arrive sur un forum , prendre le temps de découvrir son fonctionnement est un investissement rentable si on veut bénéficier de toute l'aide qu'il peut apporter.  Faute de quoi on fait fuit les aidants.
Prendre connaissance des messages épinglés en tête de forum.

-venir squatter un fil de discussion de 2015 n'est pas idéal......
-balancer du code en vrac dans le contenu du message ne convient pas (il aura très peu de lecteurs)
-pour le fichier 'joint' c'est à revoir

Go Up