Мне нужно сделать несколько довольно простых (по крайней мере, на поверхности) сбор и регистрацию данных.В удаленном месте (как, например, на другом континенте) будет несколько устройств RS-485 (наш пользовательский аппаратный продукт), использующих собственный протокол, плюс метеостанция (анемометр и флюгер).Для метеостанции у меня есть несколько вариантов: один выводит скорость ветра как частоту прямоугольной волны, а направление - как аналоговое напряжение;другой связывается через USB, используя HID-интерфейс.Машина, к которой подключаются эти устройства, должна собирать данные, регистрировать их и периодически передавать их через Интернет через соединение WiFi.Эта передача может быть как push, так и pull, то есть я могу периодически получать удаленный доступ к машине, чтобы получать последние данные, или машина может периодически выгружать данные на FTP-сайт или в веб-службу.Эта машина должна быть установлена на чердаке, поэтому она должна работать надежно, без присмотра за детьми, и она должна выживать в окружающей среде (температура, влажность, твари).
У меня есть приложение .NET, которое выполняет большую частьэто уже написано для .NET 4. Это интерактивное приложение с графическим интерфейсом, которое отображает измеренные данные и записывает их в файл.(У меня фактически есть две версии с небольшими отличиями - одна на основе Winforms, а другая WPF.)
У меня есть около недели, чтобы разработать решение для удаленной установки, включая определение и покупку любогонеобходимое оборудование, выполняя любое необходимое кодирование и заставляя его работать.Ох, и это должно быть дешево.(Например, было бы неплохо менее 500 долларов. Все, что больше 1000 долларов, будет непростым.)
Некоторые вещи, о которых я подумал или которые мне предложили:
- Используйте дешевый нетбук с интерфейсом RS-485-USB. Ну, возможно ... но я действительно не ожидаю, что это сохранится в окружающей среде.Например, жесткому диску не понравится сильная жара или холод.SSD - вариант, но это как минимум еще 100 долларов, и я до сих пор не уверен, что машина выдержит влажность и твари.Я мог бы положить его в корпус, но это еще один расход.В общем, я просто чувствую, что этот подход намного дороже и сложнее, чем он должен быть, и вряд ли будет таким надежным.
- Используйте небольшой одноплатный или промышленный компьютер. Как правило, они имеют повышенную прочность, и во многих есть порты RS-485 и встроенные сторожевые таймеры. Некоторые даже имеют цифровые входы / выходы общего назначения.До сих пор я не нашел ни одного с аналоговым входом напряжения, но они, вероятно, также существуют.Кроме того, они обычно используют карту памяти CompactFlash для хранения.Это похоже на правильный краткосрочный подход, но те, которые используют Windows, обычно используют какую-то встроенную версию (например, Windows CE или Windows XP Embedded) - что, вероятно, замечательно, за исключением того, что у меня нет опыта работы с ними, и я неЯ знаю, сколько потребуется работы, чтобы установить и запустить мое программное обеспечение.Кроме того, они, как правило, имеют процессоры с очень низким энергопотреблением, и я действительно не знаю, какая мощность мне нужна.Мое приложение прекрасно работает на современном рабочем столе;Я понятия не имею, будет ли он работать нормально на одном из этих младших процессоров.Некоторые из них заявляют, что они совместимы с .NET 2.0, но я ничего подобного не видел, поэтому, по крайней мере, мне, вероятно, придется перенести все обратно на .NET 2.0.О, и многие из этих компьютеров, которые я нашел до сих пор, довольно дороги.
- Использование беспроводного последовательного сервера . Эти вещи устанавливают последовательный порт в сеть.Вы можете подключиться к нему удаленно, и последовательный порт выглядит как локальный COM-порт, хотя он может быть расположен в любой точке мира.Это своего рода опция для RS-485.Это позволяет избежать необходимости удаленного администрирования ПК и заставить мое программное обеспечение работать удаленно.Однако меня беспокоит пропускная способность и надежность интернет-соединения с другой стороной мира, и это не помогает с устройством USB HID.(Хотя, если это окажется хорошим подходом, я мог бы найти версию этого устройства для RS-485.)
- Использовать регистратор данных. Это также, кажется, довольно дорого - особенно те, которые с WiFi - и я не нашел ни одного, который делает все, что мне нужно.В частности, высокая скорость передачи данных и собственный протокол наших устройств RS-485, по-видимому, являются препятствием.(Многие из них предназначены для работы с устройствами MODBUS.) Метеостанция на основе USB HID не будет работать с таким подходом, поэтому мне придется использовать ту, которая выводит частоту и напряжение.
- Используйте недорогое встроенное решение для микроконтроллера. В долгосрочной перспективе (например, в будущих проектах), это, вероятно, лучший подход.Это дешево, и я могу запрограммировать его на то, что мне нужно.Однако я не вижу, как я справлюсь с этим через неделю.Это полное переписывание моего программного обеспечения и освоение нового процессора и среды разработки.
У кого-нибудь есть опыт решения подобных проблем?Какой самый простой, дешевый, самый надежный способ, который вы можете придумать, чтобы осуществить это?На какие продукты или подходы я должен смотреть?