Wemos и sim800l

Вопросы от новичков
sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#1

Сообщение sampl » 05.04.2023{, 10:30}

Приветик всем, столкнулся с такой бедой.
При подачи питания на wemos и sim800l нет подключения, но если потом нажать на wemos ресет все запускается.
Думал сделать задержку на пин, чтоб после запуска подавал gnd на пин ресет, но получится цикл( не вариант.
Подскажите есть какой то вариант сделать задержку на запуск wemos чтоб была последовательность запуска

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#2

Сообщение Phazz » 05.04.2023{, 10:39}

sampl, попробовать вставить delay в начало setup

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#3

Сообщение sampl » 05.04.2023{, 12:14}

Phazz писал(а):
05.04.2023{, 10:39}
sampl, попробовать вставить delay в начало setup
А как указать время, если можно кусок кода, я то я не очень понимаю

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#4

Сообщение Phazz » 05.04.2023{, 13:49}

sampl,

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

delay(5000); 
//5000-время задержки в милисекундах

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#5

Сообщение sampl » 05.04.2023{, 16:37}

Phazz писал(а):
05.04.2023{, 13:49}
sampl,

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

delay(5000); 
//5000-время задержки в милисекундах
Спасибо, вечером попробую

Отправлено спустя 5 часов 21 минуту 38 секунд:
неа не памогло ( я так понимаю инициализация модема идет раньше чем setup


#define TINY_GSM_MODEM_SIM800
#include <SoftwareSerial.h>
#include <PubSubClient.h>
#include <TinyGsmClient.h>
struct UB_147348714
{
String ubo_57341428 = "";
}
;
UB_147348714 UB_147348714_Instance2;
String UB_147348714_ubi_130751856 = "";
extern "C"
{
#include "user_interface.h"
}

//#define SerialMon Serial
String MQTT_inputTopic;
String MQTT_inputtext;
SoftwareSerial SerialAT(2, 0);
const char apn[] = "internet";
const char user[] = "";
const char pass[] = "";
const char* topicInit= "GsmClient/init";
TinyGsm modem(SerialAT);
TinyGsmClient client(modem);
PubSubClient mqtt(client);
long lastReconnectAttempt= 0;
bool En_75656550_1;
String msg_75656550_1;
String outTopic_75656550_1;
bool _trgrt2 = 0;
bool _trgrt2I = 0;
long _strFunrand2 = 0L;
bool _gen3I = 0;
bool _gen3O = 0;
unsigned long _gen3P = 0UL;
void setup()
{
delay(1000); //тут поставил deley но не памогает
randomSeed(analogRead(0));
Serial.begin(115200);
delay(10);
SerialAT.begin(9600);
delay(3000);
Serial.println("Initializing modem...");
modem.restart();
// Unlock your SIM card with a PIN
//modem.simUnlock("1234");
Serial.print("Waiting for network...");
if (!modem.waitForNetwork())
{
Serial.println(" fail");
while (true);
}
Serial.println(" OK");
Serial.print("Connecting to ");
Serial.print(apn);
if (!modem.gprsConnect(apn, user, pass))
{
Serial.println(" fail");
while (true);
}
Serial.println(" OK");
// MQTT Broker setup
mqtt.setServer("mqtt.beebotte.com", 1883);
mqtt.setCallback(mqttCallback);
}
void loop()
{
//Плата:1
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 (!(0))
{
if (! _gen3I)
{
_gen3I = 1;
_gen3O = 1;
_gen3P = millis();
}
}
else
{
_gen3I = 0 ;
_gen3O= 0;
}
if (_gen3I)
{
if (_isTimer (_gen3P , (map((1), (0), (60), (0), (60000)))))
{
_gen3P = millis();
_gen3O = ! _gen3O;
}
}
if (_gen3O)
{
_strFunrand2 = random(10, 100);
}
UB_147348714_ubi_130751856 = (String(_strFunrand2, DEC));
_func_UB_147348714(&UB_147348714_Instance2, UB_147348714_ubi_130751856);
if (_gen3O)
{
if (_trgrt2I)
{
_trgrt2 = 0;
}
else
{
_trgrt2 = 1;
_trgrt2I = 1;
}
}
else
{
_trgrt2 = 0;
_trgrt2I = 0;
}
;
En_75656550_1 = _trgrt2;
msg_75656550_1 = UB_147348714_Instance2.ubo_57341428;
outTopic_75656550_1 = String("test/da3");
if (En_75656550_1 == 1)
{
mqtt.publish((char*) outTopic_75656550_1.c_str(), (char*) msg_75656550_1.c_str());
}
}
bool _isTimer(unsigned long startTime, unsigned long period)
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime)
{
return (currentTime>=(startTime + period));
}
else
{
return (currentTime >=(4294967295-startTime+period));
}
}
boolean mqttConnect()
{
Serial.print("Connecting to ");
Serial.print("mqtt.beebotte.com");
if (!mqtt.connect("test", "cZh2TX6sZ2S5pMIHmERWToxYcvifrHtp", ""))
{
Serial.println(" fail");
return false;
}
Serial.println(" OK");
mqtt.publish(topicInit, "GsmClient started");
mqtt.subscribe("#");
return mqtt.connected();
}
void mqttCallback(char* topic, byte* payload, unsigned int len)
{
MQTT_inputtext = "";
MQTT_inputTopic = "";
MQTT_inputTopic = topic;
for (int i=0; i<len; i++)
{
MQTT_inputtext += (char)payload;
}
}
void _func_UB_147348714(struct UB_147348714 *_ubInstans, String ubi_130751856)
{
String ubo_57341428 = _ubInstans->ubo_57341428;
ubo_57341428 = ((String("{\"data\":")) + (ubi_130751856) + (String(",\"write\":true}")));
_ubInstans->ubo_57341428 = ubo_57341428;
}

waswas
Рядовой
Сообщения: 44
Зарегистрирован: 04.04.2023{, 18:39}
Репутация: 2
Имя: Вася

Wemos и sim800l

#6

Сообщение waswas » 05.04.2023{, 22:13}

sampl писал(а):
05.04.2023{, 21:59}
delay(1000); //тут поставил deley но не памогает
SerialAT.begin(9600)
поменяй местами и увеличь до 5000

Отправлено спустя 1 минуту 3 секунды:
sampl писал(а):
05.04.2023{, 21:59}
Serial.begin(115200);
SerialAT.begin(9600)
ну и в целом это плохая идея

Отправлено спустя 1 минуту 48 секунд:
waswas писал(а):
05.04.2023{, 22:14}
ну и в целом это плохая идея
если в проекте сериал на 9600 - то всегда будут проблемы.

к тому же у тебя еще и mqtt)))

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#7

Сообщение Phazz » 05.04.2023{, 22:45}

Нужно определить через сколько модем готов к работе

Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#8

Сообщение sampl » 05.04.2023{, 23:15}

Phazz писал(а):
05.04.2023{, 22:51}
Нужно определить через сколько модем готов к работе

Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Ну после подачи питания, сразу нажимаю ресет и запускается сразу же

Отправлено спустя 1 минуту 19 секунд:
waswas писал(а):
05.04.2023{, 22:16}
sampl писал(а):
05.04.2023{, 21:59}
delay(1000); //тут поставил deley но не памогает
SerialAT.begin(9600)
поменяй местами и увеличь до 5000

Отправлено спустя 1 минуту 3 секунды:
sampl писал(а):
05.04.2023{, 21:59}
Serial.begin(115200);
SerialAT.begin(9600)
ну и в целом это плохая идея

Отправлено спустя 1 минуту 48 секунд:
waswas писал(а):
05.04.2023{, 22:14}
ну и в целом это плохая идея
если в проекте сериал на 9600 - то всегда будут проблемы.

к тому же у тебя еще и mqtt)))
Ну это по дэфолту у сим 800, а какая скорость будет лучше, в принципе могу поменять…
И не мовсем понял что поменять местами

Отправлено спустя 1 минуту 19 секунд:
Phazz писал(а):
05.04.2023{, 22:51}
Нужно определить через сколько модем готов к работе

Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Ставил и 5000 не памогает (

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#9

Сообщение Phazz » 05.04.2023{, 23:27}

В библиотеке вообще 6000) А вы больше 5000 пробовали?

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#10

Сообщение sampl » 06.04.2023{, 00:30}

Phazz писал(а):
05.04.2023{, 23:27}
В библиотеке вообще 6000) А вы больше 5000 пробовали?
Нет) ну сейчас попробую)

Отправлено спустя 57 минут 11 секунд:
Поставил 6000-10000 все равно не запускается 😡 тыкаю ресет и все стартует(((
А какая должна быть скорость модема у меня 9600 может попробывать поднять до 15200?

Fedot
Рядовой
Сообщения: 22
Зарегистрирован: 22.09.2018{, 11:42}
Репутация: 3
Откуда: Татарстан, Казань
Имя: Александр

Wemos и sim800l

#11

Сообщение Fedot » 06.04.2023{, 08:28}

Посмотрите видео у Грачика (Ардуинопром). Он там решил эту проблему. После старта программы делается принудительный сброс SIM800.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Wemos и sim800l

#12

Сообщение rw6cm » 06.04.2023{, 09:30}

sampl,
Посмотрите Эту тему.
Было давно но логику работы можно понять. Сброс модема с пина контроллера.
Возможно в проекте в новых версиях флп надо будет настроить заново блоки UART.
Win10-64, FLProg (portable)

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#13

Сообщение sampl » 06.04.2023{, 17:26}

rw6cm писал(а):
06.04.2023{, 09:30}
sampl,
Посмотрите Эту тему.
Было давно но логику работы можно понять. Сброс модема с пина контроллера.
Возможно в проекте в новых версиях флп надо будет настроить заново блоки UART.
Та принцип понял, но попробовал ресетнуть через пин sim800 и не памогло, такое чувство что при старте наглухо зависает wemos и пока не рестартнуть его не отпускает(

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#14

Сообщение Phazz » 06.04.2023{, 18:01}

sampl, таак, а на каких пинах модем?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Wemos и sim800l

#15

Сообщение rw6cm » 06.04.2023{, 19:41}

Phazz,
Если вемос мини то пин д4,д3, судя из скетча.
sampl,
А вы какой ни будь простой тестовый скетч не пробовали для этой пары модулей залить?
как вариант можно попробовать модем кинуть на хард сереал а инфу на софт сереал через внешний UART
и почему проект флп не выложить?
Win10-64, FLProg (portable)

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#16

Сообщение Phazz » 06.04.2023{, 20:38}

Как удачно, эти оба контакта должны в состоянии HIGH находиться. Если хоть один LOW, то esp8266 не запустится

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#17

Сообщение sampl » 06.04.2023{, 20:43}

Phazz писал(а):
06.04.2023{, 20:38}
Как удачно, эти оба контакта должны в состоянии HIGH находиться. Если хоть один LOW, то esp8266 не запустится
Да wemos d1 mini, и весит на пинах D3 D4

Аватара пользователя
Phazz
Полковник
Сообщения: 2560
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Wemos и sim800l

#18

Сообщение Phazz » 06.04.2023{, 20:50}

sampl, меняйте пины

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Wemos и sim800l

#19

Сообщение rw6cm » 06.04.2023{, 23:06}

Phazz писал(а):
06.04.2023{, 20:38}
эти оба контакта должны в состоянии HIGH
Как бы везде rx,tx физически подтянуты к HIGH.
Но что на сим800 в момент включения на них происходит не знаю, как вариант может и в этом быть причина.
Win10-64, FLProg (portable)

sampl
Сержант
Сообщения: 189
Зарегистрирован: 31.03.2017{, 11:28}
Репутация: 0
Откуда: Днепропетровск

Wemos и sim800l

#20

Сообщение sampl » 07.04.2023{, 10:23}

Phazz писал(а):
06.04.2023{, 20:50}
sampl, меняйте пины
Так и есть, поменял на D1-D2 и запустилась….
Наступил сам согласен🍻

Отправлено спустя 5 минут 25 секунд:
Подскажите еще, суть басни такова мне нужен датчик влажности почвы, ну вот делаю его.
Вопрос в том что у wemos только один A0 как аналоговый, через него думаю измерять датчиком влажность грунта, но так как датчик будут стоять в полях а это 12-15 км от меня то хотелось бы передавать и заряд батареи, но на сколько я понимаю мне нужно с 3.3в через резистер подтянуть к А0?
И как по боротся если на А0 весит датчик влажности почвы.
За ранее всем благодарен ребята.

Ответить

Вернуться в «Начинающим»