Arduino + Ethernet Shield bị treo sau một thời gian


7

Tôi đang sử dụng một arduino để lấy một số dữ liệu từ một ứng dụng web. Vấn đề là sau một thời gian nó bắt đầu treo.

Để kiểm tra, tôi đã sử dụng EthernetClientbản phác thảo mặc định và sửa đổi một chút rằng cứ sau vài giây lại có một yêu cầu đến máy chủ để lấy thông tin. Để kiểm tra tôi không làm gì với dữ liệu tôi nhận được vì vậy nó chỉ gửi yêu cầu và lấy dữ liệu.

Để thử nghiệm tôi sử dụng Arduino Mega 2560 + Ethernet Shield và bo mạch Ethernet Arduino, tôi gặp vấn đề trên cả hai. Nó chạy từ 30 phút cho đến một ngày sau đó toàn bộ bảng đóng băng. Các bảng không bị nóng hoặc bất cứ điều gì khác.

Lúc đầu, đường may hoạt động nhưng sau một thời gian không xác định nó bắt đầu treo, có ai có ý tưởng gì có thể gây ra điều này không? Có lỗi trên arduino hoặc chip Ethernet W5100 không?

Bạn sẽ cố gắng khắc phục vấn đề này hoặc chuyển sang Raspberry Pi? Sử dụng bộ đếm thời gian theo dõi là không có tùy chọn vì nó không hoạt động trên Mega mà không thay đổi bộ tải khởi động.

CẬP NHẬT (Đã thêm mã vòng lặp của tôi, không có vấn đề về bộ nhớ, tôi đã kiểm tra trước đó):

void loop()
{
  if (client.available()) {
    char c = client.read();
    Serial.print(c);
  }

  if (!client.connected()) {
    Serial.println();
    Serial.println("disconnecting.");
    client.stop();

    delay(2000);

    if (client.connect(server, 80)) {
      Serial.println("connected");
      client.println("GET / HTTP/1.0");
      client.println();
    }
  }
}

Đây là tất cả những gì nó làm, trong thiết lập có mã khởi tạo mặc định từ bản phác thảo demo Ethernet.

CẬP NHẬT 2

Kiểm tra với Arduino Mega + WiFi Shield cũng bị treo.

Thử nghiệm với EtherMega 2560 từ freetronics hiện đang chạy được 2 ngày mà không có vấn đề gì tôi sẽ tiếp tục điều này trong tối thiểu. một tuần. Vấn đề duy nhất của tôi với bord này là giá cả. Đó là khoảng 100 đô la.


Bạn đã hết bộ nhớ? Sử dụng hết một số tài nguyên khác?
pjc50

Bạn thực sự cần phải đăng một chút mã cho một câu hỏi như thế này. Nó có thể là một cái gì đó đơn giản như bạn không xử lý ngắt kết nối / thời gian chờ chính xác từ máy chủ, điều này có thể giải thích tại sao nó xuất hiện hơi ngẫu nhiên.
PeterJ

Cập nhật bài viết của tôi. .
tbraun89

Vậy đầu ra của Màn hình nối tiếp là gì khi "treo"
Abbeyatcu

Nó in vĩnh viễn nội dung của một trang web, khi nó treo nó ở đâu đó trong tệp HTML. (Đã thêm kết quả thử nghiệm của tôi với các Arduinos khác như Cập nhật)
tbraun89

Câu trả lời:


0

CẬP NHẬT

Dưới đây là một thử nghiệm giải pháp làm việc với Mega (1.0.1) và Do (1.5.3)

Ok, nó có một lỗi trong các thư viện arduino 1.0.x khiến mô-đun ethernet bị treo sau một thời gian, khi bạn phải truy vấn vĩnh viễn một máy chủ.

Với Arduino Do (arduino 1.5.2), nó hiện đang chạy và cũng nhanh hơn nhiều! Vì vậy, maby của nó là lựa chọn tốt nhất để sử dụng điều này khi bạn phải xử lý nhiều lưu lượng mạng và nhiều hoạt động. Tôi sẽ liên hệ với các nhà phát triển arduino về vấn đề này và cập nhật câu trả lời này khi tôi có thêm thông tin về vấn đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.