Я много думал о том, чтобы найти недорогое решение для подключения и управления Arduino через интернету без использования какого-либо Ethernet экрана или даже любого модуля WI-FI. После исследования я обнаружил, что единственный способ взаимодействия с микроконтроллером Arduino - это его последовательный порт (serial port), поэтому я создал простое оконное приложение C# в качестве хаба (HUB) для работы с последовательным портом для отправки и приема данных на плату.
Это HUB-приложение уже подключено к Интернету через ваш персональный компьютер и помогает отправлять и получать данные между микроконтроллером и облачной базой данных, помимо хранения самих данных в онлайн-базе MySQL.
Шаг 1. Тестируем Ардуино
Прежде всего мне пришлось начать с небольшого примера, который позволяет мне протестировать применение идеи. В этом примере я не подключил какой-либо датчик, я использовал только встроенный светодиод на Arduino, чтобы я мог включать и выключать светодиодный индикатор на выводе 13, отправив буквы «I» и «O» на последовательный порт.
int input; //Будет хранить входящий символ из последовательного порта. int led = 13; // Pin 13 // функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете питание int state; void setup() { // инициализировать цифровой вывод LED_BUILTIN в качестве выхода. Serial.begin(9600); pinMode(led, OUTPUT); // Установите контакт 13 как цифровой выход Serial.flush(); } // функция цикла работает снова и снова всегда void loop() { // String input = ""; // while (Serial.available() > 0) // { // input += (char) Serial.read(); // delay(5); // } state = digitalRead(led); if (Serial.available()) { input = Serial.read(); if (input == 'I') { //digitalWrite(led, !digitalRead(led)); digitalWrite(led, HIGH); Serial.println(1); delay(1000); } else if (input == 'O') { digitalWrite(led, LOW); Serial.println(0); delay(1000); } else if (input == 'T') { analogRead(led); Serial.println(0); delay(1000); } } }
Шаг 2. Создание онлайн-базы данных
Для хранения данных мы должны использовать "онлайн-посредник", который послужит мостом между платой Arduino и нашим HUB-приложением. Поэтому мы выбрали бесплатный хостинг Баз Данных, который будет работать в направлении сохранения данных, полученных от платы Arduino и отправленных команд на неё.
Самый простой выбор в нашем случае - базы данных MySQL, т.к. это бесплатно и обычно широко используется. В прикрепленном ниже архиве вы обнаружите, что он содержит только две таблицы. сначала нужно сохранить команды, затем отправить их на плату, а вторая таблица - получить выходы платы Arduino и восстановить для последующего использования.
В качестве хостинга можно выбрать сайт freemysqlhosting.net. Онлайн PHP MyAdmin можно найти по ссылке - phpmyadmin.co. Больше информации можно также найти на сайте phpmyadmin.net.
Шаг 3. Создание C# хаба
На этом шаге мы создадим хаб, который можно рассматривать как входной фильтр на ПК, чтобы сначала передать данные, проходящие через него, затем отправить их на плату Arduino через последовательный порт и наоборот.
Интерфейс этого хаба очень прост, он содержит только два текстовых поля, которые показывают статус каждой "транзакции", передает данные хаба (отправка и получение).
Шаг 4. Создаем web-интерфейс
Наконец-то мы дошли до самой крутой части урока.
Я создал веб-приложение на основе технологии Asp.net C# с адаптивным интерфейсом, которое может работать на любом устройстве, это веб-приложение имеет дело только с онлайн-базой данных и не знает, что на другой стороне есть какая-то плата.
С помощью этого интерфейса вы можете классифицировать свои электронные компоненты, подключенные к Arduino. Щелкая мышью, включая и выключая их, вы просто храните данные онлайн.
Пример
Нажав зеленую кнопку (ON) в разделе «Гостиная» (Hall - выше на рисунке), вы отправляете указание через Интернет включить свет в гостиной вашего дома. Таким образом, хаб, который может находиться на другой стороне мира, принимает указание и обрабатывает его с помощью электронной цепи основанной на Arduino в вашем доме.
protected void BtnHallOn_Click(object sender, EventArgs e) { AddTempOrders("I"); // sending letter "I" to Arduino to open Hall light }
Шаг 5. Скачиваем проект
Пришло время попробовать всё самому и сделать свой собственный проект.
Надеюсь, вам всё это пригодится. Желаю вам отличных проектов!