0
Καλησπέρα σε όλους.
Έχω ξεκινήσει μια κατασκευή, όπου λαμβάνω από τρεις αισθητήρες δεδομένα στη σηρειακή του arduino και προσπαθώ να τα στείλω με ένα sms, χρησιμοποιώντας το gprs shield με το sim900.
Διαβάζω εδώ και κανα δυο μήνες για το θέμα, αλλά δεν κατανοώ και με τα λίγα αγγλικά μου πως θα περάσω τις τιμές των αισθητήρων σε sms. Έχω χαθεί στο διάβασμα μεταξύ char, arrays, dtostrf κ.λ.π.
Αν μπορεί κάποιος να με ξελασπώσει με τον κώδικα ή να με παραπέμψει σε κάποιο βιβλίο στα Ελληνικά για να βγάλω άκρη, θα ήμουν ευγνώμων.
Ο κώδικας.
Κώδικας:#include <SoftwareSerial.h> #include <SerialGSM.h> #include "HX711.h" #include <Wire.h> #include <AM2320.h> // red wire to vcc 5v //yellow wire to SDA (A4) //Black wire to GND //White wire to SCL (A5) #define calibration_factor 21570 //This value is obtained using the SparkFun_HX711_Calibration sketch #define zero_factor 24458 //This large value is obtained using the SparkFun_HX711_Calibration sketch #define DOUT 3 //HX711 CONNECTION #define CLK 2 // HX711 CONNECTION SerialGSM cell(7, 8); // GPRS serial pins int val11; float val2; AM2320 th; HX711 scale(DOUT, CLK); void setup() { Serial.begin(9600); //software on gprs cell.begin(9600); delay(20000); pinMode(9, OUTPUT); digitalWrite(9, HIGH); delay(1000); digitalWrite(9, LOW); delay(5000); loadcell(); voltage(); humidity(); sendsms(); } void loadcell () { scale.set_scale(calibration_factor); //This value is obtained by using the SparkFun_HX711_Calibration sketch scale.set_offset(zero_factor); //Zero out the scale using a previously known zero_factor Serial.print("Reading: "); Serial.print(scale.get_units(), 3); //scale.get_units() returns a float Serial.print(" kg"); //You can change to kg but you'll need to change the calibration_factor Serial.println(); delay (100); } void voltage () { Serial.println("Voltage: "); float temp; val11 = analogRead(1); //connecting s pin to A1 temp = val11 / 4.092; val2 = (temp / 10); Serial.println(val2); delay(1000); } void humidity () { Wire.begin(); Serial.print("humidity: "); Serial.print(th.h); Serial.print("%, temperature: "); Serial.print(th.t); Serial.println("*C"); } void loop () { } //SMS TEXT void sendsms () { cell.Verbose(true); cell.Boot(); cell.FwdSMS2Serial(); cell.Rcpt("+************"); cell.Message("varos"); cell.Message(scale.get_units(), 3); cell.Message ("kg"); cell.Message ("Battery"); cell.Message(val2); cell.Message("Ygrasia"); cell.Message(th.h); cell.Message("thermokrasia"); cell.Message(th.t); cell.SendSMS(); }