[TUTORIEL] CC3000

Forum dédié aux produits Adafruit

[TUTORIEL] CC3000

Message non lude Florian » Ven 29 Nov 2013 19:23

Bonjour,

Aujourd'hui, nous allons apprendre à utiliser le CC3000 Breakout de chez Adafruit à travers un montage avec une simple barrière infrarouge.

CC3000 Breakout
Image
Il s'agit d'un module wifi qui peut renvoyer et remonter différentes informations via des serveurs web. Il possède également un système de géolocalisation qui est fondé sur les raccords/nœuds réseaux de votre réseau personnel. Il fonctionne en SPI. Il dispose aussi d'un régulateur de tension 3.3V supportant un courant de pointe à 350 mA. Utilisable seulement avec l'Arduino Uno pour le moment. Ce breakout s'adresse aux utilisateurs avertis en programmation.
Il existe une librairie qui vous permet de débuter vos projets, elle contient des sketchs tels que la géolocalisation, l'envoi de tweet, la création de serveur web de discussion...

Librairie disponible ici, https://github.com/adafruit/Adafruit_CC3000_Library.
Produit disponible ici, Snootlab.


EXEMPLE D'UTILISATION

Nous allons réaliser une simple barrière infrarouge que nous allons combiner au CC3000 Breakout pour faire remonter l'information sur un serveur qui sera tout simplement le Telnet de votre ordinateur dans cet exemple.
De manière plus imagée; c'est comme si nous installions la barrière IR sur une fenêtre et qu'elle envoie un signal continu pour dire que tout est OK. Dès lors que quelqu'un franchit la fenêtre et donc la barrière aussi, on pourra le voir sur le serveur car à ce moment précis le signal aura été interrompu. Cela peut se rapprocher d'un détecteur d'intrusion si vous voulez.

- MATÉRIEL:

- Arduino Uno
- CC3000 Breakout
- Kit de communication IR

- SHEMA DU MONTAGE:
ShémaCC3000.png
ShémaCC3000.png (96.85 Kio) Vu 2760 fois

Normalement, si votre circuit est bien réalisé et une fois le sketch uploadé, la led rouge du circuit devrait être allumée quand la barrière IR n'est pas coupée. Dès lors que vous posez votre main ou un objet à l’intérieur de celle-ci la led rouge devrait être éteinte.
Pour que le montage fonctionne correctement, il faut lui rajouter une source d'alimentation externe par l'arduino Uno. Effectivement, la carte Uno branchée uniquement par USB à votre ordinateur ne fournira pas assez d'intensité pour nourrir à la fois la barrière infrarouge et le CC3000 Breakout. Je vous conseille d'utiliser une alimentation qui fournit du 9V et au minimum du 500 mA.


- CODE:
Code: Tout sélectionner
#include <Adafruit_CC3000.h>
#include <SPI.h>
#include <IRremote.h>


#define ADAFRUIT_CC3000_IRQ   3
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10

Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT,
                                         SPI_CLOCK_DIV2);

#define WLAN_SSID       "Mon réseau internet"           
#define WLAN_PASS       "Mon pass"
#define WLAN_SECURITY   WLAN_SEC_WPA2  // Securité peut être WLAN_SEC_UNSEC, WLAN_SEC_WEP, WLAN_SEC_WPA ou WLAN_SEC_WPA2

#define LISTEN_PORT           23    // Le port TCP pour la connection
#define IR_LED                8     // Pin digital de la LED infrarouge
#define IR_SENSOR             7     // Pin digital du capteur infrarouge

Adafruit_CC3000_Server barriereServer(LISTEN_PORT);    // Création d'un serveur CC3000

IRsend irsend;    // Déclaration de l'émetteur


void setup(void)
{
  pinMode(IR_LED, OUTPUT);
  pinMode(IR_SENSOR, INPUT);

 
  irsend.enableIROut(38);    // Sortie modulée à 38KHz
 
  Serial.begin(115200);
  Serial.println(F("Hello, CC3000!\n"));
 
  Serial.println(F("\nInitialisation..."));
 
  if (!cc3000.begin())
    {
      Serial.println(F("Ne pas lancer le programme! Vérifier vos connections!"));
      while(1);
    }
 
  if (!cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY))
    {
      Serial.println(F("Erreur!"));
      while(1);
    }
 
  Serial.println(F("Connecte!"));
  Serial.println(F("Requete DHCP"));
  while (!cc3000.checkDHCP())
    {
      delay(100);
    }
 
  while (!displayConnectionDetails())
    {
      delay(1000);
    }

  barriereServer.begin();    // Démarrage du barrièreServeur
 
  Serial.println(F("Ecoute pour connections..."));
}


void loop(void)
{
  Adafruit_CC3000_ClientRef client = barriereServer.available();
       
  irsend.mark(0);       // envoi du signal en continu
 
  boolean mesure1 = digitalRead(IR_SENSOR);     // Première mesure
  delay(5);
  boolean mesure2 = digitalRead(IR_SENSOR);     // Deuxième mesure
  boolean etat = mesure1 * mesure2;
 
  if (etat == HIGH)       // si les deux lectures voient une coupure
    {
      client.fastrprintln("R.A.S");
    }
   
  if (etat == LOW)            // sinon
    {
      client.fastrprintln("INTRUSION");
    }
   
  delay(10);
}


bool displayConnectionDetails(void)
{
  uint32_t ipAddress, netmask, gateway, dhcpserv, dnsserv;
 
  if(!cc3000.getIPAddress(&ipAddress, &netmask, &gateway, &dhcpserv, &dnsserv))
    {
      Serial.println(F("Incapable de recuperer l'adresse IP\r\n"));
      return false;
    }
 
  else
    {
      Serial.print(F("\nIP Addr: ")); cc3000.printIPdotsRev(ipAddress);
      Serial.print(F("\nNetmask: ")); cc3000.printIPdotsRev(netmask);
      Serial.print(F("\nGateway: ")); cc3000.printIPdotsRev(gateway);
      Serial.print(F("\nDHCPsrv: ")); cc3000.printIPdotsRev(dhcpserv);
      Serial.print(F("\nDNSserv: ")); cc3000.printIPdotsRev(dnsserv);
      Serial.println();
      return true;
    }
}


Attention, avant d'uploader le sketch sur votre Arduino pensez bien à rentrer votre SSID et votre PASS dans les déclarations en début de code sinon rien ne se produira.

Une fois le code téléversé, ouvrez votre moniteur série, vous devriez voir quelque chose comme ceci qui vous fournira l'adresse IP du Breakout CC3000 dont nous avons besoin pour nous connecter au serveur;
Moniteur-serie.png
Moniteur-serie.png (35.35 Kio) Vu 2760 fois


Une fois l'adresse IP obtenue et la connexion au réseau effectué, il faut lancer le serveur Telnet de votre ordinateur et le connecter avec l'adresse IP. Cela devrait ressembler à ceci normalement;
Telnet-connection.png
Telnet-connection.png (41.39 Kio) Vu 2760 fois


Une fois la connection établie appuyez sur la touche "Entrez" et vous devriez obtenir le message "R.A.S" qui correspond à la barrière IR quand rien ne la traverse.
Lorsque vous passez votre main ou un objet à travers le message "INTRUSION" devrait apparaître comme ceci;
Telnet.png
Telnet.png (43.7 Kio) Vu 2760 fois


Et voilà, vous savez maintenant comment faire pour créer une barrière Infrarouge et faire remonter ses données via un serveur web. Ce système peut être grandement amélioré en l'étendant à toutes les fenêtres de la maison par exemple. Mais peut aussi être utilisé pour savoir quand une personne rentre dans votre cour en rajoutant au circuit un système sonore pour signaler que la barrière à été franchie. Ou encore en faire un système d'alarme pour votre appartement... Que sais-je où peut vous emmener votre imagination?


Ce sera tout pour aujourd'hui, j'espère que le tutoriel vous aura plu.
Florian
 
Messages: 75
Inscription: Mer 24 Juil 2013 17:36

Retourner vers Adafruit

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron