PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   Виджет для Remote steering wheel control (http://pccar.ru/showthread.php?t=21272)

Максимэ 19.03.2016 12:32

Цитата:

Сообщение от Serg-Zmuh (Сообщение 355514)
вот что выводит:
,но так как датчик дома один ,я попробовал перетыкивать на другие
пины ,10 и 11
тоже норм
Значит работает. Теперь настраивай таскер на вывод всех трех переменных &data1, &data2, &data3. У тебя вывод строки заканчивается '>' ?

Serg-Zmuh 20.03.2016 09:10

Цитата:

Сообщение от Максимэ (Сообщение 355519)
Значит работает. Теперь настраивай таскер на вывод всех трех переменных &data1, &data2, &data3. У тебя вывод строки заканчивается '>' ?

чет не выходит :no2:
не могу понять как теперь в таскере задачи построить
у меня сейчас так :
В таскере создаем профиль-событие-система-Intent Received. В поле действие пишем org.kangaroo.rim.action.ACTION_DATA_RECEIVE
Имя: %data2
До: %org_kangaroo_rim_device_extra_args
расчленить переменную %data2 #
zooper widget
#data2#=&data2

в таскере в vars пусто :dntknw:
в проге RemoteCntrl данные идут data:0#15.3#-2.2 то есть все принимается и обрабатывается - где я косячу ?

P.S. есть ньюанс - до этого я на столе подключал ардуину по usb а сейчас в машине там связь через блюпуп адаптер

Максимэ 20.03.2016 12:20

Расчленить переменную имя: %data разделитель: #
Zooper Widget Pro Variable Конфигурация #Tdata1# = %data1
Zooper Widget Pro Variable Конфигурация #Tdata2# = %data2
Zooper Widget Pro Variable Конфигурация #Tdata3# = %data3

Serg-Zmuh 20.03.2016 18:03

вроде дома на тестовой Ардуине пошло все,сам допёр :)
правда Zooper начинает тормозить когда виджеты начинаешь под себя разукрашивать.
когда один еще норм ,но когда добавляешь дальше - начинает прям в настройках лагать....,и соответственно считывание показаний тоже подтормаживает ,
но в тоже время если смотреть через Remote steering wheel control там показания не тормозят
это нормально ? не ужели может быть такая нагрузка из-за всего трех датчиков :dntknw:

Максимэ 21.03.2016 02:49

У меня тоже самое, когда начинаешь редактировать виджет он может сам шрифт поменять, местоположение на экране, тупит с выводом значений. Вот если бы хозяин топика с украины поделился бы исходниками своего виджета, через месяц появилось бы здесь столько всяких виджетов заточенных под конкретные случаи..

Serg-Zmuh 21.03.2016 03:46

я с ним переписывался года полтора назад ,щаз пороюсь вроде электронка у мня его была

Максимэ 21.03.2016 14:40

Если бы он хотел, он бы мне ответил в ЛС, а так просто игнорирует.
Так ты уже внедрил ардуино-градусник в авто?

Serg-Zmuh 21.03.2016 15:52

да в машине то планшет уже давно стоит и ардуино тоже
но у мня есть еще один Нексус для тестов и настроек :smile2:

вот только что все так же настроил в машине - не пашет че то :shok:
тут же цепляюсь по блютус к ардуино в машине другим планшетом все норм работает :wacko2:
ни фига пока понять не могу ,может с таскером там че ни так

еще разница в прошивках ,там 4.4 а тут 5.1 ,хотя обе PACman`а
надо попробовать кеш там почистить и еще таскер с зупером переставить
может поможет :acute:

Максимэ 21.03.2016 17:00

У меня стоит голова newsmy nu5002s на андроиде 4.4.2, есть большое желание прикрутить ардуино-градусник, физику собрал, с софтом разобрался, буду внедрять.

Serg-Zmuh 24.03.2016 13:25

Максимэ
только сегодня обратил внимание что виджеты автоматом на экране не обновляются :(
если зайти-выйти из Zooper то сразу происходит обновление
а потом опять тишина на экране
странно .... на втором планшете с LP -прошивкой еще не проверял
в зупере в настройках полазил ,там интервалы обновления от 30 мин.
и выше
может имеет значение как правильно прописано в зупере &data2 или %data2?
у меня прописано так :
ZW#Tdata2#
%data2

Максимэ 24.03.2016 14:42

%data2. Попробуй виджет от xxoma, название переменной data. Что у тебя выведется и как часто будет менятся температура?

Serg-Zmuh 25.03.2016 03:06

Цитата:

Сообщение от Максимэ (Сообщение 355967)
%data2. Попробуй виджет от xxoma, название переменной data. Что у тебя выведется и как часто будет менятся температура?

щаз попробую ,только что на работу пришел :whistle:
у нас щаз 9 утра

Serg-Zmuh 25.03.2016 03:15

вот сейчас проверяю сижу ....
на нексусе с LP прошивкой норм все работает !
правда тут по USB-коннекту и Ардуино-Леонардо ...

P.S. заметил разницу - вот где норм работает там подтормаживает Зупер
а на том где не считывается - там нет тормозов :)

Serg-Zmuh 25.03.2016 03:27

Цитата:

Сообщение от Максимэ (Сообщение 355967)
%data2. Попробуй виджет от xxoma, название переменной data. Что у тебя выведется и как часто будет менятся температура?

вывел через его виджет - результат:
все работает шустро ,выводит показания : 0#28.5#23.2

но это тут на столе ,а надо еще в машине проверить

сходил проверил ,результат:
с планшетом который в машине чет ни то ,надо перепрошить наверно

DelleTenebre 27.03.2016 17:30

Можете попробовать Serial Manager. На данный момент поддерживается связь только через USB, но виджеты могут использовать входящие данные и от Remote Inputs Manager.

Serg-Zmuh 29.03.2016 03:53

Цитата:

Сообщение от DelleTenebre (Сообщение 356306)
Можете попробовать Serial Manager. На данный момент поддерживается связь только через USB, но виджеты могут использовать входящие данные и от Remote Inputs Manager.

проверил - через Remote Inputs Manager работает :yes2:
а как на прямую настроить связь с USB подключеной Ардуиной ?
что надо прописать в настройках ключа и значение?

DelleTenebre 29.03.2016 10:40

Цитата:

а как на прямую настроить связь с USB подключеной Ардуиной ?
что надо прописать в настройках ключа и значение?
Для виджетов в этом нет необходимости.
Но если Вы хотите заменить Remote Inputs Manager, то:
1) Удалите Remote Inputs Manager или очистите запуск по умолчанию в настройках приложения.
2) При подключении Arduino появится запрос на разрешение доступа - одобрите Serial Manager.

Откройте программу, понажимайте кнопки, должны появляться Toast (всплывающие) сообщения. Если их нет, в настройках включите опцию DTR (для Leonardo обязательно) и переподключите Arduino.

Если сообщения появляются, то добавьте новую команду.

Например, если при нажатии на какую-либо кнопку, Arduino присылает ... ... , то:
* в поле Ключ пишем click
* в поле Значение пишем 125
* в поле Погрешноcть значения пишем 15
* и выберите желаемое действие.

Т.е. всё тоже самое что и в Remote Inputs Manager.

Для виджетов настраивать команду в программе не нужно. Например для температуры: arduino периодически присылает .. .. и т.д. Чтобы вывести данные, добавьте виджет, в настройках в поле ключ напишите temp, настройте остальное по вкусу.

Serg-Zmuh 30.03.2016 03:20

Цитата:

Сообщение от DelleTenebre (Сообщение 356585)
Для виджетов в этом нет необходимости.
Но если Вы хотите заменить Remote Inputs Manager, то:
1) Удалите Remote Inputs Manager или очистите запуск по умолчанию в настройках приложения.
2) При подключении Arduino появится запрос на разрешение доступа - одобрите Serial Manager.

Откройте программу, понажимайте кнопки, должны появляться Toast (всплывающие) сообщения. Если их нет, в настройках включите опцию DTR (для Leonardo обязательно) и переподключите Arduino.

Если сообщения появляются, то добавьте новую команду.

Например, если при нажатии на какую-либо кнопку, Arduino присылает ... ... , то:
* в поле Ключ пишем click
* в поле Значение пишем 125
* в поле Погрешноcть значения пишем 15
* и выберите желаемое действие.

Т.е. всё тоже самое что и в Remote Inputs Manager.

Для виджетов настраивать команду в программе не нужно. Например для температуры: arduino периодически присылает .. .. и т.д. Чтобы вывести данные, добавьте виджет, в настройках в поле ключ напишите temp, настройте остальное по вкусу.

с первыми двумя пунктами все понятно ,при подкл. выбрал Serial Manager.
понажимать кнопки - а какие кнопки понажимать ,на чем :dntknw:
уведомления выскакивать должны в окне программы или любом месте ?
включил опцию DTR (у мня Леонардо) ... по светодиодам Ардуины видно что обмен какой-то
происходит ,на экране тишина ....
использую скетч такой физически подключено три раздельных датчика ,serial port выводит


P.S. Видишь ли ,для чего я все это пробую и переделываю :acute:
хочу добиться четко работающих датчиков с ардуино ,а не так как
сейчас ,то блюпуп-адаптер не сконнектился ,а если в RemoteInputsManager
использовать подключение по USB то при отключении хаба происходит
перемонтирование Ардуино на другой ID и надо лезьть в настройки Remote Inputs Manager

если у твой Serial Manager лишен этого недостатка ,я у себя переделаю подключение по USB вместо Блюпупа :yes2:
так и надежней и синезуб для других целей освободится :yes4:

DelleTenebre 30.03.2016 05:57

Цитата:

понажимать кнопки - а какие кнопки понажимать ,на чем
Подключенные к ардуино, например на руле. Если не подключены, то не нажимать :)

Цитата:

уведомления выскакивать должны в окне программы или любом месте ?
В главном окне программы и при настройке команд.

Попробуйте, для чистоты экперимента, так:
Код:

void setup(){
  Serial.begin(9600);
  while (!Serial);
}
void loop() {
  Serial.print("");
  delay(2000);
}

Цитата:

сейчас ,то блюпуп-адаптер не сконнектился ,а если в RemoteInputsManager
использовать подключение по USB то при отключении хаба происходит
перемонтирование Ардуино на другой ID и надо лезьть в настройки Remote Inputs Manager
У меня точно такая же проблема была с RIM. Поэтому и написал свою программу.

Serg-Zmuh 30.03.2016 10:03

DelleTenebre

ну веригуд! ,все заработало ! :drink:
я залил предыдущий скетч

и все пошло даже без :
* в поле Ключ пишем click
* в поле Значение пишем 125
* в поле Погрешноcть значения пишем 15
* и выберите желаемое действие.

З.Ы. вопрос - а в таскере можно теперь так же по анологии как для RIM сделать :
В таскере создаем профиль-событие-система-Intent Received. В поле действие пишем org.kangaroo.rim.action.ACTION_DATA_RECEIVE. Идем назад на вопрос - выбираем или создаем новую задачу, например, arduino.
4. В задаче:
4.1 Нажимаем плюс-переменная-установить переменную:
Имя: %имя (любое имя)
До: %org_kangaroo_rim_device_extra_args


догадываюсь что использоваться должно значение : Action: kg.delletenebre.serial.NEW_DATA ,а что где и как ....
и на это мои познания заканчиваются :blush:

еще нубский вопрос можно : а для чего можно выбирать действия ? хотя догадываюсь - это наверно если кнопки
рулевые используются :)

DelleTenebre 30.03.2016 11:52

Цитата:

З.Ы. вопрос - а в таскере можно теперь так же по анологии как для RIM сделать :
В таскере создаем профиль-событие-система-Intent Received. В поле действие пишем org.kangaroo.rim.action.ACTION_DATA_RECEIVE. Идем назад на вопрос - выбираем или создаем новую задачу, например, arduino.
4. В задаче:
4.1 Нажимаем плюс-переменная-установить переменную:
Имя: %имя (любое имя)
До: %org_kangaroo_rim_device_extra_args
Вместо org.kangaroo.rim.action.ACTION_DATA_RECEIVE
kg.delletenebre.serial.NEW_DATA

Вместо %org_kangaroo_rim_device_extra_args
%value (в нижнем регистре)

Возможно, если где-то Вы писали %org_kangaroo_rim_device_extra_command
%key (в нижнем регистре)

Остальное должно работать без дополнительной настройки (если до этого работало с RIM). Хотя, мне кажется, что если всего 3-5 датчиков, то не будет ничего страшного если присылать их значения по отдельности, типа .. .. вместо . Но, хозяин - барин.

Цитата:

а для чего можно выбирать действия ? хотя догадываюсь - это наверно если кнопки
рулевые используются
Всё верно, например, настраиваем что при нажатии кнопки, ардуино посылает , в Serial Manager мы можем назначить определённое действие когда эта команда будет распознана.


Цитата:

и все пошло даже без :
* в поле Ключ пишем click
* в поле Значение пишем 125
* в поле Погрешноcть значения пишем 15
* и выберите желаемое действие.
Так и должно было случиться, я просто не знал, что у Вас только датчики. Кстати, выше я эту особенность для виджетов даже подчеркнул :)

Serg-Zmuh 30.03.2016 13:42

Вложений: 3
чет не выходит:sad2:
вот так в таскере сделал:
где косячу ? :blush:
ардуино выводит

DelleTenebre 30.03.2016 15:55

Serg-Zmuh, сейчас попробовал, я неправильно посоветовал:
вместо %VALUE надо %value
вместо %KEY надо %key

Serg-Zmuh 31.03.2016 05:00

да заработало !
копаем разбираемся дальше ....
а вот с этим скетчем :
Код HTML:

#include <OneWire.h>
#include <DallasTemperature.h>
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
tempa.requestTemperatures();
delay(40);
tempb.requestTemperatures();
delay(40);
tempc.requestTemperatures();
delay(40);
Serial.print("<data:");
if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.print("#");
if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.print("#");
if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">
");
delay(1000);
}

не выводит данные в Serial Manager`e
не понимаю как отловить ....
пробовал в строке команда писать: data ,#,data1,data2

извени мня ,наверно я надоел уже :blush:
вроде с этим скетчем работает, но как-то со сбоями
вот мне и неймется

P.S. но ! главное что твой SerialManager работает по USB и не отваливается не при каких отключениях - ГУД !
Респект Тебе :great:

Максимэ 31.03.2016 08:58

Тогда тебе надо в коде заменить на это:
Код:

Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");


Serg-Zmuh 31.03.2016 12:55

Вложений: 1
Цитата:

Сообщение от Максимэ (Сообщение 356893)
Тогда тебе надо в коде заменить на это:

поддставил этот код
Код:

#include
#include
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
tempa.requestTemperatures();
delay(40);
tempb.requestTemperatures();
delay(40);
tempc.requestTemperatures();
delay(40);
Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");

}

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




а как только подключаю к планшету ститывает только один-два раза при подключении ,а потом молчит
это видно в SerialManager один раз уведомление выскакивает и тишина
с задержками поиграся - не помогает (
в logcat показывает что серис стопится

DelleTenebre 31.03.2016 13:57

Вы в конец задержку добавляли?

Код:

void loop(void){
tempa.requestTemperatures();
delay(40);
tempb.requestTemperatures();
delay(40);
tempc.requestTemperatures();
delay(40);
Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(1000);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}

И как Вы хотите точно? Всё раздельно как в коде выше или в виде ?

Serg-Zmuh 31.03.2016 14:10

мне бы чтоб выводило на раздельные виджеты

Максимэ 31.03.2016 14:33

Я был уверен, что не забудешь delay поставить. Должна обязательно быть пауза в 1сек, а то система будет виснуть, поэтому пишем 1000мс. delay(40) можно убрать, т.к. их добавили delay(50) в serial.print.
Код:

tempa.requestTemperatures();
tempb.requestTemperatures();
tempc.requestTemperatures();


DelleTenebre 31.03.2016 17:35

Вложений: 2
Serg-Zmuh, только что попробовал следующее:
В качестве экономии (да и не зря же они OneWire) цепляем датчики последовательно. Картинки во вложении (резистор 4.7 кОм).

Затем скетч:
Код:

const int ONE_WIRE_BUS = 3,//Пин куда подключаем сигнальный провод
          ONE_WIRE_UPDATE_SEC = 1;//Время опроса датчиков в секундах

#include
#include

OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature temperatureSensors(&oneWire);

void setup() {
  Serial.begin(9600);
  while (!Serial) ;// Если Leonardo

  temperatureSensors.begin();
  temperatureSensors.setWaitForConversion(false);
}

void loop() {
  updateTemperature();
}

unsigned long lastTemperatureRequest = 0;
void updateTemperature() {
  if (millis() - lastTemperatureRequest >= ONE_WIRE_UPDATE_SEC * 1000) {
    temperatureSensors.requestTemperatures();
   
    for (int i = 0; i < temperatureSensors.getDeviceCount(); i++) {
      printTemperature(i);
    }

    lastTemperatureRequest = millis();
  }
}
void printTemperature(int index) {
  Serial.print("   Serial.print(temperatureSensors.getTempCByIndex(index), 1);
  Serial.println(">");
  delay(100);//Вот тут можно чуть больше или меньше
}

В результате, в зависимости от количества датчиков, Arduino будет выводить: .. .. .. .. и т.д.

На двух датчиках (больше у меня нет) точно работает.

Serg-Zmuh 31.03.2016 18:49

Ребят , ну видите ли - дуб я пока что в познании Ардуины и таскера :dntknw:
зато в электрике авто уже давно работаю :yes4:
так что сильно не пинайте

DelleTenebre
с твоими предпоследними поправками с скетче:
Код:

void loop(void){
tempa.requestTemperatures();
delay(40);
tempb.requestTemperatures();
delay(40);
tempc.requestTemperatures();
delay(40);
Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(1000);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}

с твоим виджитом все заработало четко !
убираешь датчик показывает ноль ,как и хотелось ...

по поводу применения палаллельной схемы ,да я знаю про такой способ ...
просто в машине смонтировано пока раздельно
а эксперименты провожу на другом плашете (тоже Нехус 2013)
с одним датчиком ,просто перетыкиваю его на нужные пины в ардуино

я тут просто еще параллельно через таскер захотел вывести
на Zooper или на KWGT
С Зупером вроде уже делал ,но там тормоза после добавления 3-х
виджетов :sad2:
а в KWGT я не разобрался .
да и в таскере затуп ...
что там и как правильно переменные составить :dntknw:
все ведь зависит от того какой скетч используется


ну а в будущем еще хотел вывести виджет на бортовое напряжения- чтоб за зарядку акумов мониторить
датчик давления масла мониторить
и чтоб по порогу сигнал шел с планшета ....
вот такие мечты-желания :secret:
Автомобиль то у мня без OBD , мехеника-дизель

Serg-Zmuh 31.03.2016 18:54

Цитата:

Сообщение от Максимэ (Сообщение 356940)
Я был уверен, что не забудешь delay поставить. Должна обязательно быть пауза в 1сек, а то система будет виснуть, поэтому пишем 1000мс. delay(40) можно убрать, т.к. их добавили delay(50) в serial.print.
Код:

tempa.requestTemperatures();
tempb.requestTemperatures();
tempc.requestTemperatures();


ну ты уже понял по ответу выше что я пока что ...мало шарю :secret:

Максимэ 01.04.2016 04:14

Параллельное соединение датчиков мне кажется будет удобнее использовать в машине.

drfresh88 01.04.2016 07:41

Всех приветствую!
Подскажите, пожалуйста, возможно ли выполнить следующее: Ардуина присылает данные или . И в зависимости от того, 0 или 1, на виджете рисуется та или иная картинка. Не хотелось бы использовать сцены таскера. Спасибо.

Serg-Zmuh 01.04.2016 11:27

ну подскажете пожалуста что и как в таскере прописать по этому скетчу:

Код:

void loop(void){
tempa.requestTemperatures();
delay(40);
tempb.requestTemperatures();
delay(40);
tempc.requestTemperatures();
delay(40);
Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
delay(50);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
delay(1000);//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
}

щаз у мну так :
профиль-событие-система-Intent Received :kg.delletenebre.serial.NEW_DATA
создал переменную :
%data до %value ,и %OutDoor - %value
тут вопрос :расчленять переменную надо ?
как дальше остальные значения добавить с других датчиков ?

DelleTenebre 01.04.2016 18:29

Вложений: 10
drfresh88, с картинками хз как работать без tasker'а.


Serg-Zmuh, итак, приходят следующие данные с Arduino:




Вы хотите их вывести, предположим, в Zooper Widget Pro.
Для этого в Tasker'е:
1.0 Создаём новый Profile: + > Event > System > Intent Received
1.1 В поле Action пишем kg.delletenebre.serial.NEW_DATA
1.2 Сохраняемся (нажимаем назад). При выборе задачи нажимаем на New Task
2.0 Задаём любое имя новой задачи, например, ZooperTemperatureData
2.1 Нажимаем + > Task > If
2.2 В поля Condition:
%key [Equals] InDoor
Сохраняем
2.3 Нажимаем + > Plugin > Zooper Widget Pro
2.4 Нажимаем на карандаш справа от Configuration
2.5 В поле ZW Переменная пишем indoortemp
В поле ZW Текст пишем %value
Нажимаем Сохранить
Сохраняемся (нажимаем назад)
2.6 Нажимаем + > Task > Else
2.7 Нажимаем + напротив If
2.8 В появившиеся поля пишем
%key [Equals] OutDoor
Сохраняем
2.9 Повторяем пункты 2.3, 2.4
2.10 В поле ZW Переменная пишем outdoortemp
В поле ZW Текст пишем %value
Нажимаем Сохранить
Сохраняемся (нажимаем назад)
2.11 Повторяем 2.6 - 2.10 для . Соответственно в условии: %key [Equals] Engine
В ZW Переменная пишем enginetemp
2.12 Нажимаем + > Task > End If
2.13 Нажимаем назад до тех пор пока не выйдем на главный экран Android'а

3.0 Добавляем виджет Zooper желаемого размера.
3.1 Выбираем желаемый вид (пустой или встроенный шаблон)
3.2 Заходим в Макет
3.3 Вверху нажимаем (+) ADD
3.4 Выбираем модуль Текст или Текст с форматированием
3.5 В категории Текст выбираем пункт Отредактировать вручную
3.6 В верхнем (почти неприметном) поле пишем #Tindoortemp#
Сохраняемся (кнопка OK)

3.? Для остальных аналогично с пункта 3.3, можно добавить в новые виджеты или для этого же виджета создать два модуля Текст или Текст с форматированием. Соответственно в пункте 3.6 будут значения #Toutdoortemp# и #Tenginetemp#

Максимэ 02.04.2016 10:51

Физика понятно, как собирается. С скетчами вроде разобрались. Теперь остается программная часть. Можно ли, как нибудь сделать виджет в виде визуального градусника "колбы" в Zooper и сделать автоматическое управление яркостью экрана в Tasker, с ардуины летят значения с фоторезистора 0-255?

DelleTenebre 02.04.2016 15:44

Цитата:

... и сделать автоматическое управление яркостью экрана в Tasker, с ардуины летят значения с фоторезистора 0-255?
Предположим приходят такие данные:
Создайте задачу; добавьте условие %key [equals] brightness; внутри условия Display -> Display Brightness, напротив поля Level нажмите на переплетающиеся стрелочки и введите %value.

Если пользуетесь RIM, то:
вместо %value надо %org_kangaroo_rim_device_extra_args
вместо %key надо %org_kangaroo_rim_device_extra_command

Но имейте в виду, сам Tasker предупреждает, что установив значение в 0, на некоторых устройствах полностью отключается подсветка экрана (хотя я такого эффекта не встречал).

Насчёт колбочки хз, надо подумать :hmm:

UPD. Попробуйте с колбочкой по этой инструкции в разделе ВКЛ, ВЫКЛ WiFi с помощью изображений?

Serg-Zmuh 04.04.2016 10:52

DelleTenebre

нифига ты расписал )
спасибо тебе! все настроил все работает ...
но... есть какой-то косяк где-то ....- это тормоза.
уже при настройке второго виджета в Зупере начались тормоза и зависоны именно в оболочке Зупера ,а на третьем виджете зупер стал останавливаться вообще :angry:
вылетела ошибка остановка trebuchet'a ...

Решил выяснить из-за чего так происходит :
тормоза появляются когда идет обмен с ардуиной , выдергиваешь USB -нет тормозов .
еще тормоза пропадают когда в таскере стопарю задачу,
и это у мня пока один датчик подключен..., с тремя наверно умрет , надо попробовать ....

Максимэ 04.04.2016 11:36

Попробуй залить этот скетч и посмотри будут ли тормоза
Код:

#include
#include
OneWire OW_tempa(9);
OneWire OW_tempb(10);
OneWire OW_tempc(11);
DallasTemperature tempa(&OW_tempa);
DallasTemperature tempb(&OW_tempb);
DallasTemperature tempc(&OW_tempc);
DeviceAddress tempaAddress, tempbAddress, tempcAddress;
void setup(void){
Serial.begin(9600);
tempa.begin();
tempb.begin();
tempc.begin();
}
void loop(void){
tempa.requestTemperatures();
delay(700);
Serial.print(" if ( !tempa.getAddress(tempaAddress,0)){
Serial.print("0");
}else{
Serial.print(tempa.getTempCByIndex(0),1);
}
Serial.println(">");
tempb.requestTemperatures();
delay(700);
Serial.print(" if ( !tempb.getAddress(tempbAddress,0)){
Serial.print("0");
}else{
Serial.print(tempb.getTempCByIndex(0),1);
}
Serial.println(">");
tempc.requestTemperatures();
delay(700);
Serial.print(" if ( !tempc.getAddress(tempcAddress,0)){
Serial.print("0");
}else{
Serial.print(tempc.getTempCByIndex(0),1);
}
Serial.println(">");
}



Часовой пояс GMT +4, время: 08:52.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot