اطلاعیه

Collapse
No announcement yet.

هنگ کردن سیستم بعد از یک روز

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    هنگ کردن سیستم بعد از یک روز

    سلام روزتون بخیر .
    دوستان بنده قصد دارم سیستمی بنویسم ، که در اون آردوینو در هر 2 ثانیه به سروری که خودم طراحی کردم درخواست GET میفرسته و با توجه به پیام های احتمالی که روی سرور هست در مورد یک رله یا ال ای دی تصمیم گیری میکنه ( روشن یا خاموش میشه ) . سیستم به صورت عادی خیلی خوب کار میکنه و در 4-5 ساعت ، خیلی خوب پیش میره . اما بعد از تقریبا یک روز که سیستم روشن هست ، دیگه درخواست GET به سرور ارسال نمیشه . در واقع با بررسی LOG سرورم دیدم که اصلا هیچ درخواست GET ــی بهش نمیرسه که بخواد پاسخ بده .
    سیستم سخت افزاریم از یه برد آردوینو اونو و یه ESP-1 + رله تشکیل شده . که البته بگم از هیچ مقاومت و خازنی استفاده نکردم بین این اتصالات ... نمیدونم چقدر تاثیر داره چون اطلاعات خودم در مورد سخت افزار تکمیل نیست و فارغ التحصیل نرم افزار هستم .
    کد های سیستم رو اینجا ببینید :
    کد:
    #include <ArduinoJson.h>
    #include <WiFiEsp.h>
    #include <WiFiEspClient.h>
    #include <SoftwareSerial.h>
    
    
    
    
    SoftwareSerial Serial1(10,11);
    
    
    char ssid[] = "AZaz";            // your network SSID (name)
    char pass[] = "Az8833394";        // your network password
    int status = WL_IDLE_STATUS;     // the Wifi radio's status
    int Relay = 13;
    
    
    char server[] = "azimi.ir";
    unsigned long lastConnectionTime = 0;         // last time you connected to the server, in milliseconds
    const unsigned long postingInterval = 1000L; // delay between updates, in milliseconds
    WiFiEspClient client;
    
    
    void setup() {
      // put your setup code here, to run once:
      
      pinMode(Relay, OUTPUT); 
      Serial.begin(115200);
      Serial1.begin(9600);
      WiFi.init(&Serial1);
      if (WiFi.status() == WL_NO_SHIELD) {
        Serial.println(F("WiFi shield not present"));
        // don't continue
        while (true);
      }
    
    
      while ( status != WL_CONNECTED) {
        Serial.print(F("Attempting to connect to WPA SSID: "));
        Serial.println(ssid);
        // Connect to WPA/WPA2 network
        status = WiFi.begin(ssid, pass);
      }
    
    
      Serial.println(F("You're connected to the network"));
    //  printWifiStatus();
    }
    
    
    void loop() {
      while (client.available()) {
      char c = client.read();
      char endOfHeaders[] = "\r\n\r\n";
      if (!client.find(endOfHeaders)) {
        Serial.println(F("Invalid response"));
        return;
      }
      const size_t capacity = JSON_OBJECT_SIZE(3) + JSON_ARRAY_SIZE(2) + 80;
      DynamicJsonDocument doc(capacity);
      DeserializationError error = deserializeJson(doc, client);
      if (error) {
        Serial.print(F("deserializeJson() failed: "));
        Serial.println(error.c_str());
        return;
      }
          int count = doc["counts"];
          if(count == 1){
            int relay = doc["message"];
            int cmd = doc["val"];
            digitalWrite(relay , cmd);
          }
    
    
    
    
      }
      if (millis() - lastConnectionTime > postingInterval) {
        httpRequest();
        
      }
    }
    
    
    void httpRequest()
    {
      
      Serial.println();
        
      // close any connection before send a new request
      // this will free the socket on the WiFi shield
      client.stop();
    
    
      // if there's a successful connection
      if (client.connect(server, 80)) {
        client.println(F("GET /check/ HTTP/1.1"));
        client.println(F("Host: azimi.ir"));
        client.println("Connection: close");
        client.println();
    
    
    
    
        // note the time that the connection was made
        lastConnectionTime = millis();
      }
      else {
        // if you couldn't make a connection
        Serial.println(F("Connection failed"));
      }
    }
    متخصصین عزیز ، چندتا سوال ؛
    1- به نظرتون چرا سیستم بعد از یک روز هنگ میکنه ؟ آردوینو اونو داره کم میاره یا ESP8266 ؟
    2- به نظرتون راه حل جایگزین چیه ؟ مشکل نرم افزاری هست ؟ کجای نرم افزار به نظرتون ایراد داره ؟
    3- اگر سخت افزاری هست ، چه ماژولی رو پیشنهاد میکنید که جایگزین ESP یا حتی خود آردوینو بشه ؟
    4- من این پروژه رو برای کار صنعتی میخوام .درواقع برای هوشمند سازی منازل هست و قرار هست سیستم هر روز روشن باشه و انتظار دارم حداقل 1-2 سال بتونه با این شرایط روشن بمونه و کار کنه ! آیا به نظرتون امکان پذیر هست ؟ یا اگر امکان پذیر نیست ، چه سخت افزاری رو پیشنهاد میکنید که کشش این زمان رو داشته باشه ؟
لطفا صبر کنید...
X