Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Αυτος ειναι ο κωδικας που εχω
Θελω να στελνονται τα δεδομενα σε πραγματικο χρονο στην οθονη και στην σειριακη και ανα 10 λεπτα οι τρεχουσες μετρησεις στο web mysql database με get request 
Δουλευει μια χαρα η οθονη αλλα στο ιντερνετ εχω ενα θεμα
Ενω δουλευει κομπλε στην αρχη μετα απο απροσδιοριστο χρονικο διαστημα κολλαει η αποστολη δεδομενων 
τι μπορει να φταιει και τι μπορω να κανω για το αλλαξω

εψαξα στο ιντερνετ αλλα δεν εβγαλα καποια ακρη 

ελπιζω να βρω μια λυση !!

 

#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
#include <Adafruit_INA219.h>

#define DHTPIN 2
#define DHTTYPE DHT22
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
Adafruit_INA219 ina219;

DHT dht(DHTPIN, DHTTYPE);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {192, 168, 2, 3 }; //Enter the IP of ethernet shield
char serv[] = "*************.******"; ; //Enter the IPv4 address
EthernetClient cliente;

unsigned long time_1_screen = 0;
unsigned long time_2_screen = 0;
unsigned long INTERVAL_MESSAGE1 = 100;
unsigned long time_1_online = 0;
unsigned long time_2_online = 0;
unsigned long INTERVAL_MESSAGE2 = 60000;

const int chipSelect = 10;
void print_time(unsigned long time_millis);


void setup() {
  Serial.begin(115200); //setting the baud rate at 9600
  Ethernet.begin(mac, ip);
  dht.begin();
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  ina219.begin();
}

void loop() {
  
  unsigned long time_1_screen = millis();
  
  float shuntvoltage = ina219.getShuntVoltage_mV();
  float busvoltage = ina219.getBusVoltage_V();
  float current_mA = ina219.getCurrent_mA();
  float loadvoltage = busvoltage + (shuntvoltage / 1000);
  float hum = dht.readHumidity(); //Reading the humidity and storing in hum
  float temp = dht.readTemperature(); //Reading the temperature as Celsius and storing in temp
  float fah = dht.readTemperature(true); //reading the temperature in Fahrenheit
  float heat_index = dht.computeHeatIndex(fah, hum); //Reading the heat index in Fahrenheit
  float heat_indexC = dht.convertFtoC(heat_index); //Converting the heat index in Celsius


  if (time_1_screen - time_2_screen >= INTERVAL_MESSAGE1 ) {
    time_2_screen = time_1_screen;
    display.clearDisplay();
    display.setTextColor(WHITE);
    display.setTextSize(1);
    display.setCursor(0, 0);
    display.println(loadvoltage);
    display.setCursor(35, 0);
    display.println("V");
    display.setCursor(50, 0);
    display.println(current_mA);
    display.setCursor(95, 0);
    display.println("mA");
    display.setCursor(0, 10);
    display.println(loadvoltage * current_mA);
    display.setCursor(35, 10);
    display.println("mW");
    display.setCursor(0, 20);
    display.println(hum);
    display.setCursor(30, 20);
    display.println("  % ");
    display.setCursor(55, 10);
    display.println(temp);
    display.setCursor(80, 10);
    display.println(" cel ");
    display.display();
    //Printing the values on the serial monitor
    Serial.print("Temperature= ");
    Serial.println(temp);
    Serial.print("Humidity= ");
    Serial.println(hum);
    Serial.print("Heat Index= ");
    Serial.println(heat_indexC);
    Serial.print("voltage= ");
    Serial.println(loadvoltage);
    Serial.print("current_mA= ");
    Serial.println(current_mA);
    Serial.print("power= ");
    Serial.println(loadvoltage * current_mA);
  }
  if ( time_1_screen - time_2_online >=  INTERVAL_MESSAGE2 ) {
    time_2_online = time_1_screen ;
    if (cliente.connect(serv, 80)) { //Connecting at the IP address and port we saved before

      Serial.println("connected");
      cliente.print("GET http://**************.****/data.php?"); //Connecting and Sending values to database
      cliente.print("temperature=");
      cliente.print(temp);
      cliente.print("&humidity=");
      cliente.print(hum);
      cliente.print("&heat_index=");
      cliente.print(heat_indexC);
      cliente.print("&voltage=");
      cliente.print(loadvoltage);
      cliente.print("&current_mA=");
      cliente.print(current_mA);
      cliente.print("&power=");
      cliente.println(loadvoltage * current_mA);
      cliente.stop(); //Closing the connection
    }
    else {      // if you didn't get a connection to the server:
      Serial.println("connection failed");
    }
  }
 }


 

Στιγμιότυπο 2019-06-02, 8.39.57 μμ.png

test_me_othoni_online.ino

Δημοσ.

Το δοκιμασα μολις αυτο με την εντολη πριν την συνδεση και θα δω τα αποτελεσματα συντομα !!!
Ελπιζω να στρωσει !!!

 

2 ώρες πριν, tsofras είπε

αυτο με το ctime κτλ κτλ που ειναι στο τελος του αρθρου δεν καταλαβαινω πως να το χρησιμοποιησω στον δικο μου κωδικα

Δημοσ.
43 λεπτά πριν, pan07gaz94 είπε

Το δοκιμασα μολις αυτο με την εντολη πριν την συνδεση και θα δω τα αποτελεσματα συντομα !!!
Ελπιζω να στρωσει !!!

αυτο με το ctime κτλ κτλ που ειναι στο τελος του αρθρου δεν καταλαβαινω πως να το χρησιμοποιησω στον δικο μου κωδικα

Φαντάζομαι πρέπει να βάλεις την if που ανοίγει το connection μέσα στην while

Δημοσ.
12 ώρες πριν, tsofras είπε

Φαντάζομαι πρέπει να βάλεις την if που ανοίγει το connection μέσα στην while

@tsofras

εκανα καποιες προσπαθειες αλλα μαλλον δεν το πετυχαινω.
παιζει να με βοηθησεις εσυ ή εαν ξερεις καποιον που ξερει απο κωδικα arduino που θα μπορουσε να με βοηθησει με το θεμα αυτο  ;

Δημοσ.
5 λεπτά πριν, pan07gaz94 είπε

@tsofras

εκανα καποιες προσπαθειες αλλα μαλλον δεν το πετυχαινω.
παιζει να με βοηθησεις εσυ ή εαν ξερεις καποιον που ξερει απο κωδικα arduino που θα μπορουσε να με βοηθησει με το θεμα αυτο  ;

Το πρόβλημα με το arduino (τουλάχιστον όταν είχα ασχοληθεί εγώ γιατί δεν ασχολούμαι πλέον ) είναι ότι δεν είναι απλός κώδικας για να τον πάρω στο pc μου και να τον κάνω debug γιατί ουσιαστικά παίζει ρόλο η πλακέτα και τα components που έχεις δέσει επάνω της.

Οπότε δυστυχώς δεν μπορώ να σε βοηθήσω , εγώ όταν είχα πρόβλημα κοίταγα να καταγράφω όσα περισσότερα μπορούσα στην κονσόλα για να καταλάβ τι φταίει

Απλά το έψαξα λίγο εχθές απο περιέργεια και είπα να βοηθήσω , αλλά με ethernet controller δεν έχω παίξει ποτέ.

Δοκίμασες να βάλεις post στο forum του arduino?

Δημοσ.
1 ώρα πριν, tsofras είπε

Το πρόβλημα με το arduino (τουλάχιστον όταν είχα ασχοληθεί εγώ γιατί δεν ασχολούμαι πλέον ) είναι ότι δεν είναι απλός κώδικας για να τον πάρω στο pc μου και να τον κάνω debug γιατί ουσιαστικά παίζει ρόλο η πλακέτα και τα components που έχεις δέσει επάνω της.

Οπότε δυστυχώς δεν μπορώ να σε βοηθήσω , εγώ όταν είχα πρόβλημα κοίταγα να καταγράφω όσα περισσότερα μπορούσα στην κονσόλα για να καταλάβ τι φταίει

Απλά το έψαξα λίγο εχθές απο περιέργεια και είπα να βοηθήσω , αλλά με ethernet controller δεν έχω παίξει ποτέ.

Δοκίμασες να βάλεις post στο forum του arduino?

ναι ναι εβαλα εκει στο φορουμ την αντιστοιχη ερωτηση και αναμενω καποια απαντηση
ναι ειναι καπως πολυπλοκο ειναι η αληθεια
σαν δομη παντως ειναι που θελω βοηθεια
ελπιζω να βρω καποιον που θα μπορουσε να με βοηθησει
εστω μεσω remote να το δει ή μεσω τηλεφωνου καποια πληροφορια ας πουμε.....γιατι ειναι καπως ψαγμενο το θεματακι μου απο οτι καταλαβα
Σε ευχαριστω για την βοηθεια παρολα αυτα !
Υπαρχει στην ελλαδα καποιος που να μπορει να με εξυπηρετησει ; καταστημα ; ιδιωτης; 

Δημοσ.

Δλδ άλλαξες τον κώδικα που τσεκάρει αν είναι alive το connection? Βάλε μία τον νέο κώδικα όταν έχω χρόνο να ρίξω μια ματιά

Δημοσ.

εκανα πολλες αλλαγες και εχω μονο την τελευταια εκδοχη του που εβαλα στο void setup την συνδεση και μεσα στη void loop εβαλα το τσεκ
αλλα δεν μπορω να τον κανω να δουλεψει καν
δεν στελνει κθλ δεδομενα τωρα
ορίστε ο τροποποιημενος κωδικας help_with_my_code.ino

Δημοσ. (επεξεργασμένο)
4 ώρες πριν, pan07gaz94 είπε

εκανα πολλες αλλαγες και εχω μονο την τελευταια εκδοχη του που εβαλα στο void setup την συνδεση και μεσα στη void loop εβαλα το τσεκ
αλλα δεν μπορω να τον κανω να δουλεψει καν
δεν στελνει κθλ δεδομενα τωρα
ορίστε ο τροποποιημενος κωδικας help_with_my_code.ino

Σύμφωνα με αυτό https://www.arduino.cc/en/Reference/EthernetClient

Κάνεις connect στο setup()

και μετά ελέγχεις απλά αν είναι available.

Εσύ ξανακάνεις connect και μέσα στο loop() μήπως για αυτό σου κολλάει ? Γεμίζουν τα connections?

Θέλεις να δοκιμάσεις τον προηγούμενο κώδικα βάζοντας στο setup το  if (client.connect(server, 80)) 

και στο loop να αλλάξεις τον κώδικα να τσεκάρει αν είναι available?

Το έφτιαξα εγώ το παραπάνω στο αρχείο που σου ανέβασα

Σου ανεβάζω το αρχείο αλλά δεν ξέρω αν κάνει compile γιατί το γράφω σε text editor

test_me_othoni_online_refactored

Επεξ/σία από tsofras
Δημοσ.

Αγορινα 

ευχαριστώ για την εξυπηρέτηση αλλά δυστυχώς δεν εμφάνισε καν δεδομένα 

εκανε κομπλέ combine αλλά δεν είδα να στρώνει 

  • Sad 1
Δημοσ.
Στις 4/6/2019 στις 1:43 ΠΜ, pan07gaz94 είπε

Αγορινα 

ευχαριστώ για την εξυπηρέτηση αλλά δυστυχώς δεν εμφάνισε καν δεδομένα 

εκανε κομπλέ combine αλλά δεν είδα να στρώνει 

Θα σου πώ αύριο αν έχω χρόνο , αν είναι να κάνουμε κανα remote session να το δούμε παρέα

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...