• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Pomoc w znalezieniu błędu w kodzie
#1
Witam

Próbuję zrobić czujnik pyłu do automatyki domowej na sensorze GP2Y1010AU0F Szarp. Sensor ma być połączony z modułem ESP8266 i działać z platforma Supla
Ktos już niby zrobił taki czujnik i napisał kod, ale jakoś nie chce mi on działać. 
Problem jest taki ze esp8266 na pinie D0, GPIO 5 nie wysyła impulsów sterujących dioda  w czujniku. Reszta działa poprawnie, czyli odczytuje wartosci z A0 i wysyła na serwer supla
Bardzo proszę o pomoc, gdzie jest błąd, co zmienić żeby na GPIO0 zaczeły pojawiać sie impulsy
Tutaj jest kod

#include <ESP8266WiFi.h>
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>

WiFiClient client;

const char* ssid     = "aaa";
const char* password = "bbb";


int measurePin = A0;
int ledPower = 5;

int samplingTime = 280;
int deltaTime = 40;
int sleepTime = 9680;

float voMeasured = 0;
float calcVoltage = 0;
float dustDensity = 0;



// DS18B20 Sensor read implementation
double get_temperature(int channelNumber, double last_val) {

   
   
   digitalWrite(ledPower,LOW); // power on the LED
   delayMicroseconds(samplingTime);

   voMeasured = analogRead(measurePin); // read the dust value
 
   delayMicroseconds(deltaTime);
   digitalWrite(ledPower,HIGH); // turn the LED off
   delayMicroseconds(sleepTime);

   // 0 - 5.0V mapped to 0 - 1023 integer values
   calcVoltage = voMeasured * (5.0 / 1024);
 
   dustDensity = (0.17 * calcVoltage - 0.1)*1000;
 
   Serial.print("Raw Signal Value (0-1023): ");
   Serial.print(voMeasured);
 
   Serial.print(" - Voltage: ");
   Serial.print(calcVoltage);
 
   Serial.print(" - Dust Density [ug/m3]: ");
   Serial.println(dustDensity);    
   
   
   
   
   
   
   
   double t = dustDensity;
   last_val = t;
   

   
   return t;  
}

void setup() {

 Serial.begin(115200);
 //sensors.begin();
 
 // Set temperature callback
 

char GUID[SUPLA_GUID_SIZE] = {,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX,0xXX};  // with GUID that you can retrieve from https://www.supla.org/arduino/get-guid
 uint8_t mac[6] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};

 SuplaDevice.addRelay(12, true);                
 SuplaDevice.addRelay(13, true);              
 SuplaDevice.addRelay(15, true);
 SuplaDevice.addDS18B20Thermometer();


 SuplaDevice.begin(GUID,              // Global Unique Identifier
                   mac,               // Ethernet MAC address
                   "svr3.supla.org",  // SUPLA server address
                   XXXX,                 // Location ID
                   "XXXX");               // Location Password
   
}

void loop() {
 
 if (WiFi.status() != WL_CONNECTED) // Jeżeli sieć WiFi nie jest podłączona, wywołaj procedurę łączenia
 {
   WiFi_up();
 }
 
 SuplaDevice.iterate();
 SuplaDevice.setTemperatureCallback(&get_temperature);
}


// Supla.org ethernet layer
   int supla_arduino_tcp_read(void *buf, int count) {
       _supla_int_t size = client.available();
     
       if ( size > 0 ) {
           if ( size > count ) size = count;
           return client.read((uint8_t *)buf, size);
       };
   
       return -1;
   };
   
   int supla_arduino_tcp_write(void *buf, int count) {
       return client.write((const uint8_t *)buf, count);
   };
   
   bool supla_arduino_svr_connect(const char *server, int port) {
         return client.connect(server, 2015);
   }
   
   bool supla_arduino_svr_connected(void) {
         return client.connected();
   }
   
   void supla_arduino_svr_disconnect(void) {
        client.stop();
   }
   
   void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {

      WiFi_up();
   }

SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
         SuplaDeviceCallbacks cb;
         
         cb.tcp_read = &supla_arduino_tcp_read;
         cb.tcp_write = &supla_arduino_tcp_write;
         cb.eth_setup = &supla_arduino_eth_setup;
         cb.svr_connected = &supla_arduino_svr_connected;
         cb.svr_connect = &supla_arduino_svr_connect;
         cb.svr_disconnect = &supla_arduino_svr_disconnect;
         cb.get_temperature = &get_temperature;
          cb.get_temperature_and_humidity = NULL;
         cb.get_rgbw_value = NULL;
         cb.set_rgbw_value = NULL;
         
         return cb;
}

void WiFi_up() // Procedura podłączenia do sieci WiFi
{
 Serial.print("Proba podlaczenia do sieci ");
 Serial.println(ssid);

 WiFi.begin(ssid, password); // Próba podłączenia do sieci


 for (int x = 60; x > 0; x--) // Powtarzaj pętlę maksymanie maksymalnie 30 sekund (ponieważ przy każdym elsie jest 0,5 sekundy zwłoki)
 {
   if (WiFi.status() == WL_CONNECTED) // Jezeli WiFi jest podłączone
   {
     break;                           // to zatrzymaj pętlę
   }
   else                                 // w przeciwnym wypadku
   {
     Serial.print(".");               // wystaw na serial .
     delay(500);                      // i czekaj 0,5 sekundy
   }

 }

 if (WiFi.status() == WL_CONNECTED) // Jeżeli połączenie z siecią zostało nawiązane, wyślij na serial jego parametry
 {
   Serial.println("");
   Serial.println("Polaczenie nawiazane");
   Serial.println("Adres IP: ");
   Serial.print(WiFi.localIP());
   Serial.print(" / ");
   Serial.println(WiFi.subnetMask());
   Serial.print("Brama: ");
   Serial.println(WiFi.gatewayIP());
   long rssi = WiFi.RSSI();
   Serial.print("Sila sygnalu (RSSI): ");
   Serial.print(rssi);
   Serial.println(" dBm");
 }
 else    // w przeciwnym wypadku poinformuj przez serial o nieudanej próbie
 {
   Serial.println("");
   Serial.println("Polaczenia nie udalo sie nawiazac");
 }
}
 
Odpowiedź
  


Wiadomości w tym wątku
Pomoc w znalezieniu błędu w kodzie - przez dawidd - 01-09-2018, 14:44
RE: Pomoc w znalezieniu błędu w kodzie - przez es2 - 01-09-2018, 19:58
RE: Pomoc w znalezieniu błędu w kodzie - przez es2 - 01-09-2018, 21:00
RE: Pomoc w znalezieniu błędu w kodzie - przez es2 - 02-09-2018, 12:41
RE: Pomoc w znalezieniu błędu w kodzie - przez es2 - 02-09-2018, 21:47

Skocz do:


Przeglądający: 2 gości