This is an old revision of the document!
Iordache Ionut-Iulian
Schemă electrica:
Interfata Web:
Interfata Mobile:
long duration; variable for the duration of sound wave travel float ultrasoundDistance; variable for the distance measurement String strArduinoToESP; string to transmit from Arduino to ESP8266 NODEMCU DHT dht(DHTPIN, DHTTYPE); initialize DHT11 sensor LiquidCrystal_I2C lcd(0x27, 16, 2); set the LCD address to 0x27 for a 16 chars and 2 line display TMRpcm tmrpcm; used by SD card to play sound SoftwareSerial espSerial(5, 6); RX & TX on pins 5 & 6 void setup() { Serial.begin(9600); espSerial.begin(9600);TODO
// Ultrasonic sensor logic
// Serial.println("Ultrasonic Sensor HC-SR04 Test");
pinMode(ultrasoundTrigger, OUTPUT); // Sets the trigPin as an OUTPUT
pinMode(ultrasoundEcho, INPUT); // Sets the echoPin as an INPUT
// Smoke sensor logic
//Serial.println(F("Smoke sensor test!"));
pinMode(smokeA0, INPUT);
// DHT11 sensor logic
//Serial.println(F("DHT11 sensor test!"));
dht.begin();
// LCD&I2C logic lcd.init(); // initialize the lcd lcd.backlight(); // Turn on backlight
// SDcard logic
tmrpcm.speakerPin = SPEAKER_PIN; // speaker ouput pin 9
if(!SD.begin(SD_ChipSelectPin)) { // check connection and return proper message
// Serial.println("SD fail");
return;
}
tmrpcm.setVolume(6); // set output volume on pin selected
tmrpcm.play("test.wav"); // play sound from file
delay(22000);
// Welcome message
lcd.setCursor(0, 0); // set cursor at top left
lcd.print(" Welcome Home "); // print string
lcd.setCursor(0, 1); // set cursor at top left
lcd.print(" SIR "); // print string
delay(3000);
}
void loop() {
delay(1500); // process to repeat every 3s (1.5s + 1.5s underneath)
// Serial.println("=========");
// Read from smoke sensor
int smokeVal = analogRead(smokeA0);
// Serial.print("Pin A0 smoke: ");
// Serial.print(smokeVal);
// Serial.println(" ppm");
// Read from temp&hum(DHT11) sensor
float h = dht.readHumidity();
float t = dht.readTemperature();
// Serial.print(F("Humidity: "));
// Serial.print(h);
// Serial.print(F(" % | Temperature: "));
// Serial.print(t);
// Serial.println(F(" C"));
// Clears the trigPin condition
digitalWrite(ultrasoundTrigger, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(ultrasoundTrigger, HIGH);
delayMicroseconds(10);
digitalWrite(ultrasoundTrigger, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(ultrasoundEcho, HIGH);
delay(1000);
// Calculating the distance
ultrasoundDistance = duration * 0.034 / 2; // Speed of sound wave divided by 2 (go and back)
// Displays the distance on the Serial Monitor
// Serial.print("Distance: ");
// Serial.print(distance);
// Serial.println(" cm");
// Print on LCD
lcd.setCursor(0, 0); // set cursor at top left
lcd.print("Hum: "); // print string
lcd.print(h); // humidity value
lcd.print(" % "); // unit
// ---
lcd.setCursor(0, 1); // set cursor at left space on 2nd row
lcd.print("Temp: "); // print string
lcd.print(t); // temperature value
lcd.print(" C "); // unit
// ---
delay(1500);
lcd.setCursor(0, 0); // set cursor at top left
lcd.print("Gas val: "); // print string
lcd.print(smokeVal); // gas value
lcd.print(" ppm"); // unit
// ---
lcd.setCursor(0, 1); // set cursor at left space on 2nd row
lcd.print("Dist: "); // print string
lcd.print(ultrasoundDistance); // distance value
lcd.print(" cm"); // unit
// Send data to ESP as a string strArduinoToESP = strArduinoToESP + smokeVal + "," + h + "," + t + "," + ultrasoundDistance; //TODO am h si t ca float si in ex sunt int-uri // Serial.println(strArduinoToESP); espSerial.println(strArduinoToESP); // transmit string to ESP8266 strArduinoToESP = ""; // reinitialize string value
}
//Arduino Side
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
08.05.2022 : Definitivare carcasa necesara proiect cat si testare amplificator realizat + bug fixing.
14.05.2022 : Consolidare idee comunicatie dintre cele 2 microcontrolere pana la interactiunea cu serverul Blynk.
15.05.2022 : Alegerea intre diverse scheme de interconectare a celor 2 microcontrolere dupa mai multe teste.
21.05.2022 : Cel mai urat moment atunci cand ceea ce mergea pe bredboard are interferente si un comportament nedefinit odata adaugat la proiectul final.
22.05.2022 : Completarea sectiunilor OCW.
22.05.2022 : Realizare schema electrica si modificare schema bloc.
22.05.2022 : Adaugarea de imagini sugestive cu privire la parcursul proiectului.
Resurse software:
Resurse hardware: