Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.68 KB | None | 0 0
  1. //******** Libraries ***********
  2. #include <SparkFun_Qwiic_Relay.h>
  3. #include <U8glib.h>
  4. #include "SparkFun_Qwiic_Relay.h"
  5. #include "U8glib.h"
  6. #include <Wire.h>
  7. #include <SoftwareSerial.h>
  8. #define rx 2
  9. #define tx 3
  10. #include "TSYS01.h"
  11. #include "MS5837.h"
  12. #define RELAY_ADDR 0x18
  13. #include <SPI.h>
  14. #include <SD.h>
  15. //*******************************
  16.  
  17. TSYS01 sensor1;
  18. MS5837 sensor0;
  19.  
  20. SoftwareSerial myserial(rx, tx);
  21. Qwiic_Relay relay(RELAY_ADDR);
  22. File myFile;
  23.  
  24. int temppos = 0;
  25. int depthpos = 0;
  26. int phpos = 0;
  27. int depthdata [1] = {};
  28. int tempdata [1] = {};
  29. int phdata [1] = {};
  30. float relaytime = 0;
  31. int sensortiming = 0;
  32. String inputstring = "";
  33. String sensorstring = "";
  34. boolean input_string_complete = false;
  35. boolean sensor_string_complete = false;
  36. float pH = 0;
  37.  
  38. void setup() {
  39.  
  40. SD.remove("Output.txt");
  41. Serial.begin(9600);
  42. myserial.begin(9600);
  43. inputstring.reserve(10);
  44. sensorstring.reserve(30);
  45. Wire.begin();
  46.  
  47. sensor1.init();
  48. while (!sensor0.init()) {
  49. Serial.println("Init failed!");
  50. Serial.println("Are SDA/SCL connected correctly?");
  51. Serial.println("Blue Robotics Bar30: White=SDA, Green=SCL");
  52. Serial.println("\n\n\n");
  53. delay(5000);
  54. }
  55.  
  56. if(!relay.begin()) {
  57.  
  58. Serial.println("Check connections to Qwiic Relay.");
  59.  
  60. } else {
  61.  
  62. Serial.println("Ready to flip some switches.");
  63.  
  64. float version = relay.singleRelayVersion();
  65.  
  66. Serial.print("Firmware Version: ");
  67.  
  68. Serial.println(version);
  69.  
  70. }
  71.  
  72.  
  73. Serial.print("Initializing SD card...");
  74.  
  75. if (!SD.begin(4)) {
  76. Serial.println("initialization failed!");
  77. while (1);
  78. }
  79. Serial.println("initialization done.");
  80.  
  81. sensor0.setModel(MS5837::MS5837_30BA);
  82. sensor0.setFluidDensity(997); // kg/m^3 (freshwater, 1029 for seawater)
  83. }
  84.  
  85. void serialEvent() {
  86. inputstring = Serial.readStringUntil(13);
  87. input_string_complete = true;
  88. }
  89.  
  90. void loop() {
  91.  
  92. if (relaytime >= 10) {
  93.  
  94. relay.turnRelayOn();
  95.  
  96. delay(1000);
  97.  
  98. relay.turnRelayOff();
  99.  
  100. delay(1000);
  101.  
  102. relay.turnRelayOn();
  103.  
  104. delay(1000);
  105.  
  106. relay.turnRelayOff();
  107.  
  108. relaytime = -10; //The time it takes for the relay to execute again (in seconds)
  109.  
  110. myFile = SD.open("Output.txt", FILE_WRITE);
  111. Serial.println(phdata [0]);
  112. myFile.println(phdata [0]);
  113. myFile.println(tempdata [0]);
  114. Serial.println(tempdata [0]);
  115. myFile.println(depthdata [0]);
  116. Serial.println(depthdata [0]);
  117. myFile.close();
  118.  
  119. }
  120.  
  121.  
  122. if (sensortiming == 1000) {
  123. sensor1.read();
  124. sensor0.read();
  125.  
  126. Serial.print("Depth: ");
  127. Serial.print(sensor0.depth());
  128. Serial.println(" m");
  129. depthdata [depthpos] = sensor0.depth();
  130. depthpos = depthpos+1;
  131.  
  132. Serial.print("Temperature: ");
  133. Serial.print(sensor1.temperature());
  134. Serial.println(" deg C");
  135. tempdata [temppos]= sensor1.temperature();
  136. temppos = temppos+1;
  137.  
  138. Serial.println("");
  139. sensortiming = 0;
  140. }
  141.  
  142.  
  143. if (input_string_complete == true) {
  144. myserial.print(inputstring);
  145. myserial.print('\r');
  146. inputstring = "";
  147. input_string_complete = false;
  148. }
  149.  
  150. if (myserial.available() > 0) {
  151. char inchar = (char)myserial.read();
  152. sensorstring += inchar;
  153. if (inchar == '\r') {
  154. sensor_string_complete = true;
  155. }
  156. }
  157.  
  158. if (sensor_string_complete == true) {
  159. Serial.print("pH: ");
  160. Serial.println(sensorstring);
  161. if (isdigit(sensorstring[0])) {
  162. pH = sensorstring.toFloat();
  163. }
  164. phdata [phpos] = pH;
  165. phpos = phpos+1;
  166. sensorstring = "";
  167. sensor_string_complete = false;
  168. }
  169.  
  170. delay(1);
  171. sensortiming = sensortiming+1;
  172. relaytime = relaytime+0.001;
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement