Это очень широкий вопрос, но я постараюсь дать несколько общих указаний, которые, надеюсь, будут полезны и другим, и вам (поэтому, пожалуйста, примите мои извинения, если я опубликую то, что вы уже знаете).
Если вы спрашиваете о считывании датчиков, это телеметрия, а не обязательно IoT. Я написал много проектов, где автономный ПК читает и отображает результаты измерений.
Если вы также хотите контролировать подключенное оборудование, это SCADA . Опять же, он не обязательно должен быть подключен к Интернету.
Вот схема SCADA, которая дает очень хорошее представление о IoT в целом. Обратите внимание, что ПЛК на схеме - это датчики и органы управления устройствами с поддержкой IoT.
Вы можете запросить аппаратные рекомендации для датчиков и контроллеров в Рекомендации по оборудованию .
И, как только у вас есть код, вы можете получить совет по проблемам в Stack Overflow .
Как правило, IoT для промышленности включает модель клиент / сервер, где клиент измеряет / контролирует аппаратные устройства и сообщает / получает команды от сервера. Сервер также обычно имеет базу данных и позволяет генерировать отчеты для управления и аварийных сигналов (и может дать команду удаленному оборудованию перенастроить / завершить работу на основе полученных данных).
Уф! Это вступление из пути. Теперь, чтобы запачкать наши руки.
Если вы хотите вникнуть в тонкость кодирования, посмотрите на сокеты и поймите разницу между TCP и UDP .
К счастью, десятилетия обернули большую часть хитрости в библиотеках, и вам, вероятно, лучше посоветовать почитать о сервисах RESTful. Существуют многочисленные бесплатные онлайн-учебники, курсы и видео, в зависимости от вашего языка; C - это традиционный встроенный язык, некоторые используют C ++, но, конечно, используют все, что вы знаете / чувствуете себя комфортно. Python очень популярен и прост в освоении, а также является рекомендуемым языком для Raspberry Pi.
Лично я предпочитаю скомпилированные языки для интерпретации, так как легче выявлять ошибки, но выбор остается за вами. Просто убедитесь, что он имеет хорошую поддержку для доступа к периферийным устройствам через USB, Ethernet и - все еще чрезвычайно распространенный в отрасли - последовательный порт.
Что касается серверной части, более 90% мировых серверов все еще работают на PHP. Тем не менее, использование NodeJS стало популярным, в основном от людей, которые пишут приложения для браузера, что в настоящее время может быть сделано только на JavaScript и не хочет изучать два языка. Я не рекомендую разрабатывать приложения IoT на основе браузера из-за ограничений доступа кода браузера к файловой системе и периферийным устройствам (хотя я бы упомянул, например, Cordova , если вы хотите разрабатывать для смартфонов).
Для начала я бы порекомендовал Raspberry Pi (кодирование на Python или C).
И я очень рекомендую сенсорную шапку. Это только пример, но это не дорого и содержит
- Гироскоп - датчик угловой скорости: акселерометр +/- 245/500 / 2000dps
- Датчик линейного ускорения: +/- 2/4/8/16 г
- Магнитометр - Магнитный датчик: +/- 4/8/12/16
- Барометр Гаусса: абсолютный диапазон 260 - 1260 гПа (точность зависит от температуры и давления, +/- 0,1 гПа при нормальных условиях)
- Датчик температуры (температура с точностью до +/- 2 ° C в диапазоне 0-65 ° C)
- Датчик относительной влажности (с точностью +/- 4,5% в диапазоне относительной влажности 20-80%, с точностью до +/- 0,5 ° С в диапазоне 15-40 ° С)
- 8x8 RGB светодиодный матричный дисплей
- Маленький 5-кнопочный джойстик
Это позволит вам собрать некоторые данные и сообщить о них на ваш сервер. Возможно, вы сможете найти бесплатный онлайн-сервис для получения и отображения ваших данных. Я видел некоторые на других сайтах SO, но забыть, где.
Но вы, вероятно, хотите написать свой собственный сервер. Я бы порекомендовал PHP как язык программирования. Для Linux вы хорошо обеспечены LAMP (Linux, Apache, Mysql и PHP). Для Windows вы должны установить WAMP (Windows… и т. Д.).
Вы можете выбрать. Я использовал XAMPP в промышленных приложениях более десяти лет. Вам не нужно использовать Mysql, Sqlite также может послужить (бестелесный плагин для моего собственного SO-вопроса 6 лет назад: « Sqlite или MySql? Как решить? »). Вам также нужно будет узнать о CRUD .
Основываясь на данных, полученных от клиента / датчика, вы можете захотеть отправить команду обратно, даже просто (отображение: «слишком высокая температура», что может означать закрытие клапана в промышленной системе).
Возможно, вы захотите поднять тревогу в режиме реального времени (отправьте электронное письмо, сообщив, что температура слишком высокая).
И вы также можете подумать о создании отчетов. Начните с таблицы, показывающей полученные данные. Рассмотрим график, или что-то более причудливое. Добавьте параметр экспорта в значения, разделенные запятыми (CSV), который позволяет конечному пользователю импортировать данные в электронную таблицу для дальнейшего анализа и манипулирования.
Если вы действительно решите , что вы хотите отчетность фантазии, вы можете сделать это в PHP, но, спустя несколько десятилетий , что я сейчас переехал делать большую часть на стороне клиента отчета вещи, в браузере.
Для общих принципов, получите обзор одностраничных приложений и AJAX . Лично я провел много исследований и выбрал в качестве языка программирования Google AngularJS (есть много учебных пособий и отличная поддержка), но вы можете свободно использовать простой JS, Jquery и т. Д., Как вам угодно.
Если вы тоже решите кодировать браузер, и вам также может понадобиться использовать NodeJ на стороне сервера, так что вам придется изучать только один новый язык программирования.
Слишком много вариантов? К сожалению :-(
Я надеюсь, что это дало вам несколько советов, но не стесняйтесь задавать вопросы и дайте мне знать, если здесь отсутствует какой-либо общий совет.