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 EthernetClient
bả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.