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