Привет всем! Для проекта использую WiFi Shield. При включении устройства происходит подсоединение к домашней сети WiFi, соответственно "Ардуинка" находится в сети как сервер. По запросу клиента (Raspberry Pi по крону раз в 30 минут) отдает показания с датчиков, которые кладутся в БД... Проблема в том, что время от времени соединение WiFi шилда отлетает..все функционирует, но сервер (Arduino) не отвечает клиенту в нужный момент. И больше вообще не отвечает, пока не перезагрузишь Ардуинку... Каким образом можно производить переподсоединение к сети WiFi шилда? Я дошел до того, что хотел при отсутствии соединения перезагружать плату : Код (Text): // Раз в 5 минут прогоняется процедура WiFiCheck if (WiFiCheckCount == 3000) {WiFiCheck(); WiFiCheckCount=0;} void WiFiCheck() { if ( status != WL_CONNECTED ) { resetFunc(); } } void(* resetFunc) (void) = 0; Но когда на WiFi шилде горит светодиод Error, перезагрузки не происходит. Вроде как соединение есть, но шилд не отвечает всеравно. Как его (WiFi Shield) перезапускать или переподсоединять тогда? У кого какие идеи?
Возможно, нет пользователей данной платы и Вы являетесь первопроходцем, или они сейчас не на сайте. Начну, с вариантов, которые рассматривал бы сам. Надеюсь потом подтянутся более опытные 1. Изучить библиотеку. 2. Если это не поможет, можно попробовать переписать библиотеку, если сам чип поддерживает такие возможности. http://arduino.cc/en/Main/ArduinoWiFiShield - сам модуль http://arduino.cc/en/Guide/ArduinoWiFiShield - гайд http://arduino.cc/en/Hacking/WiFiShield32USerial - команды сериал порта http://pub.ucpros.com/download/1451_hdg204_datasheet_pa4.pdf?osCsid=mcrh728ovgeg6ub4ka6mccrso5s - чип 3. Если в прошивке нет такой возможности, но есть в чипе, посмотреть последние прошивки, он позволяет заливать прошивки, ведь там настоящий AVR. О том как это сделать описано тут http://arduino.cc/en/Hacking/WiFiShieldFirmwareUpgrading. А вот с переподключением, не совсем понятно, завтра постараюсь глянуть. UPD. Было немного времени, понял, что проблема не только у Вас, на форумах, часто пишут о них, но решений пока не нашел.
Не за что, тут все помогают, по возможностям. Да и самому любопытен данный шилд. Но с начало, попробуйте посмотреть с помощью отладки по сериал порту (ссылка чуть выше - команды сериал порта), и файл отладки debug.h, он загружается автоматом, нужно просто выставить нужные константы, к примеру _DEBUG_, о том, что выставлять можно бегло увидеть в файле Arduino\libraries\WiFi\utility\debug.h. Поищите информацию, на http://forum.arduino.cc/, по этому шилду. К примеру, любопытная информация http://forum.arduino.cc/index.php?topic=128424.0. Так же у некоторых вообще не работает с версиями IDE выше 1.0.3 (с каким-то номером прошивки) и еще много "интересного" можно узнать. Переподключение должно работать по простой схеме, примерно так wifi.disconnect(), затем wifi.begin(). Но если нет статуса, то все бесполезно. Главное, чтобы прошивка была правильная - работала корректно и отправляла по SPI верную информацию, остальное можно подправить/переписать вопрос времени.