nooLite: MR1132. Песня и пляски. ч. 3. JS Терминальная.

Что же, пора провести несколько опытов над нашим модулем. Начнем с повторения результатов цитируемой ранее статьи: посмотрим через терминал, что можно добыть из MR1132.  Нам потребуется программа Terminal v1.9b и переходник PL2303, используемый нами ранее. Соединение MR1132 с ним мы уже освоили в прошлой заметке, а дополнительным бонусом является то, что ногу RST для нашего случая трогать вообще не нужно.

Запустив терминал, сделаем следующие настройки.

terminal001

Нажав кнопку «Connect» — соединимся с модулем. Заготовим следующий код:

clear_all_cell$03  // Очистить все ячейки. А мы что-то заполняли?
clear_one_cell_01$03 // Очистить ячейку 01. Потребуется!
bind_mode_cell_01$03  // Забиндить ячейку 01. С этого и начнем.
bind_mode_off$03 // Хватит биндить! Этим завершим.

Дальше объяснять долго, смотрим на картинку и повторяем. В данном случае биндим ячейку 4.
terminal003 Повторяем команду bind_mode_cell_ для всех имеющихся устройств после чего мониторе наблюдаем группы цифр:

terminal004

где 55 — стартовые байты, а АА — стоповые. Теперь у нас есть забинденный и проверенный MR1132.

Итак, мы убедились в работоспособности модуля, пора его присоединять… К Ардуино его уже присоединяли для посмотреть  в монитор порта, мы тоже в монитор порта смотрели. К ESP8266 я его присоединял — не присоединился по недостатку питания. Что же еще?

А вот что! Продолжим политику импортозамещения и поддержим отечественного производителя во второй раз (первый — nooLite)! Обратим взор на монстрячую плату IskraJS, что произвела на свет компания Амперка. Изучите, не спеша, ее характеристики — они впечатляют. Абсолютно убежден, что в каждом умном доме (где не проживают фанатичные сектанты от Ардуино) — must have. Потому как к ней можно прикрутить и оба UART модуля от nooLite, ESP8266, какую-нибудь пару 433 МГц приемник/передатчик и NRF24 одновременно!

У вас еще нет такой платы? Жаль! Тогда, может быть у вас есть в загашнике что-то из этого? Оно тоже сгодится, но в амперкиной плате есть Serial6, толерантный к сигналу 5 вольт.

В общем, не чего на меня дуться за то, что не присоединил MR1132 прямиком к Малине — все претензии к nooLite.

Итак, связываем:

iskrajsAndMP1132

На сайте производителя есть огромный справочный раздел как работать с IskraJS. Если его мало — поглядим и на первоисточник. Да, времени на это может  уйти некоторое количество, но пройдет оно с пользой. В результате, вы загрузите в Искру следующий код:

var cmd="";
var message = [];

Serial6.setup(9600);

Serial6.on('data', function (data) {
  print(data.charCodeAt(0)); // Напечатать пришедший код 
  cmd+=data; // Формировать стринг

  if(cmd == "OK\r\n") {  // Сравнить с ответом ОК
    print("Got OK!");   // Оповестить о сравнении
    cmd = "";   // Очистить стринг
  }
  var idx = cmd.indexOf("\xAA"); // Найти стоп-байт
  while (idx>=0) { // Как нашли
    print("cmd.length = "+cmd.length); // Напечатали длину стринга
    sendTo(cmd); // Отправили в переработку
    cmd = ""; // Очистили стринг
    idx = cmd.indexOf("\xAA"); // Обминусовали idx
  }
});

// Переработка принятой команды  
var sendTo = function(mydata) {  
  print("Got Data"); // Теперь знаем о команде
  var counter = 0; // Счетчик байтов
  var summ = 0; // Будет контрольная сумма
  while (counter < 11) {  // Пишем/считаем
    message[counter] = mydata.charCodeAt(counter);
    print("message["+counter+"] = "+message[counter]);
    if(counter < 9) {
      summ = summ + message[counter];
      print("summ = "+summ);
    }
    counter++;
  }
  
  summ = summ & 0xFF;  // Выделяем младший байт суммы 
  print("summ & 0xFF = "+summ); // Узнаем его
  if(message[9] == summ+1){ // Сравниваем с десятым байтом
    print("Summ is Good!"); // Радуемся
  }
};

/*  Эти команды можно/нужно отправлять в терминальном режиме из IDE 
(набираем в черном окошке руками), чтобы биндить MR1132. 
Пока в терминальном, потом будем через mqtt. 

Serial6.write("bind_mode_off\003\n"); // Выйти из биндинга
Serial6.write("bind_mode_cell_04\003\n"); // Забиндить ячейку 4
Serial6.write("clear_one_cell_04\003\n"); // Очистить ячейку 4

Это на память:
85  = 55 hex
170 = AA hex
*/

В результате, вам надо увидеть такое поведение терминала:

terminal005

Полагаю, на сегодня достаточно. В следующий раз будем программировать ESP8266, доделывать код IskraJS и отправлять данные на OpenHab.

Реклама

nooLite: MR1132. Песня и пляски. ч. 3. JS Терминальная.: Один комментарий

  1. хотя меня это и не касается, поскольку что толку — все равно ничего не понимаю в этом,
    но название этой части не нравится. Очень!
    то ли дело первая была — такая ах…

    Нравится

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

w

Connecting to %s