Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //******** Libraries ***********
- #include <SparkFun_Qwiic_Relay.h>
- #include <U8glib.h>
- #include "SparkFun_Qwiic_Relay.h"
- #include "U8glib.h"
- #include <Wire.h>
- #include <SoftwareSerial.h>
- #define rx 2
- #define tx 3
- #include "TSYS01.h"
- #include "MS5837.h"
- #define RELAY_ADDR 0x18
- #include <SPI.h>
- #include <SD.h>
- //*******************************
- TSYS01 sensor1;
- MS5837 sensor0;
- SoftwareSerial myserial(rx, tx);
- Qwiic_Relay relay(RELAY_ADDR);
- File myFile;
- int temppos = 0;
- int depthpos = 0;
- int phpos = 0;
- float depthdata [15] = {};
- float tempdata [15] = {};
- float phdata [15] = {};
- float relaytime = 0;
- int sensortiming = 0;
- String inputstring = "";
- String sensorstring = "";
- boolean input_string_complete = false;
- boolean sensor_string_complete = false;
- float pH;
- void setup() {
- SD.remove("Output.txt");
- Serial.begin(9600);
- myserial.begin(9600);
- inputstring.reserve(10);
- sensorstring.reserve(30);
- Wire.begin();
- sensor1.init();
- while (!sensor0.init()) {
- Serial.println("Init failed!");
- Serial.println("Are SDA/SCL connected correctly?");
- Serial.println("Blue Robotics Bar30: White=SDA, Green=SCL");
- Serial.println("\n\n\n");
- delay(5000);
- }
- if(!relay.begin()) {
- Serial.println("Check connections to Qwiic Relay.");
- } else {
- Serial.println("Ready to flip some switches.");
- float version = relay.singleRelayVersion();
- Serial.print("Firmware Version: ");
- Serial.println(version);
- }
- Serial.print("Initializing SD card...");
- if (!SD.begin(4)) {
- Serial.println("initialization failed!");
- while (1);
- }
- Serial.println("initialization done.");
- sensor0.setModel(MS5837::MS5837_30BA);
- sensor0.setFluidDensity(997); // kg/m^3 (freshwater, 1029 for seawater)
- }
- void serialEvent() {
- inputstring = Serial.readStringUntil(13);
- input_string_complete = true;
- }
- void loop() {
- if (relaytime >= 10) {
- relay.turnRelayOn();
- delay(1000);
- relay.turnRelayOff();
- delay(1000);
- relay.turnRelayOn();
- delay(1000);
- relay.turnRelayOff();
- relaytime = -10; //The time it takes for the relay to execute again (in seconds)
- myFile = SD.open("Output.txt", FILE_WRITE);
- //Serial.println(phdata [1]);
- Serial.println(tempdata [1]);
- Serial.println(depthdata [1]);
- Serial.println("");
- //myFile.println(phdata [1]);
- myFile.println(tempdata [1]);
- myFile.println(depthdata [1]);
- myFile.println("");
- myFile.close();
- }
- if (sensortiming == 1000) {
- sensor1.read();
- sensor0.read();
- Serial.print("Depth: ");
- Serial.print(sensor0.depth());
- Serial.println(" m");
- depthdata [depthpos] = sensor0.depth();
- depthpos = depthpos+1;
- Serial.print("Temperature: ");
- Serial.print(sensor1.temperature());
- Serial.println(" deg C");
- tempdata [temppos]= sensor1.temperature();
- temppos = temppos+1;
- Serial.println("");
- sensortiming = 0;
- }
- if (input_string_complete == true) {
- myserial.print(inputstring);
- myserial.print('\r');
- inputstring = "";
- input_string_complete = false;
- }
- if (myserial.available() > 0) {
- char inchar = (char)myserial.read();
- sensorstring += inchar;
- if (inchar == '\r') {
- sensor_string_complete = true;
- }
- }
- if (sensor_string_complete == true) {
- if (isdigit(sensorstring[0])) {
- pH = sensorstring.toFloat();
- }
- phdata [phpos] = pH;
- Serial.println(pH);
- sensorstring = "";
- sensor_string_complete = false;
- phpos = phpos+1;
- }
- delay(1);
- sensortiming = sensortiming+1;
- relaytime = relaytime+0.001;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement