Arduino Serial Comm IOT
user_8125766783
plain_text
3 years ago
2.7 kB
4
Indexable
#include <SoftwareSerial.h> SoftwareSerial ArduinoUno(2,3); // Serial Communication //WEIGHT SENSOR #include <HX711.h> HX711 scale; #define DOUT 12 #define CLK 11 int rbutton = 10; // this button will be used to reset the scale to 0. float weight; float calibration_factor = 419640; //VOLTAGE SENSOR int Vsensor = A0; int Initial_analogread = 0; // Just to check initial analog read for sensor accuracy float vout = 0.0; float vin = 0.0; float R1 = 30000; float R2 = 7500; int value = 0; float sdata1 = 0; // Voltage sensor data float sdata2 = 0; // Weight sensor data const long sensor_delay = 1000; // fixed all sensor delays (1 second) long rememberTime=0; String cdata; // complete data, consisting of sensors values void setup() { Serial.begin(115200); ArduinoUno.begin(9600); pinMode(rbutton, INPUT_PULLUP); Serial.println("HX711 calibration sketch"); Serial.println("Remove all weight from scale"); Serial.println("After readings begin, place known weight on scale"); Serial.println("Press + or a to increase calibration factor"); Serial.println("Press - or z to decrease calibration factor"); scale.begin(DOUT, CLK ); scale.set_scale(); scale.tare(); //Reset the scale to 0 long zero_factor = scale.read_average(); //Get a baseline reading Serial.print("Zero factor: "); //This can be used to remove the need to tare the scale. Useful in permanent scale projects. Serial.println(zero_factor); pinMode(Vsensor, INPUT); // } void loop() { Voltage_Sensor(); Weight_Sensor(); sdata1 = vin; // Voltage Sensor Value sdata2 = weight; // Weight Sensor Value cdata = cdata + sdata1+","+sdata2; //+","+sdata3; comma will be used a delimeter if( (millis()- rememberTime) >= sensor_delay){ Serial.println(cdata); ArduinoUno.println(cdata); rememberTime=millis(); // remember Current millis() time } cdata = ""; } void Voltage_Sensor() { // Voltage Sensor value = analogRead(Vsensor); //Serial.println(value); Just to check initial analog reading for Voltage sensor accuracy vout = ((value-Initial_analogread) * 4.85) / 1023.0; //4.85V reading for sensor VCC vin = vout / (R2/(R1+R2)); } void Weight_Sensor() { // Weight Sensor scale.set_scale(calibration_factor); //Adjust to this calibration factor weight = scale.get_units(5); }
Editor is loading...