Исправить код программы GSM + термопара max6675
- Войдите на сайт для отправки комментариев
Пнд, 17/02/2020 - 19:54
Здравствуйте! Ищу человека который исправит или заново напишет код. Вот мой код: в нем не работает термопара. Точнее работает но часто выдает ерунду.
#include "max6675.h"
#include "SIM900.h"
//#include <SoftwareSerial.h>
#include "sms.h"
#include "call.h"
//Термопара
int thermoDO = 8; //он же SO
int thermoCS = 9;
int thermoCLK = 4; //он же SCK
MAX6675 thermocouple(thermoCLK, thermoCS, thermoDO);
//int vccPin = 5; //пин для питания
//int gndPin = 6; //пин для земли
//=================Пины 2 и 3 для Подключения GSM модуля
SMSGSM sms;
int flag1=0;
boolean started=false;
char smsbuffer[160];
char n[20];
char nn[20];
char v[10];
String n1 = "";
//String n1 = ""; // Мой Номер
//String n2 = ""; // Номер Жены
String n2 = ""; // Test
String v1 = "";
int s1;
String input_string = "";
String smsContent = "";
char trevoga[] = "Vnimanie! Kriticheskaya temperatura! C = ";
char pos;
char sendsms[160];
void setup() {
Serial.begin(9600);
//активируем питание и землю
// pinMode(vccPin, OUTPUT); digitalWrite(vccPin, HIGH);
// pinMode(gndPin, OUTPUT); digitalWrite(gndPin, LOW);
Serial.println("MAX6675 test");
delay(1800); //ждем стабилизации чипа MAX
if (gsm.begin(2400))
{
started=true;
}
else Serial.println("\nstatus=IDLE");
}
void loop() {
delay(1800); //ждем стабилизации чипа MAX
int s1 = int(thermocouple.readCelsius());
Serial.print("С = ");
Serial.println(s1);
// ===========================СМС
if (s1 >= 80 && flag1 <= 0) {
Serial.print("Превышен температурный предел! С = ");
Serial.println(s1);
// String s1 = String(thermocouple.readCelsius(), 1);
String v1 = trevoga + s1;
v1.toCharArray(v,20);
n1.toCharArray(n,20);
sms.SendSMS(n, v); // Посылаем СМС о том, что привышена температура
sms.DeleteSMS(1);memset(n,0,20);
n2.toCharArray(nn,20);
sms.SendSMS(nn, v); // Посылаем СМС о том, что привышена температура
sms.DeleteSMS(1);memset(nn,0,20);
char smsbuffer[160]="";
flag1++;
delay(10000); }
else if (s1 >= 80 && flag1 > 0 && flag1 < 30000) { // 5 минут на чтение смс
pos = sms.IsSMSPresent(SMS_UNREAD); // смотрим непрочитанные СМС
if (pos) { // Если непрочитанные СМС есть, то...
getsms(); // получаем непрочитанную СМС
if (input_string=="0"){ // Команда "0" - отправить СМС
Serial.print("Prislo SMS!");
n1.toCharArray(n,20); // Номер телефона
// String s1 = String(thermocouple.readCelsius(), 1);
String v1 = int(s1) + String(" Gradusov");
v1.toCharArray(v,20);
sms.SendSMS(n, v);
sms.DeleteSMS(1);
memset(n,0,20);
input_string="";
char smsbuffer[160]="";}
// flag1=0;
sms.DeleteSMS(pos); // удаляем СМС из симки
}
flag1++;
delay(10000);}
else if (s1 >= 80 && flag1 >= 30000) {
Serial.print("Превышен температурный предел! С = ");
Serial.println(s1);
// String s1 = String(thermocouple.readCelsius(), 1);
String v1 = String(trevoga + s1);
v1.toCharArray(v,20);
n1.toCharArray(n,20);
sms.SendSMS(n, v); // Посылаем СМС о том, что привышена температура
sms.DeleteSMS(1);memset(n,0,20);
n2.toCharArray(nn,20);
sms.SendSMS(nn, v); // Посылаем СМС о том, что привышена температура
sms.DeleteSMS(1);memset(nn,0,20);
char smsbuffer[160]="";
flag1++;
delay(180000000); } //Задержка 3 минуты
else if (s1 < 80) {
Serial.print("Температура в норме! С = ");
Serial.println(s1);
flag1=0;
delay(10000);}
pos = sms.IsSMSPresent(SMS_UNREAD); // смотрим непрочитанные СМС
if (pos) { // Если непрочитанные СМС есть, то...
getsms(); // получаем непрочитанную СМС
if (input_string=="0"){ // Команда "0" - отправить СМС
Serial.println("Prislo SMS!");
n1.toCharArray(n,20); // Номер телефона
// String s1 = String(thermocouple.readCelsius(), 1);
String v1 = String(s1 + " Gradusov");
v1.toCharArray(v,20);
sms.SendSMS(n, v);
sms.DeleteSMS(1);
memset(n,0,20);
input_string="";
char smsbuffer[160]="";}
// flag1=0;
sms.DeleteSMS(pos); // удаляем СМС из симки
}
}
void getsms()
{
sms.GetSMS(1,n,20,smsbuffer,160);
input_string =String(smsbuffer);
}
Если закоментить вот этот кусок кода:
if (gsm.begin(2400))
{
started=true;
}
else Serial.println("\nstatus=IDLE");
}
То начинает работать... Помогите с исправлением. Жду предложения в личку и на форуме.