Robotique-Projet
Bonjour et bienvenu sur le forum ROBOTIQUE-PROJET

Merci de nous rejoindre, pour avoir accès aux forum en entier,

il suffis juste de s'inscrire sa prends 2 minutes, et bien sur de faire sa

présentation, au plaisir de se croisé sur le forum.
Robotique-Projet

Forum sur la Robotique & Informatique & Programmation


Vous n'êtes pas connecté. Connectez-vous ou enregistrez-vous

Voir le sujet précédent Voir le sujet suivant Aller en bas  Message [Page 1 sur 1]

Tazoun

avatar
Membre
Membre
je dois réalisé un envoi d'un tweet avec la bibliothèque twitter.lib avec le simplepost ,
le programme par défaut envoi sur twitter juste "Bonjour tous le monde , je suis arduino".
je dois aussi envoyé l'heur donc j'utilise le programme UdpNTPClient.
le problème c'est que je n'arrive pas a mettre les variable de l'heur avec la variable de smg dans une seul variable avec qui sera déclarer dans twitter.post.
Voici ce que j'ai réalisé pour l'instant l'assemblement des 2 programme.
attention!!! j'ai pue constaté que la fonction twitter.post n'acceptai pas les variable de type String.
code: 

Code:
#include <SPI.h>         
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <Twitter.h>
#define Y 1

byte mac[] = {  
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

unsigned int localPort = 8888;      // local port to listen for UDP packets

IPAddress timeServer(132, 163, 4, 101); 

const int NTP_PACKET_SIZE= 48; 

byte packetBuffer[ NTP_PACKET_SIZE]; 


EthernetUDP Udp;

byte ip[] = { 192, 168, 2, 250 };


Twitter twitter("YOUR-TOKEN-HERE");


char msg[] = "bonjour tous le monde!";


void setup() 
{
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ;
  }



  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");

    for(;;)
      ;
  }
  Udp.begin(localPort);

  delay(1000);
  Ethernet.begin(mac, ip);

  Serial.begin(9600);

  Serial.println("connecting ...");
  if (twitter.post(msg)) {

    int status = twitter.wait(&Serial);
    if (status == 200) {
      Serial.println("OK.");
    } else {
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } else {
    Serial.println("connection failed.");
  }
}


void loop()
{
  sendNTPpacket(timeServer); 


  delay(1000);  
  if ( Udp.parsePacket() ) {  

    Udp.read(packetBuffer,NTP_PACKET_SIZE); 


    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);  

    unsigned long secsSince1900 = highWord << 16 | lowWord;  
    Serial.print("Seconds since Jan 1 1900 = " );
    Serial.println(secsSince1900);               


    Serial.print("Unix time = ");

    const unsigned long seventyYears = 2208988800UL;     

    unsigned long epoch = secsSince1900 - seventyYears;  

    Serial.println(epoch);                               
    epoch = (Y * 3600);


    Serial.print("The UTC time is ");      
    Serial.print((epoch  % 86400L) / 3600); 
    Serial.print(':');  
    if ( ((epoch % 3600) / 60) < 10 ) {
     
      Serial.print('0');
    }
    Serial.print((epoch  % 3600) / 60);
    Serial.print(':'); 
    if ( (epoch % 60) < 10 ) {

      Serial.print('0');
    }
    Serial.println(epoch %60); // print the second
  }
  // wait ten seconds before asking for the time again
  delay(10000); 
}


unsigned long sendNTPpacket(IPAddress& address)
{

  memset(packetBuffer, 0, NTP_PACKET_SIZE); 

  packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  packetBuffer[1] = 0;     // Stratum, or type of clock
  packetBuffer[2] = 6;     // Polling Interval
  packetBuffer[3] = 0xEC;  // Peer Clock Precision

  packetBuffer[12]  = 49; 
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;

  
  Udp.beginPacket(address, 123); //NTP requests are to port 123
  Udp.write(packetBuffer,NTP_PACKET_SIZE);
  Udp.endPacket(); 
}  

Pouvez-vous m'aidé à réalisé cette variable si c'est bien sa qu'il faut faire.



Dernière édition par Tazoun le Jeu 26 Fév - 19:58, édité 1 fois

Seb03000

avatar
Fondateur
Fondateur
Bonjour Tazoun , peux tu modifier ton poste et mettre ton code dans la balise code qui

porte se Logo  <>.

Dans ton code aisé de mettre les commentaire en français , pour que les autres membre puisse

comprendre et te donner un coup de mains.

Merci.


_________________
Voici ma chaîne YouTube: Drone-250-Time [Vous devez être inscrit et connecté pour voir ce lien]
Voici ma chaîne YouTube: Dark-Best [Vous devez être inscrit et connecté pour voir ce lien]
Faite passé l'information les amies , merci a vous tous.
http://jarvise.atspace.cc/

Tazoun

avatar
Membre
Membre
je viens de trouver la réponse par moi même aujourd'hui:

je n'ai pas le code sur mon ordinateur mais il est sur celui du travail, je rapporterait le code corrigé demain.
Et désolé d'avoir fait un poste pour rien.

Tazoun

avatar
Membre
Membre
voici le code corrigé que je vous l'est promit il y a plus d'une semaine je suis désolé du retard.
Code:
#include <SPI.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <Twitter.h>
#define Y 1//nombre d'heur de décallage

byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
unsigned int localPort = 8888;      
char timeServer[] = "fr.pool.ntp.org";
const int NTP_PACKET_SIZE = 48;
byte packetBuffer[ NTP_PACKET_SIZE];
EthernetUDP Udp;
byte ip[] = { 10, 0, 0, 36 };
Twitter twitter("<votre jeton>");
char msg[80];
int Heure;
int Min;
int S;

  unsigned long sendNTPpacket(char* address)
{
  memset(packetBuffer, 0, NTP_PACKET_SIZE);
  packetBuffer[0] = 0b11100011;  
  packetBuffer[1] = 0;    
  packetBuffer[2] = 6;    
  packetBuffer[3] = 0xEC;  
  packetBuffer[12]  = 49;
  packetBuffer[13]  = 0x4E;
  packetBuffer[14]  = 49;
  packetBuffer[15]  = 52;
  Udp.beginPacket(address, 123);
  Udp.write(packetBuffer, NTP_PACKET_SIZE);
  Udp.endPacket();
}
void setup()
{
 Serial.begin(9600);
  while (!Serial) {
    ;
  }
  if (Ethernet.begin(mac) == 0) {
    Serial.println("Failed to configure Ethernet using DHCP");

    for (;;)
      ;
  }
  Udp.begin(localPort);
  sendNTPpacket(timeServer);
  Serial.print("attente lecture ntp\n");
  delay(1000);
  if ( Udp.parsePacket() ) {
    Serial.print("parse paquet !\n");
    Udp.read(packetBuffer, NTP_PACKET_SIZE);
    Serial.print("paquet recu... lectur en cours !\n");
    unsigned long highWord = word(packetBuffer[40], packetBuffer[41]);
    unsigned long lowWord = word(packetBuffer[42], packetBuffer[43]);
    unsigned long secsSince1900 = highWord << 16 | lowWord;
    Serial.print("Seconds since Jan 1 1900 = " );
    Serial.println(secsSince1900);
    Serial.print("Unix time = ");
    const unsigned long seventyYears = 2208988800UL;
    unsigned long epoch = secsSince1900 - seventyYears;
    Serial.println(epoch);  
        epoch = (epoch + (Y*3600));
    Serial.print("il est ");      
    Serial.print((epoch % 86400L) / 3600);
    Serial.print(':');
    Heure = ((epoch % 86400L) / 3600);
    if ( ((epoch % 3600) / 60) < 10 ) {
      Serial.print('0');
    }
    Serial.print((epoch  % 3600) / 60);
    Serial.print(':');
    Min = ((epoch % 3600) / 60);
    if ( (epoch % 60) < 10 ) {
      Serial.print('0');
    }
    Serial.println(epoch % 60);
      S = (epoch % 60);
    Ethernet.begin(mac, ip);
    sprintf(msg, "bonjour:\nil est %d:%d:%d", Heure, Min, S);//votre message
    Serial.println("connecting ...");
    if (twitter.post(msg)) {

      int status = twitter.wait(&Serial);
      if (status == 200) {
        Serial.println("OK.");
      } else {
        Serial.print("failed : code ");
        Serial.println(status);
      }
    } else {
      Serial.println("connection failed.");
    }
  }
  Serial.print("End PGM !");
  delay(5000);
}

j’espère que cela pourra être utile a quelqu'un.
A la prochaine :)

raideurs

avatar
Membre
Membre
Pas mal

Contenu sponsorisé


Voir le sujet précédent Voir le sujet suivant Revenir en haut  Message [Page 1 sur 1]

Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum