Вычислитель количества теплоты ВКТ-7-02
- Войдите на сайт для отправки комментариев
Втр, 02/08/2011 - 11:49
Люди, очень нужна помощь...
Для начала коротко расскажу, что такое ВКТ-7
- ВКТ - Вычислитель количества теплоты
- 7 - модель
- 02 - версия
Небольшая штука, считывающая и хранящая в себе данны о потребленных "благах" цивилизации. (подробнее)
Есть задача, обратить к данному устройству и считать данные, передав последние через SMS.
Вторая часть задачи, отправить SMS, решена 100%
Есть проблемы с "первой".
И так, что имеется:
- Кабель RS-232
- Arduino Uno
Сделал все как сказано в документации:
- свой RX (pin2) на pin3 ВКТ
- свой TX (pin3) на pin2 ВКТ
- свой GND (pin5) на pin5 ВКТ
- "Плюсовой" заряд от доп. батареи (Крона 9В) на пин 8 ВКТ
И написал простенькую прогу:
#include <GSM_Shield.h> #define TIMEOUT 3000 /* 1 second */ #define MAX_RESPONSE_LENGTH 70 /* errors */ #define PORT_ERROR -5 //NewSoftSerial Serial(2, 3); //rx, tx GSM gsm; int error; int i; int debug = 0; void setup() { delay(10000); //startup delay gsm.TurnOn(19200); //module power on gsm.InitParam(PARAM_SET_1);//configure the module gsm.Echo(0); //enable AT echo //Serial.end(); char number[] = "+7**********"; char responce3[] = "Responce data is not available"; char responce[MAX_RESPONSE_LENGTH]; Serial.begin(9600); if(debug == 1) Serial.println("Start"); char query1[] = {0xff, 0xff, 0x00, 0x10, 0x3f, 0xff, 0x00, 0x00, 0xcc, 0x80, 0x00, 0x00, 0x00, 0x64, 0x54 }; i = put(query1, sizeof(query1)); i = get(responce); if( i > 0) { sendSMS(number, responce); } else { sendSMS(number, responce3); } } //*********************************************************************** // put(query_string, query_length ) // Function to send a query out to a modbus slave. //*********************************************************************** int put(char *query, size_t string_length) { int i; for (i = 0; i < string_length; i++) { Serial.print(query[i], BYTE); } delay(200); // without the following delay, the reading of the response might be wrong apparently return i; } // ********************************************************************** // get( array_for_data ) // // Function to monitor for the reply from the modbus slave. // This function blocks for timeout seconds if there is no reply. // // Returns: Total number of characters received. // *********************************************************************** int get(char *received_string) { int bytes_received = 0; int i = 0; /* wait for a response; this will block! */ while(Serial.available() == 0) { delay(1); if (i++ > TIMEOUT) return bytes_received; } while(Serial.available()) { received_string[bytes_received] = Serial.read(); bytes_received++; if (bytes_received >= MAX_RESPONSE_LENGTH) return PORT_ERROR; } return (bytes_received); } void sendSMS(char *num, char *text) { error=gsm.SendSMS(num, text); if(debug == 1) if(error) Serial.println("Unable to send SMS"); } void loop() { delay(2000); }
В результате, все время приходит "Responce data is not available"
Потом я попробовал поменять RX и TX местами, но все равно, ни чего не получилось.
Сейчас нашел пример на оф. сайте пример, но не думаю, что это поможет...
не вдаваясь в код, а Вы как ардуино подключаете к прибору, ведь у атмеги рс232 с уровнями ттл, а вкт полный рс232 тоесть +\-12в,надо как то уровни согласовать мах232 например.А терминалом, с компа обмен происходит нормально?
а что за GSM развязка?
А можно по-подробнее про TTL и "полный" RS232?...
Я не знаю как параллельно мониторить, что именно происходит на плате в момент работы с ВКТ. Поэтому юзаю СМС...
TTL уровни это 0-5V(0 и 1 логические соответственно) RS232 стандарт полный 0-12V - MAX232 микросхема нужна
мммм, понятно, т.е. вы хотите сказать, что "силы голоса моей платы" не достаточно для того, что бы услышал ВКТ? Ему надо "говорить по-громче"?...
Для согласования всего лишь надо купить недорогую микросхемку, дабы уберечь ардуино.
Это не так просто в нашем городе...
Нужна ведь плата именно под ардуино.
В смысле? Микросхему можно подпаять навесным монтажем
я вас не правильно понял, вы сказал MAX232, я подумал, что уже есть готовые решения для ардуино.
Но сейчас вижу, что max232 это просто микросхема, а все остальное нужно паять самому.
можно спалить контроллер в ардуино если подключить напрямую,если спаять самому сложно то можно купить тут например http://www.masterkit.ru/main/set.php?code_id=41081 , пришлют по почте, хотя там ничего сложного . Можно в магазинах сотовых телефонов попытаться найти шнур для телефонов старых для ком порта (не юсб) для сименс,ериксон..
зачем так сложно, ведь там всего то надо 5 конденсаторчиков и одна микросхема
блин, звонил в магазин радиодеталей, сказали под заказ и пару недель, а нужно быстро...
звоните в другой магазин;)
звоните в другой магазин;)
зачем так сложно, ведь там всего то надо 5 конденсаторчиков и одна микросхема
А как быть с пинами 8 и 7? Они нужны...
TTL уровни это 0-5V(0 и 1 логические соответственно) RS232 стандарт полный 0-12V - MAX232 микросхема нужна
"0"=-12в\ "1"= +12в, если быть точнее
TTL уровни это 0-5V(0 и 1 логические соответственно) RS232 стандарт полный 0-12V - MAX232 микросхема нужна
"0"=-12в\ "1"= +12в, если быть точнее
Также возникает вопрос, откуда взяться 12В если схема питается от 5В?!....
насколька я понял из протокола обмена нужен еще сигнал RTS, хотя проверьте терминалом с компа, есть еще хорошая прога rs232pro с ней удобно с компортом работать
http://www.aggsoft.ru/rs232-pinout-cable/pinout-and-signal.htm ТУТ ПРО RS232
Разговаривал с инжинерами в магазине, они говорят что MAX232 выдаст 0 - 0В и 1 - 5В
также и в компе, все что выше 0В = 1, а все прочие, т.к. 0В = 0.
Возникает вопрос: чем же отличается сигнал на выходе у Uno (pin0/pin1) если на выходе у MAX232 все тоже самое?!...
Что-то не вижу разницы о которой говорил Adessit
их мах232 сделает, в протоколе написано сигнал RTS ДОЛЖЕН ИМЕТЬ УРОВЕНЬ НЕ МЕНЬШЕ 9 В
их мах232 сделает, в протоколе написано сигнал RTS ДОЛЖЕН ИМЕТЬ УРОВЕНЬ НЕ МЕНЬШЕ 9 В
странно, откуда? Кондерами что ли?
с инженерами спорить не буду но без согласоания уровней работать не будет,еще и атмегу спалите,
в общем, я не понял какие пины за что отвечают в схеме от Adessit?
нашел похожую на нее www.hardware.zp.ua/mobile/data-cable-max232.html
поехал в магазин, думаю из 5в сделать 9 не получится, но вот из "0"-"сигнала" сделать "настоящий" 0 думаю получится, т.е. сделать что бы 0 был не 0В, а -5В.
попробуйте сначала установить связь с компьютером ,чтоб понять если ли обмен и на какую скорость сконфигурирова порт устройства
главное чтоб от прибора был не +12 а мах +5 чтоб контроллер не попалить,чтоб не мучаться сделайте сначала то что постом выше,чтобы быть уверенным что связь есть.
насколько я понял протокол обмена прибор не будет принимать команды пока на его 8 рине "cts" не появится "1" уровнем не менее +9в......
прошу прощения проглядел " "Плюсовой" заряд от доп. батареи (Крона 9В) на пин 8 ВКТ",так что тут все правильно.
кстати есть смысл проверить соответствующие порты ардуино , к которым подключали
теперь по коду:
сразу скажу я сам начинающий программист ,но из кода мне не понятно как организована связь с вкт,по каким пинам и по каким пинам gsm связь? Ведь вроде чтоб использовать любые пины для uart нужна "SoftSerial", а я у вас в коде ее не увидел, так же как и обявление какие пины используются как рх,тх для gsm и вкт,поясните пожалуйста для моего собственного развития :). Правильно ли я понимаю , что связь с gsm пин 4,5(по умолчанию) а связь с вкт пин 0,1 через стандартный UART?
теперь по коду:
сразу скажу я сам начинающий программист ,но из кода мне не понятно как организована связь с вкт,по каким пинам и по каким пинам gsm связь? Ведь вроде чтоб использовать любые пины для uart нужна "SoftSerial", а я у вас в коде ее не увидел, так же как и обявление какие пины используются как рх,тх для gsm и вкт,поясните пожалуйста для моего собственного развития :). Правильно ли я понимаю , что связь с gsm пин 4,5(по умолчанию) а связь с вкт пин 0,1 через стандартный UART?
Вы правы на счет пинов 0 и 1, это стандартные пины для стандартного класса Serial, есть также другие классы Serial1,2,3 которые смотрят на другие стандартные предустановленые, предоговоренные пины.
GSM шлюз, смотрит на пины 8 и 9, кажись, они выставлены в самой библиотеке :), поправит там.
кстати есть смысл проверить соответствующие порты ардуино , к которым подключали
Проблема №1 и самая главная - у меня ноут и как вам наверное стало понятно, ни о каких портах 90-х чечи даже не идет. Юзаю конвертер, посмотрим что получится...
обязательно отпишусь
В общем, купил монтажную плату, все соберу согласно схеме выше, посмотрим, а пока "скрестим пальцы".
Да, кстати, виделся с тем инжинером, он говорит что сомнивается что проблема в том, И не важно, +5 там или +9, пусть зоть +1 000 000. Может он и прав, но пока сигнал от платы отличается от сигнала который выдает комп, а это -5=0 и +5=1, нельзя быть уверенными, что max232 не поможет :)
включив в софте ардуино мониторинг компорта что нибудь видно? и откуда известно что вкт работает на скорости 9600?
я правильно понимаю что тх вкт подключен на пин 0 а рх вкт на пин1 ардуино,вы ведь для обмена с вкт используете Serial.begin(9600); а он умеет работать только с пинами 0,1 или я заблуждаюсь?
я правильно понимаю что тх вкт подключен на пин 0 а рх вкт на пин1 ардуино,вы ведь для обмена с вкт используете Serial.begin(9600); а он умеет работать только с пинами 0,1 или я заблуждаюсь?
:) Я уже писал выше, что у Uno есть стандартный класс, для работы со "стандартными" пинами 0 и 1.
Для согласования всего лишь надо 2 транзистора, 2 диода, 5 резистора - как в ArduinoSerial:
а можно и :
www.kmitl.ac.th/~kswichit/ap275/ap275.htm
или
www.scienceprog.com/alternatives-of-max232-in-low-budget-projects/
Собрал схему о которой писал ранее. Начал приходить ответ на строку инициализации.
Далее, по инструкции, нужно отправить команду о предстоящем чтении данных и вот тут облом, ответа нет.
Собрал схему о которой писал ранее. Начал приходить ответ на строку инициализации.
Далее, по инструкции, нужно отправить команду о предстоящем чтении данных и вот тут облом, ответа нет.
мне кажется что дело в стоповых битах, их по доке сказано =2
ща поставил
посмотрим что будет
Собрал схему о которой писал ранее. Начал приходить ответ на строку инициализации.
Далее, по инструкции, нужно отправить команду о предстоящем чтении данных и вот тут облом, ответа нет.
мне кажется что дело в стоповых битах, их по доке сказано =2
ща поставил
посмотрим что будет
не получилось, ответа нет, хотя должен быть... :(
4.7 Запрос «Начало сеанса связи»
Запрос предназначен для подготовки вычислителя к сеансу связи и определе-
ния значения «Версия сервера». Должен быть выполнен первым.
Начальный адрес = 0x3FFF;
Готовый вариант запроса:
0x00 0x10 0x3f 0xff 0x00 0x00 0xcc 0x80 0x00 0x00 0x00 0x64 0x54
то есть на эту строку ответ приходит?
да, далее, есть запрос на чтение, на него не приходит.
долго читал но я всё делаю проще КУПИЛ ШНУР АДАПТЕР ЗА 300 РУБЛИКОВ ТО ЕСТЬ ПЕРЕХОДНИК КОМУ КАК НРАВИТЬСЯ USB ---- COM ПОРТ и все данные архива через программу эйси 2 сохраняю в экселе НО эйси2 неможет изменить архив она только считывает его вот и возникла мысль и разумеется попрос К УМЕЛЬЦУ SNOOPY СПОМОШЬЮ КАКОЙ ПРОГИ ВОЗМОЖНО ПОВЛИЯТЬ НА ЗАПИСЬ АРХИВА то есть осуществить програмирование данных в память флеш самого прибора ЗАЩИТУ НА ЗАПИСЬ Я УЖЕ НАУЧИЛСЯ СНИМАТЬ а програмировать неумею МОЖЕТ УВАЖАЕМЫЙ SNOOPY Сстукнет мне в аську вот номер 362313995 я с 9.00 утром и до 18.00 на связи ВОЗМОЖНО С ОТСЫЛКОЙ СМС ВАМ ПОМОГУ есть мысли 30 лет всёж с электроникой на ты.
а что именно тебя интересует?
Теме БАПМ! Планирую фиксировать расход электричества и возможно измерять нагрузку на сеть, по моему есть аналогия расхода тепла и электричества, я прав?
Какой прибор использовать для снятия параметров эл. цепи в доме и передачи их на ардуину?
Спасибо.
Теме БАПМ! Планирую фиксировать расход электричества и возможно измерять нагрузку на сеть, по моему есть аналогия расхода тепла и электричества, я прав?
смотря о какой аналогии ты спрашиваешь. Тепло - это не электричество. Тут свои датчики и вычислители. Я юзаю Вычислитель количества теплоты ВКТ-7-02
Какой прибор использовать для снятия параметров эл. цепи в доме и передачи их на ардуину?
Спасибо.
Как сказано в теме - Вычислитель количества теплоты ВКТ-7-02
Могу предложить хорошую цена на ВКТ-5: http://energoteplolider.ru/teplovychisliteli/vkt-5.html
Сайт: energoteplolider.ru/teplovychisliteli/vkt-5.html
Для согласования всего лишь надо 2 транзистора, 2 диода, 5 резистора - как в ArduinoSerial:
а можно и :
тепловычислитель - ВКТ 7.
www.kmitl.ac.th/~kswichit/ap275/ap275.htm
или выбрать вычислитель ВКТ-7 от Теплоком:
http://www.teplocom.msk.ru/catalog/teplovich/vkt_7/
да, вы правы.
Очень интересно чем закончиласи история, удалось считывать данные с ВКТ-7 ардуиной?