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)

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, время: 19:12.

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