Jump to content









Photo

School lock port 80

port 80 probleme

  • Please log in to reply
No replies to this topic

#1 Airsolid

Airsolid

    Newbie

  • Members
  • Pip
  • 1 posts

Posted 04 July 2016 - 10:53 AM

Hello !

 

I've built a simple project for conneced garden in french public school. I've tested this project at home and it's work. But at school they have lock the port 80 and i can't send data directly. I need to use a PROXY. 

 

My configuration : 

 

simple humidity sensor

UNO R3

wifi cc3000

 

My adrduino scketch : 

 

//_______________________________________________________________________________ Libraries
#include <Adafruit_CC3000.h>
#include <ccspi.h>
#include <SPI.h>
#include <string.h>
#include "utility/debug.h"
#include "DHT.h"
#include<stdlib.h>


//_______________________________________________________________________________ Définitions de broches de connexions pour la carte WIFI CC3000
#define ADAFRUIT_CC3000_IRQ   3
#define ADAFRUIT_CC3000_VBAT  5
#define ADAFRUIT_CC3000_CS    10



//_______________________________________________________________________________ Définitions de broches de connexions le capteur d'humiditée
int PinAnalogiqueHumidite = 0;                                                 // Broche Analogique de mesure d'humidité
int PinNumeriqueHumidite = 2;                                                  // Broche Numérique de mesure de l'humidité
int PinLed = 8;                                                                // LED témoin de seuilde de sécheresse

//_______________________________________________________________________________ Définition des variables pour le capteurs d'humiditée
int h;
String sec;
int secheresse;  //0 ou 1 si seuil atteint
int Niveau = 500;

//_______________________________________________________________________________ Creation de l'instance wifi CC3000
Adafruit_CC3000 cc3000 = Adafruit_CC3000(ADAFRUIT_CC3000_CS, ADAFRUIT_CC3000_IRQ, ADAFRUIT_CC3000_VBAT, SPI_CLOCK_DIV2); // you can change this clock speed
                                
//_______________________________________________________________________________ Parametèrs de connexion Wifi
#define WLAN_SSID  "AIRSOLID"
#define WLAN_PASS "terrehappy"


//_______________________________________________________________________________ Type de sécurité WIfi : possibilité >> WLAN_SEC_UNSEC,  WLAN_SEC_WEP,  WLAN_SEC_WPA  or  WLAN_SEC_WPA2
#define WLAN_SECURITY   WLAN_SEC_WPA2

//_______________________________________________________________________________ Paramèters du site Carriots.com
IPAddress ip(82,223,244,60);
#define WEBSITE  "api.carriots.com"
#define API_KEY "934707551471f61693d0352e385fe8e46cf9c4ac63e96f1f9c0f8c444bee18e6"
#define DEVICE  "Humidity@ounissa.ounissa"
#define DEVICE_1  "Allarm@ounissa.ounissa"


void setup(void)
{
  // Initialize
  Serial.begin(115200);                                                        // Demarage du port série
  
  pinMode(PinAnalogiqueHumidite, INPUT);                                       // pin A0 en entrée analogique
  pinMode(PinNumeriqueHumidite, INPUT);                                        // pin N2 en entrée numérique
  pinMode(PinLed, OUTPUT);                                                     // LED témoin

   Serial.println(F("\nInitialisation de la carte wifi..."));                  // Ipression pour le debugage
   
  if (!cc3000.begin())
  {
    Serial.println(F("La carte wifi ne démare pas ! Verifiez vos cablages.")); // Ipression pour le debugage
    while(1);
  }

 //______________________________________________________________________________ Connect to WiFi network
  cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY);
  Serial.println(F("Connexion au Wifi ok."));                                  // Ipression pour le debugage
  
  //_____________________________________________________________________________ Boucle de connection DHCP
  Serial.println(F("Requete DHCP ..."));                                       // Ipression pour le debugage
  
  while (!cc3000.checkDHCP())                                                  // Boucle de connection DHCP
  {
    delay(100);                                                                // délais de 0.1s
  }
}

void loop(void)
{
  h = 1024 - analogRead(PinAnalogiqueHumidite);                                // Lit la tension analogique
  secheresse = digitalRead(PinNumeriqueHumidite);                              // Lit la tension numérique
  
  Serial.println("Humiditee = "+String(h, DEC));                               // Ipression pour le debugage

  //_____________________________________________________________________________ Conditions pour la LED et le Mail
  if (secheresse == 1) 
    {
      digitalWrite(PinLed, HIGH);                                              // LED allumée
      sec = "true";                                                            // Sec envois Vrais
    }
    else {
    digitalWrite(PinLed, LOW);                                                 // LED étainte
    sec = "false";                                                             // Sec envois Faux
     }

  Serial.println("Secheresse = "+sec);                                         // Ipression pour le debugage
  
  sendStream();                                                                // exécution de la fonction d'envois des données
  delay(60000);                                                                // délais de 60s >> 1min
}


//_______________________________________________________________________________ FONCTION d'envois des données  (sendStream)
void sendStream(){
  
  Serial.println(F("Connexion au site ..."));                                  // Ipression pour le debugage
  
  Adafruit_CC3000_Client client;                
  
  if (client.connect(WEBSITE, 80)) {                                           // Si la connection est réusit
    
    Serial.println(F("Connexion au site ok."));                                // Ipression pour le debugage
    
    //___________________________________________________________________________ Construction de la séquences de donnée à envoyer
    String json = "{\"protocol\":\"v2\",\"device\":\""+String(DEVICE)+"\",\"at\":\"now\",\"data\":{\"HUMIDITE\":"+String(h, DEC)+"}}";
                                                                                              
    // __________________________________________________________________________ Envois de la requete HTTP pour les valeurs
    client.println("POST /streams HTTP/1.1");
    client.println("Host: api.carriots.com");
    client.println("Accept: application/json");
    client.println("User-Agent: Arduino-Carriots");
    client.println("Content-Type: application/json");
    client.print("carriots.apikey: ");
    client.println(API_KEY);
    client.print("Content-Length:");
    int thisLength = json.length();
    client.println(thisLength);
    client.println("Connection: close");
    client.println();

    client.println(json);

    Serial.println(F("Envois des donnees ok."));                               // Ipression pour le debugage

    }
  else {                                                                       // Si non ...
    
    Serial.println(F("Impossible de se connecter !!!"));                       // Ipression pour le debugage

    reconect();                                                                // Exécution de la fonction de reconexion
  }
   if (client.connect(WEBSITE, 80)) {                                           // Si la connection est réusit
    
    Serial.println(F("Connexion au site ok."));                                // Ipression pour le debugage
    //___________________________________________________________________________ Construction de la séquences de donnée à envoyer
    String json_1 = "{\"protocol\":\"v2\",\"device\":\""+String(DEVICE_1)+"\",\"at\":\"now\",\"data\":{\"SECHERESSE\":"+sec+"}}";
                                                                                              
    // __________________________________________________________________________ Envois de la requete HTTP pour le mail
    client.println("POST /streams HTTP/1.1");
    client.println("Host: api.carriots.com");
    client.println("Accept: application/json");
    client.println("User-Agent: Arduino-Carriots");
    client.println("Content-Type: application/json");
    client.print("carriots.apikey: ");
    client.println(API_KEY);
    client.print("Content-Length:");
    int thisLength_1 = json_1.length();
    client.println(thisLength_1);
    client.println("Connection: close");
    client.println();

    client.println(json_1);

    Serial.println(F("Envois du mail ok."));                                   // Ipression pour le debugage
  }
  else {                                                                       // Si non ...
    
    Serial.println(F("Impossible de se connecter !!!"));                       // Ipression pour le debugage

    reconect();                                                                // Exécution de la fonction de reconexion
  }

}

//_______________________________________________________________________________ FONCTION de reconnexion wifi  (reconect)
void reconect(){

  Serial.println(F("Tentatieve de reconnexion Wifi ..."));                     // Ipression pour le debugage

  //____________________________________________________________________________ Connect to WiFi network
  cc3000.connectToAP(WLAN_SSID, WLAN_PASS, WLAN_SECURITY);
  Serial.println(F("Connexion au Wifi ok."));                                  // Ipression pour le debugage
  
  //_____________________________________________________________________________ Boucle de connection DHCP
  Serial.println(F("Requete DHCP ..."));                                       // Ipression pour le debugage
  
  while (!cc3000.checkDHCP())                                                  // Boucle de connection DHCP
  {
    delay(100);                                                                // délais de 0.1s
  }

}

 

 

Do you know how can i use/configure PROXY inside this scetch or if I can change the port 80 to another ?

 

thank's for your work by advance.

 

Romain






1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users