У меня есть интернет на даче, НО! Только тогда, когда я его раздаю со своего телефона, и то такой тормоз, что лучше бы небыло. СМС это самое лучшее, что там можно придумать, будет работать всегда и безотказно за 100 рублей в месяц - билайн, симку уже купил.Железо всё уже купил, осталось дождаться специалиста, который это сможет реализовать в буквах иностранных.
пипец...)) бедная кнопка ))
можно в Телеграмм канал))
теплица уже автоматизирована ?
на то она и кнопка, судьба у неё такая, чтобы её жали
В телеграм не верю, верю в Бога.
В теплице пока стоит обычный китайский терморегулятор и электронагреватель, чтобы расада не помёрзла, по ночам ещё бывает минус
Добавлено after 14 minutes 23 seconds:а как управлять по SMS я например вообще плохо себе представляю...
это надо сидеть... придумывать команды для SMS...
Можно не придумывать, можно подсмотреть
/*
Тестировалось на Arduino IDE 1.8.5
Дата тестирования 24.10.2020г.
*/
#include <SoftwareSerial.h> // Подключаем библиотеку SoftwareSerial
#include <OneWire.h> // Подключаем библиотеку OneWire
#include <DallasTemperature.h> // Подключаем библиотеку DallasTempature
SoftwareSerial mySerial(3, 2); // Выводы SIM800L Tx & Rx подключены к выводам Arduino 3 и 2
char incomingByte;
String inputString;
int relay_1 = A0; // Вывод управления реле 1
int relay_2 = A1; // Вывод управления реле 2
#define ONE_WIRE_BUS A2 // Указываем, к какому выводу подключена DQ
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup()
{
pinMode(relay_1, OUTPUT); // Установим вывод как выход
digitalWrite(relay_1, HIGH); // Устанавливаем высокий уровень
pinMode(relay_2, OUTPUT); // Установим вывод как выход
digitalWrite(relay_2, HIGH); // Устанавливаем высокий уровень
Serial.begin(9600);
mySerial.begin(9600);
while(!mySerial.available()){ // Зацикливаем и ждем инициализацию SIM800L
mySerial.println("AT"); // Отправка команды AT
delay(1000); // Пауза
Serial.println("Connecting…"); // Печатаем текст
}
Serial.println("Connected!"); // Печатаем текст
mySerial.println("AT+CMGF=1"); // Отправка команды AT+CMGF=1
delay(1000); // Пауза
mySerial.println("AT+CNMI=1,2,0,0,0"); // Отправка команды AT+CNMI=1,2,0,0,0
delay(1000); // Пауза
mySerial.println("AT+CMGL=\"REC UNREAD\"");
}
void loop()
{
if(mySerial.available()){ // Проверяем, если есть доступные данные
delay(100); // Пауза
while(mySerial.available()){ // Проверяем, есть ли еще данные.
incomingByte = mySerial.read(); // Считываем байт и записываем в переменную incomingByte
inputString += incomingByte; // Записываем считанный байт в массив inputString
}
delay(10); // Пауза
Serial.println(inputString); // Отправка в "Мониторинг порта" считанные данные
inputString.toUpperCase(); // Меняем все буквы на заглавные
if (inputString.indexOf("ON_1") > -1){ // Проверяем полученные данные, если ON_1 включаем реле 1
digitalWrite(relay_1, LOW);
sms(String("Relay 1 - ON"), String("+7xxxxxxxxxx"));
delay(50);}
if (inputString.indexOf("OFF_1") > -1){ // Проверяем полученные данные, если OFF_1 выклюем реле 1
digitalWrite(relay_1, HIGH);
sms(String("Relay 1 - OFF"), String("+7xxxxxxxxxx")); // Отправка SMS
delay(50);}
if (inputString.indexOf("ON_2") > -1){ // Проверяем полученные данные, если ON_2 включаем реле 2
digitalWrite(relay_2, LOW);
sms(String("Relay 2 - ON"), String("+7xxxxxxxxxx")); // Отправка SMS
delay(50);}
if (inputString.indexOf("OFF_2") > -1){ // Проверяем полученные данные, если OFF_2 выключаем реле 2
digitalWrite(relay_2, HIGH);
sms(String("Relay 2 - OFF"), String("+7xxxxxxxxxx")); // Отправка SMS
delay(50);}
if (inputString.indexOf("TEMP_1") > -1){ // Проверка полученные данные, если TEMP_1 отправляем температуру
sensors.requestTemperatures();
float temp = sensors.getTempCByIndex(0);
Serial.print(sensors.getTempCByIndex(0));
sms(String(temp), String("+7xxxxxxxxxx")); // Отправка SMS
delay(50);}
if (inputString.indexOf("TEMP_2") > -1){ // Проверка полученные данные, если TEMP_2 отправляем температуру
sensors.requestTemperatures();
float temp2 = sensors.getTempCByIndex(1);
Serial.print(sensors.getTempCByIndex(1));
sms(String(temp2), String("+7xxxxxxxxxx")); // Отправка SMS
delay(50);}
if (inputString.indexOf("OK") == -1){
mySerial.println("AT+CMGDA=\"DEL ALL\"");
delay(1000);}
inputString = "";}
}
void sms(String text, String phone) // Процедура Отправка SMS
{
Serial.println("SMS send started");
mySerial.println("AT+CMGS=\"" + phone + "\"");
delay(500);
mySerial.print(text);
delay(500);
mySerial.print((char)26);
delay(500);
Serial.println("SMS send complete");
delay(2000);
}