Блок для GPRS модулей, связь по MQTT

Создаем свой блок. Вопросы, помощь знатоков.
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

[ref=#aa0000]Anydy[/ref], и по моему когда прошёл коннект к сети, потом к интернету, потом пытается на народмон - не получилось - начинает заново все. зачем ? наверное стоит подолбиться несколько раз на народмон , а не рестартить сразу модем установивший соединение?
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Блок для GPRS модулей, связь по MQTT

Сообщение Sancho »

[ref=#aa0000]Anydy[/ref], Надо подправить код в секции loop -
там скобки не правильно, из-за которых алгоритм не так, как надо, со временем переконекта...
Сейчас:

Код: Выделить всё

if (mqtt.connected()) {
    mqtt.loop();  
    }   
else {     
    // Reconnect every 10 seconds
    unsigned long t = millis();
    if (t - lastReconnectAttempt > 10000L) {
		lastReconnectAttempt = t;         
    }
    if (mqttConnect()) {
        lastReconnectAttempt = 0;     
     }
	else if (!modem.gprsConnect(apn, user, pass)) {
		while (true);
	}
}
А если изменить:

Код: Выделить всё

if (mqtt.connected()) {
    mqtt.loop();  
    }   
else {     
    // Reconnect every 10 seconds
    unsigned long t = millis();
    if (t - lastReconnectAttempt > 10000L) {
		lastReconnectAttempt = t;         
		if (mqttConnect()) {
			lastReconnectAttempt = 0;     
		}
	}
	else if (!modem.gprsConnect(apn, user, pass)) {
		while (true);
	}
}
Может и не прав. Но по моему так правильнее.
Вот это -
else if (!modem.gprsConnect(apn, user, pass)) {
while (true);
вообще не понимаю, пока.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Timur14
Рядовой
Сообщения: 4
Зарегистрирован: 25 сен 2019, 05:47
Имя: Тимур

Блок для GPRS модулей, связь по MQTT

Сообщение Timur14 »

Все получилось на скорости 115200. Я инфу поудолял со счета лишнюю и теперь он шлёт чисто что мне надо было числа с индексом. Спасибо. Еще вопрос а можно как то сделать чтобы у main блока были внешние входа для пароля логина порта и тп чтобы брокера вбивать не с ПК а например через веб интерфейс есп8266 без Шнуров?
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

и еще . при передергивании или реконекте компорта .модем тоже в любом случае реконектит.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Блок для GPRS модулей, связь по MQTT

Сообщение Sancho »

bayeck писал(а): 28 сен 2019, 13:13 и еще . при передергивании или реконекте компорта .модем тоже в любом случае реконектит.
Это приходит импульс с микрухи 340 usb на ресет при восстановлении связи. увы.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

не замечал на других проектах. ща проверю.
хм и правда)

Отправлено спустя 7 часов 2 минуты 20 секунд:
интересно а не как нельзя облегчить блок? хавает 60 процентов памяти от нано.
Anydy

Блок для GPRS модулей, связь по MQTT

Сообщение Anydy »

bayeck писал(а): 28 сен 2019, 22:44 интересно а не как нельзя облегчить блок?
Можно, удалите все чем не пользуетесь, первым делом все что касается вывода в сериал....ну а далее библиотеку почикать...
Вообще то это была моя эспериментальная разработка, что нашел в сети то и выложил ....показал пример так сказать....ну а дальше вы сами..
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

[ref=#aa0000]Anydy[/ref], не хватает мозгов библиотеку чикать) . перейду на мегу)
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

почикал .на 3% уменьшил)
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

странная фигня ,теряет пакеты
с брокера идет
2 {"1":"27","2":"27","3":"28","4":"25","5":"00
2 {"1":"27","2":"27","3":"28","4":"23","5":"0","6":"0","7":"0","8":"
GsmClient/init GsmClient started
2 {"1":"27","2":"27","3":"28","4":"23","5":"00
2 {"1":"27","2":"27","3":"28","4":"24","5":"0","6":"0","7":"0","8":"

Отправлено спустя 46 минут 50 секунд:
[ref=#aa0000]Anydy[/ref], не хрена ни понимаю. не шлет и все. бьеш строку копи пасте с сериала на брокер все норм. а на брокер не приходит.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
edyapd
Капитан
Сообщения: 768
Зарегистрирован: 20 сен 2019, 11:38
Имя: Эдуард

Блок для GPRS модулей, связь по MQTT

Сообщение edyapd »

Насколько я понимаю, RTrig делает одиночный импульс. Если во время этого импульса есть что отправить, то отправит, а если он в самом начале программы один раз сработал, так потом никаких посылок и не будет.
Anydy

Блок для GPRS модулей, связь по MQTT

Сообщение Anydy »

Тема назыается --
Разработка пользовательских блоков
То есть здесь разработки ..... но никак не готовые блоки.....
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

edyapd писал(а): 01 окт 2019, 19:07 Насколько я понимаю, RTrig делает одиночный импульс. Если во время этого импульса есть что отправить, то отправит, а если он в самом начале программы один раз сработал, так потом никаких посылок и не будет.
нет. там симетричный мультивибратор стоит стоит.

Отправлено спустя 1 час 36 минут 44 секунды:
[ref=#aa0000]Anydy[/ref], в общем где косяк вроде понял ,исправить мозгов не хватает , по моему надо char на string переделать в отправке и заработает. по ходу ясоновские скобки не прожевывает. да проверил, string переменную с символом " и { не отправляет.
все отбой мой косяк был не преобразовывал цыфру в стринг.
Последний раз редактировалось bayeck 03 окт 2019, 15:58, всего редактировалось 1 раз.
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

отбой .это я тупил .криво ясон строку делал
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

Хз. постоянный реконект и виснет.как логи тягать?
Anydy

Блок для GPRS модулей, связь по MQTT

Сообщение Anydy »

bayeck писал(а): 06 окт 2019, 21:38 Хз. постоянный реконект и виснет.как логи тягать?
На ардуино нет функции дебаггинга, что бы отслеживать ошибки нужно в код после важных действий программы вставлять вывод в сериал порт и смотреть ошибки или зависание МК
igo11
Рядовой
Сообщения: 3
Зарегистрирован: 10 окт 2019, 18:41
Имя: Игорь

Блок для GPRS модулей, связь по MQTT

Сообщение igo11 »

Доброго времени! Подскажите пожалуйста... Собрал устройство, показания отправляются, а вот команды с брокера (народный монитор) не приходят. На сайте галочка "управление командами" установлена.На входе блока mqtt_sub - логин/название прибора, на выходе в монитор ничего не идет. Что я делаю не так?
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Anydy

Блок для GPRS модулей, связь по MQTT

Сообщение Anydy »

Я с народмон на модем не пробовал отправлять команды, проверьте на комп приходят? Например программа MQTTfx для виндоус
igo11
Рядовой
Сообщения: 3
Зарегистрирован: 10 окт 2019, 18:41
Имя: Игорь

Блок для GPRS модулей, связь по MQTT

Сообщение igo11 »

На комп сообщения приходят. Нужно только быть подписанным на топик: логин/название у-ва/+ (или #). На компе и так и так работает. В мк пробывал по разному результата нет
bayeck
Сержант
Сообщения: 140
Зарегистрирован: 15 янв 2018, 00:58
Откуда: истра
Имя: роман

Блок для GPRS модулей, связь по MQTT

Сообщение bayeck »

[ref]igo11[/ref], для начала упростите скетч от ясонов и прочего(там все не так просто) , во вторых показания раз в пять минут обновляются и отправляются соответственно. в третих попробуйте для начала разные топики вход выход.и к слову, я выкладывал блок для сборки ясон строк)
Ответить

Вернуться в «Разработка пользовательских блоков»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость