Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 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. float depthdata [15] = {};
  28. float tempdata [15] = {};
  29. float phdata [15] = {};
  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;
  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 [1]);
  112. Serial.println(tempdata [1]);
  113. Serial.println(depthdata [1]);
  114. Serial.println("");
  115. //myFile.println(phdata [1]);
  116. myFile.println(tempdata [1]);
  117. myFile.println(depthdata [1]);
  118. myFile.println("");
  119. myFile.close();
  120.  
  121. }
  122.  
  123.  
  124. if (sensortiming == 1000) {
  125. sensor1.read();
  126. sensor0.read();
  127.  
  128. Serial.print("Depth: ");
  129. Serial.print(sensor0.depth());
  130. Serial.println(" m");
  131. depthdata [depthpos] = sensor0.depth();
  132. depthpos = depthpos+1;
  133.  
  134. Serial.print("Temperature: ");
  135. Serial.print(sensor1.temperature());
  136. Serial.println(" deg C");
  137. tempdata [temppos]= sensor1.temperature();
  138. temppos = temppos+1;
  139.  
  140. Serial.println("");
  141. sensortiming = 0;
  142. }
  143.  
  144.  
  145. if (input_string_complete == true) {
  146. myserial.print(inputstring);
  147. myserial.print('\r');
  148. inputstring = "";
  149. input_string_complete = false;
  150. }
  151.  
  152. if (myserial.available() > 0) {
  153. char inchar = (char)myserial.read();
  154. sensorstring += inchar;
  155. if (inchar == '\r') {
  156. sensor_string_complete = true;
  157. }
  158. }
  159.  
  160. if (sensor_string_complete == true) {
  161. if (isdigit(sensorstring[0])) {
  162. pH = sensorstring.toFloat();
  163. }
  164. phdata [phpos] = pH;
  165. Serial.println(pH);
  166. sensorstring = "";
  167. sensor_string_complete = false;
  168. phpos = phpos+1;
  169. }
  170.  
  171. delay(1);
  172. sensortiming = sensortiming+1;
  173. relaytime = relaytime+0.001;
  174. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement