pan07gaz94 Δημοσ. 2 Ιουνίου 2019 Δημοσ. 2 Ιουνίου 2019 Αυτος ειναι ο κωδικας που εχω Θελω να στελνονται τα δεδομενα σε πραγματικο χρονο στην οθονη και στην σειριακη και ανα 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("¤t_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"); } } } test_me_othoni_online.ino
tsofras Δημοσ. 2 Ιουνίου 2019 Δημοσ. 2 Ιουνίου 2019 Εδώ κοίταξες ? https://github.com/arduino-libraries/Ethernet/issues/15
pan07gaz94 Δημοσ. 2 Ιουνίου 2019 Μέλος Δημοσ. 2 Ιουνίου 2019 Το δοκιμασα μολις αυτο με την εντολη πριν την συνδεση και θα δω τα αποτελεσματα συντομα !!! Ελπιζω να στρωσει !!! 2 ώρες πριν, tsofras είπε Εδώ κοίταξες ? https://github.com/arduino-libraries/Ethernet/issues/15 αυτο με το ctime κτλ κτλ που ειναι στο τελος του αρθρου δεν καταλαβαινω πως να το χρησιμοποιησω στον δικο μου κωδικα
tsofras Δημοσ. 3 Ιουνίου 2019 Δημοσ. 3 Ιουνίου 2019 43 λεπτά πριν, pan07gaz94 είπε Το δοκιμασα μολις αυτο με την εντολη πριν την συνδεση και θα δω τα αποτελεσματα συντομα !!! Ελπιζω να στρωσει !!! αυτο με το ctime κτλ κτλ που ειναι στο τελος του αρθρου δεν καταλαβαινω πως να το χρησιμοποιησω στον δικο μου κωδικα Φαντάζομαι πρέπει να βάλεις την if που ανοίγει το connection μέσα στην while
pan07gaz94 Δημοσ. 3 Ιουνίου 2019 Μέλος Δημοσ. 3 Ιουνίου 2019 12 ώρες πριν, tsofras είπε Φαντάζομαι πρέπει να βάλεις την if που ανοίγει το connection μέσα στην while @tsofras εκανα καποιες προσπαθειες αλλα μαλλον δεν το πετυχαινω. παιζει να με βοηθησεις εσυ ή εαν ξερεις καποιον που ξερει απο κωδικα arduino που θα μπορουσε να με βοηθησει με το θεμα αυτο ;
tsofras Δημοσ. 3 Ιουνίου 2019 Δημοσ. 3 Ιουνίου 2019 5 λεπτά πριν, pan07gaz94 είπε @tsofras εκανα καποιες προσπαθειες αλλα μαλλον δεν το πετυχαινω. παιζει να με βοηθησεις εσυ ή εαν ξερεις καποιον που ξερει απο κωδικα arduino που θα μπορουσε να με βοηθησει με το θεμα αυτο ; Το πρόβλημα με το arduino (τουλάχιστον όταν είχα ασχοληθεί εγώ γιατί δεν ασχολούμαι πλέον ) είναι ότι δεν είναι απλός κώδικας για να τον πάρω στο pc μου και να τον κάνω debug γιατί ουσιαστικά παίζει ρόλο η πλακέτα και τα components που έχεις δέσει επάνω της. Οπότε δυστυχώς δεν μπορώ να σε βοηθήσω , εγώ όταν είχα πρόβλημα κοίταγα να καταγράφω όσα περισσότερα μπορούσα στην κονσόλα για να καταλάβ τι φταίει Απλά το έψαξα λίγο εχθές απο περιέργεια και είπα να βοηθήσω , αλλά με ethernet controller δεν έχω παίξει ποτέ. Δοκίμασες να βάλεις post στο forum του arduino?
pan07gaz94 Δημοσ. 3 Ιουνίου 2019 Μέλος Δημοσ. 3 Ιουνίου 2019 1 ώρα πριν, tsofras είπε Το πρόβλημα με το arduino (τουλάχιστον όταν είχα ασχοληθεί εγώ γιατί δεν ασχολούμαι πλέον ) είναι ότι δεν είναι απλός κώδικας για να τον πάρω στο pc μου και να τον κάνω debug γιατί ουσιαστικά παίζει ρόλο η πλακέτα και τα components που έχεις δέσει επάνω της. Οπότε δυστυχώς δεν μπορώ να σε βοηθήσω , εγώ όταν είχα πρόβλημα κοίταγα να καταγράφω όσα περισσότερα μπορούσα στην κονσόλα για να καταλάβ τι φταίει Απλά το έψαξα λίγο εχθές απο περιέργεια και είπα να βοηθήσω , αλλά με ethernet controller δεν έχω παίξει ποτέ. Δοκίμασες να βάλεις post στο forum του arduino? ναι ναι εβαλα εκει στο φορουμ την αντιστοιχη ερωτηση και αναμενω καποια απαντηση ναι ειναι καπως πολυπλοκο ειναι η αληθεια σαν δομη παντως ειναι που θελω βοηθεια ελπιζω να βρω καποιον που θα μπορουσε να με βοηθησει εστω μεσω remote να το δει ή μεσω τηλεφωνου καποια πληροφορια ας πουμε.....γιατι ειναι καπως ψαγμενο το θεματακι μου απο οτι καταλαβα Σε ευχαριστω για την βοηθεια παρολα αυτα ! Υπαρχει στην ελλαδα καποιος που να μπορει να με εξυπηρετησει ; καταστημα ; ιδιωτης;
tsofras Δημοσ. 3 Ιουνίου 2019 Δημοσ. 3 Ιουνίου 2019 Δλδ άλλαξες τον κώδικα που τσεκάρει αν είναι alive το connection? Βάλε μία τον νέο κώδικα όταν έχω χρόνο να ρίξω μια ματιά
pan07gaz94 Δημοσ. 3 Ιουνίου 2019 Μέλος Δημοσ. 3 Ιουνίου 2019 εκανα πολλες αλλαγες και εχω μονο την τελευταια εκδοχη του που εβαλα στο void setup την συνδεση και μεσα στη void loop εβαλα το τσεκ αλλα δεν μπορω να τον κανω να δουλεψει καν δεν στελνει κθλ δεδομενα τωρα ορίστε ο τροποποιημενος κωδικας help_with_my_code.ino
tsofras Δημοσ. 3 Ιουνίου 2019 Δημοσ. 3 Ιουνίου 2019 (επεξεργασμένο) 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 Επεξ/σία 3 Ιουνίου 2019 από tsofras
pan07gaz94 Δημοσ. 4 Ιουνίου 2019 Μέλος Δημοσ. 4 Ιουνίου 2019 Αγορινα ευχαριστώ για την εξυπηρέτηση αλλά δυστυχώς δεν εμφάνισε καν δεδομένα εκανε κομπλέ combine αλλά δεν είδα να στρώνει 1
tsofras Δημοσ. 5 Ιουνίου 2019 Δημοσ. 5 Ιουνίου 2019 Στις 4/6/2019 στις 1:43 ΠΜ, pan07gaz94 είπε Αγορινα ευχαριστώ για την εξυπηρέτηση αλλά δυστυχώς δεν εμφάνισε καν δεδομένα εκανε κομπλέ combine αλλά δεν είδα να στρώνει Θα σου πώ αύριο αν έχω χρόνο , αν είναι να κάνουμε κανα remote session να το δούμε παρέα
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα