Witam
Na początku pragnę poinformować że dopiero raczkuje z elektroniką i programowaniem.W związku z tym proszę o wyrozumiałość : >
Chcę za pomocą arduino + neoway m590 + czujnik temperatury DS18B20 przesyłać temperaturę po wysłaniu smsa z komendą.Przy wsparciu książek+internetu wyskrobałem taki kod:
Z góry dziękuję za wyrozumiałość i pomoc.
Na początku pragnę poinformować że dopiero raczkuje z elektroniką i programowaniem.W związku z tym proszę o wyrozumiałość : >
Chcę za pomocą arduino + neoway m590 + czujnik temperatury DS18B20 przesyłać temperaturę po wysłaniu smsa z komendą.Przy wsparciu książek+internetu wyskrobałem taki kod:
Kod:
#include <DallasTemperature.h>
#include <OneWire.h>
#include <SoftwareSerial.h>
String textForSMS;
float currentTemp;
char inchar;
SoftwareSerial cellSerial(4,5); // numery pinów tx rx chyba?
#define ONEWIRE_PIN 2 /// numer pinu czujnika temp.
byte address[8] = {0x28, 0xFF, 0xFC, 0xDA, 0x84, 0x16, 0x5, 0x50}; /// adres czujnika temp.
OneWire onewire(ONEWIRE_PIN);
DallasTemperature sensors(&onewire);
void setup()
{
cellSerial.begin(57600); /// boud rate modułu GSM
Serial.begin(9600); /// rate sensora temp.
delay(3000);
sensors.begin();
}
void SendTextMessage(String message) ///funkcja do wysyłania wiadomości SMS
{
cellSerial.print("AT+CMGF=1\r"); // przełączenie modułu na text mode
delay(300);
cellSerial.println("AT+CSCS=\"GSM\"\r"); /// ustawianie znaków GSM
delay(300);
cellSerial.println("AT+SMGS=\"+48697516999\"\r"); // numer telefonu do którego ma wysłać
delay(300);
cellSerial.println(message); // zawartość wiadomości SMS
cellSerial.println((char)26); // kod26 to zakończenie "CTRL+Z"
delay(2000);
cellSerial.println();
}
void loop()
{
if (cellSerial.available() > 0)
{
inchar = cellSerial.read();
if (inchar == '#') // początek polecenia w komendzie SMS
{
delay(20);
inchar = cellSerial.read();
if (inchar == 't')
{
delay(20);
inchar = cellSerial.read();
if (inchar == 'm')
{
delay(20);
inchar = cellSerial.read();
if (inchar == 'p')
{
Serial.println ("rozpoczecie odczytu temperatury");
currentTemp = sensors.getTempCByIndex(0);
textForSMS = "Temperatura:";
textForSMS = (textForSMS, currentTemp);
Serial.println("wiadomosc:");
Serial.println(textForSMS);
SendTextMessage (textForSMS);
delay(30000);
Serial.println("zakonczono czas oczekiwania");
}
}
cellSerial.println("AT+CMGD=3"); // usuwanie smsów
}
}
}
}
Z góry dziękuję za wyrozumiałość i pomoc.