Wemos и sim800l
Wemos и sim800l
Приветик всем, столкнулся с такой бедой.
При подачи питания на wemos и sim800l нет подключения, но если потом нажать на wemos ресет все запускается.
Думал сделать задержку на пин, чтоб после запуска подавал gnd на пин ресет, но получится цикл( не вариант.
Подскажите есть какой то вариант сделать задержку на запуск wemos чтоб была последовательность запуска
При подачи питания на wemos и sim800l нет подключения, но если потом нажать на wemos ресет все запускается.
Думал сделать задержку на пин, чтоб после запуска подавал gnd на пин ресет, но получится цикл( не вариант.
Подскажите есть какой то вариант сделать задержку на запуск wemos чтоб была последовательность запуска
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Wemos и sim800l
[ref]sampl[/ref],
Код: Выделить всё
delay(5000);
//5000-время задержки в милисекундах
Wemos и sim800l
Спасибо, вечером попробуюPhazz писал(а): 05 апр 2023, 13:49 [ref]sampl[/ref],Код: Выделить всё
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;
}
Wemos и sim800l
поменяй местами и увеличь до 5000sampl писал(а): 05 апр 2023, 21:59 delay(1000); //тут поставил deley но не памогает
SerialAT.begin(9600)
Отправлено спустя 1 минуту 3 секунды:
ну и в целом это плохая идея
Отправлено спустя 1 минуту 48 секунд:
если в проекте сериал на 9600 - то всегда будут проблемы.
к тому же у тебя еще и mqtt)))
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Wemos и sim800l
Нужно определить через сколько модем готов к работе
Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Wemos и sim800l
Ну после подачи питания, сразу нажимаю ресет и запускается сразу жеPhazz писал(а): 05 апр 2023, 22:51 Нужно определить через сколько модем готов к работе
Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Отправлено спустя 1 минуту 19 секунд:
Ну это по дэфолту у сим 800, а какая скорость будет лучше, в принципе могу поменять…waswas писал(а): 05 апр 2023, 22:16поменяй местами и увеличь до 5000sampl писал(а): 05 апр 2023, 21:59 delay(1000); //тут поставил deley но не памогает
SerialAT.begin(9600)
Отправлено спустя 1 минуту 3 секунды:ну и в целом это плохая идея
Отправлено спустя 1 минуту 48 секунд:если в проекте сериал на 9600 - то всегда будут проблемы.
к тому же у тебя еще и mqtt)))
И не мовсем понял что поменять местами
Отправлено спустя 1 минуту 19 секунд:
Ставил и 5000 не памогает (Phazz писал(а): 05 апр 2023, 22:51 Нужно определить через сколько модем готов к работе
Отправлено спустя 6 минут 40 секунд:
1 секунды мне кажется маловато
Wemos и sim800l
Нет) ну сейчас попробую)
Отправлено спустя 57 минут 11 секунд:
Поставил 6000-10000 все равно не запускается
А какая должна быть скорость модема у меня 9600 может попробывать поднять до 15200?
-
- Рядовой
- Сообщения: 30
- Зарегистрирован: 22 сен 2018, 11:42
- Откуда: Татарстан, Казань
- Имя: Александр
- Благодарил (а): 1 раз
Wemos и sim800l
Посмотрите видео у Грачика (Ардуинопром). Он там решил эту проблему. После старта программы делается принудительный сброс SIM800.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Wemos и sim800l
[ref]sampl[/ref],
Посмотрите Эту тему.
Было давно но логику работы можно понять. Сброс модема с пина контроллера.
Возможно в проекте в новых версиях флп надо будет настроить заново блоки UART.
Посмотрите Эту тему.
Было давно но логику работы можно понять. Сброс модема с пина контроллера.
Возможно в проекте в новых версиях флп надо будет настроить заново блоки UART.
Win10-64, FLProg (portable)
Wemos и sim800l
Та принцип понял, но попробовал ресетнуть через пин sim800 и не памогло, такое чувство что при старте наглухо зависает wemos и пока не рестартнуть его не отпускает(
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Wemos и sim800l
[ref=#808080]Phazz[/ref],
Если вемос мини то пин д4,д3, судя из скетча.
[ref]sampl[/ref],
А вы какой ни будь простой тестовый скетч не пробовали для этой пары модулей залить?
как вариант можно попробовать модем кинуть на хард сереал а инфу на софт сереал через внешний UART
и почему проект флп не выложить?
Если вемос мини то пин д4,д3, судя из скетча.
[ref]sampl[/ref],
А вы какой ни будь простой тестовый скетч не пробовали для этой пары модулей залить?
как вариант можно попробовать модем кинуть на хард сереал а инфу на софт сереал через внешний UART
и почему проект флп не выложить?
Win10-64, FLProg (portable)
- Phazz
- Полковник
- Сообщения: 3110
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 228 раз
- Поблагодарили: 107 раз
Wemos и sim800l
Как удачно, эти оба контакта должны в состоянии HIGH находиться. Если хоть один LOW, то esp8266 не запустится
Wemos и sim800l
Да wemos d1 mini, и весит на пинах D3 D4Phazz писал(а): 06 апр 2023, 20:38 Как удачно, эти оба контакта должны в состоянии HIGH находиться. Если хоть один LOW, то esp8266 не запустится
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Wemos и sim800l
Как бы везде rx,tx физически подтянуты к HIGH.
Но что на сим800 в момент включения на них происходит не знаю, как вариант может и в этом быть причина.
Win10-64, FLProg (portable)
Wemos и sim800l
Так и есть, поменял на D1-D2 и запустилась….
Наступил сам согласен
Отправлено спустя 5 минут 25 секунд:
Подскажите еще, суть басни такова мне нужен датчик влажности почвы, ну вот делаю его.
Вопрос в том что у wemos только один A0 как аналоговый, через него думаю измерять датчиком влажность грунта, но так как датчик будут стоять в полях а это 12-15 км от меня то хотелось бы передавать и заряд батареи, но на сколько я понимаю мне нужно с 3.3в через резистер подтянуть к А0?
И как по боротся если на А0 весит датчик влажности почвы.
За ранее всем благодарен ребята.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя