This is an old revision of the document!
Iordache Ionut-Iulian
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: