Bac-Ka-Poux-Bêle 2019-2020

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

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.

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

projet sonnette.txt (1.43 KB)

???? 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[x] = 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

Bonjour,
La première aide se trouve ici

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

: 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':

:(.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 ?

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)
Dans 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.

// bloc de code......

C’est parce qu’il y a des smileys à lunette dans le code 8)

Ça peut être un problème d'installation de la bibliothèque, peux tu vérifier si le programme de test ici fonctionne ?

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 !

Voilà voilà..... impatient d'inaugurer :grin:

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.

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

AgrafeuseWizard

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

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

Bonjour,

Nous travaillons sur un projet qui consiste en la détéction de l éclairage d une piéce quelconque à l aide d'un capteur qui sera mis derriére l interrupteur . On voudrait aussi afficher cela sur un tableau de bord pour qu' on aie un aperçu

On voudrait aussi mettre en place un outil sur le tableau de bord qui pourra éteindre cet éclairage

Mes questions sont les suivantes:

" Quels types de capteur devrais je utiliser ?"

"Comment procéder pour éteindre cet éclairage ?"

Voilà j attend vos réponses

Votre capteur a-t-il pour fonction:
a) de détecter que l'interrupteur est enclenché
b) de détecter qu'il y a de la lumière?

Pour éteindre du secteur, sans trop de risque, je verrais un ULN28003, alimenté par une patte d'Arduino et alimentant un relais ....

De détécter que l intérrupteur est enclenché

Capteur mécanique ou autres tout est possible, le tableau de bord tu peux utiliser un esp8266 branché sur le capteur et une interface web simple en wifi

Bonsoir
Comme détecteur d'état du l'interrupteur il est possible d'associer une luciole neon (avec sa résistance) et un phototransistor ou avec une photorésistance.
Avec ce type d'optocoupleur maison l'isolation galvanique pourrait être satisfaisante.

Nous travaillons sur un projet

projet scolaire ? annoncer la couleur.....