ПРОЕКТЫ:

Бесплатные точки доступа WiFi - Поиск людей через Интернет

Тестируем WiFi доступ в Интернет: мониторинг, безопасность…__SEO - поисковая оптимизация – ключ к успеху

Бесплатные телефонные звонки через Интернет__Социальные сети, как способ найти единомышленников

Безопасность при работе в Интернете__О Киеве в Интернете

Проект Arduino _Мобильный Интернет

Raspberry Pi  Unix, Linux. Ubuntu, Fedora...- это не так уж и страшно

Найти драйвер в Интернете   Поиск технической документации

Сценарии для Интернета   Поиск патентов в Интернете

Невидимый Интернет  Видимые и невидимые пиринговые сети

Ссылки:

Сайт обо всем: isearch.in.ua

 

Ділова розвідка в Інтернеті

Удаленное управление устройствами или дружим смартфон и Launchpad
Оценка пользователей: / 5
ПлохоОтлично 
Remote ControlСуществует достаточно много способов заставить работать смартфон и микроконтроллер в паре. Один из них рассматривается в этой статье.
Сама идея управления устройствами, или мониторинга нужных данных на расстоянии, достаточно интересная и креативная. Такие решения можно увидеть в проектах "умный дом" и подобных. Обычно, в нужный момент под рукой оказывается не все необходимое оборудование, поэтому наш проект будет использовать аппаратную составляющую по минимуму.
Прежде всего, нужно сделать проект системы. Ниже схематично показаны основные составные элементы и взаимодействие между ними:
Remote Control-1
Схема довольно проста и дает представление о масштабах проекта и ресурсах, которые нужно задействовать. Также сразу возникает ряд вопросов, например, каким образом "связать" микроконтроллер и ПК, или как читать команды из базы данных, чтобы быть в курсе, что нужно выполнять микроконтроллеру, и т.д., но давайте все постепенно.
Выделяем в схеме ключевые узлы и определяем их функции
Первый: это веб-сервер, он будет находиться удаленно, будет обрабатывать команды, которые мы передаем, и хранить их в базе данных. Воспользуемся джентльменским набором: PHP + MySQL. Команды, которые поступят из смартфона будут обработаны и записаны в базу данных, база данных и код обработки данных будет приведен ниже.
Второй:  локальный сервер или ПК: на нем находиться программный код, который будет делать запросы к базе данных и будет отправлять команды на наше устройство исполнения - Launchpad. Язык, на котором напишем программу, называется Processing - это открытый язык программирования, написанный на Java. Более подробно можно прочитать на сайте http://www.processing.org/.
Третий: это сам микроконтроллер (МК) - здесь остановимся немного подробнее. Рассмотрим видладжувальну плату LaunchPad MSP - EXP430G2 от компании Texas Instruments, которая активно рекламирует МК серии MSP430.
Плата и контроллер определенное время предлагались по весьма привлекательной цене и поэтому стали довольно популярными. Внешне плата похожа на Arduino, но понятно, что не может быть совместимой с ним.
Remote Control-2
Фотосравнение плат.
Remote Control-3
Из таблицы понятно, что микроконтроллеры компании TI не такие "прокачанные" в плане периферии, при сравнении с AVR Arduino, но по энергосбережению MSP430 является лидером среди МК.
Среда программирования Launchpad - Energia, оно не является основным программным продуктом для данных МК, но довольно популярная среди разработчиков, так как очень напоминает Android IDE.
Четвертый: смартфон - в нашем случае под управлением Android OS. Здесь ничего особенного от смартфона не понадобится. Разрабатывать интерфейс управления будем с помощью HTML 5, CSS 3, JavaScrip и библиотеки JQuery: все это забросим в так называемый "тостер" - PhoneGap и вуаля - имеем установочный пакет, с нашим интерфейсом управления для нужной нам операционной системы.
С планом действий вроде все понятно, осталось разобрать программный код и показать систему в действии. Забегая вперед отмечу, что весь необходимый код можно загрузить с моего репозитория на GitHub : github.com/flash-man/RDM. На самом деле, все очень просто, но давайте рассмотрим код , чтобы не возникало лишних вопросов.
sketch.ino - необходим для работы Launchpad, находится в папке: RDM/arduino_launchpad/launchpad/sketch/. Открывается и загружается на плату контроллера с помощью Energia.
Инициализирует работу с светодиодами и последовательным портом:
  void setup()
{
  Serial.begin(9600);
  pinMode(RED_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  digitalWrite(RED_LED, LOW);
  digitalWrite(GREEN_LED, LOW);  
}
Проверяем данные, которые пришли через последовательный порт, и выбираем соответствующее действие:
void loop(){
  if (Serial.available()){
       cmd = Serial.read() - '0';
       Serial.print(cmd); }
     if (cmd == 0) {
          digitalWrite(RED_LED, LOW);}
     if (cmd == 1) {
    …
    ...
}
launchpad.pde - делает запросы к базе данных и посылает соответствующие команды в последовательный порт, запускается в среде Processing, находится в папке: RDM/processing_scetch/
Подключаем необходимые библиотеки:
import processing.serial.*;
import de.bezier.data.sql.*;
Serial new_my_port;
MySQL myDBconection;
Инициализирует работу с последовательным портом, базой данных и объявляем переменные (name_of_user, input_pass, name_of_database, hosting должны содержать данные о пользователе, название и адрес базы данных):
void setup()
{
  new_my_port = new Serial(this, Serial.list()[0], 9600);
  String name_of_user = "my_user_name";
  String input_pass = "password_for_my_user";
  String name_of_database = "my_database_name";
  myDBconection = new MySQL( this, "hosting-name", name_of_database, name_of_user, input_pass );
  myDBconection.connect();
}
Serial.list()[0] - используется для связи с отладочную платой, значение в квадратных скобках "0" и оно зависит от настроек виртуальных COM-портов. Это значение можно просмотреть в среде Energia, Tools > Serial Monitor.
Далее, главный цикл работы программы: здесь выполняются запросы к базе данных и отправка прочитанных команд в последовательный порт:
void draw()
{    
  myDBconection.query( "SELECT * FROM comand WHERE id = (SELECT max(id) FROM comand)" );
  while (myDBconection.next())
   {
    int a = myDBconection.getInt("action");
    int c = myDBconection.getInt("comand_handler");    
    if (a == 0) new_my_port.write('0');
    if (a == 1) new_my_port.write('1');
    …
    …
}
В запросе к базе используется вложенный запрос для выбора последней отправленной команды.
submit.php - сюда "посылать" команды со смартфона и отсюда будем записывать их в базу - находится в RDM/server_and_db/. Здесь же находится файл comand.sql - им можно создать нужную нам таблицу с соответствующими полями. Также помните, что доступ к базе данных должен быть открыт для разных IP-адресов. Я думаю комментировать содержимое этих файлов не нужно - там все слишком просто. Лучше рассмотрим нашу программу для смартфона.
index.html - да, именно этот файл будет нашей программой для смартфона. Содержание довольно простое, внимание может привлечь часть, где мы отправляем данные через Ajax: данный функционал необходим для того, чтобы неперезавантажуваты страницу, когда работать в режиме программы.
Что же здесь происходит? Сначала ищем элемент с id="comand_form" - это наша форма, после отправки которой срабатывает функция, отвечающая за сбор данных из элементов формы, подготовки для отправки, и само отправление. В переменной m_action, myhost меняем на адрес сайта, на котором находится скрипт обработки формы.
</script>
<script type="text/javascript">
    $('#comand_form').submit(function(e){
        e.preventDefault();
        var m_method=$(this).attr('method');
        var m_action='http://myhost/submit.php';
        var m_data=$(this).serialize();
        $.ajax({
            type: m_method,
            url: m_action,
            data: m_data,
        success: function(result){
            $("#result").empty();
            $("#result").append(html);
        }
        });
        });
</script>
После создания файла создаем его zip-архив. Заходите на веб-ресурс, предназначенный для создания программных пакетов под разные платформы и отгружаем наш архив. Данный ресурс можно использовать бесплатно для создания одной программы. Нам больше и не нужно. После создания необходимого "​​билда", появляется QR-код, с помощью которого можно легко загрузить установочный пакет на смартфон. После установки увидим следующее:
Remote Control-4
Вот и все. Осталось продемонстрировать в действии этот мини проект:
Павел Лозинский, магистрант НТУУ «КПИ»
 
>
КнигаНовости Практика поискаПартнерыО нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting
Google Analytics Alternative