Advertisement
Guest User

Untitled

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