Jump to content

Towhid

Members
  • Content Count

    25
  • Joined

  • Last visited

About Towhid

  • Rank
    Member

Profile Information

  • Location
    Germany
  1. i am using energia with msp432p401r launchpad...i have interfaced a sensor which is bosch bme 280 via i2c with the lauchpad and have showed the output via sharp lcd boosterpack...now i have to store the data which is temperature, pressure and humidity in a sd card ...can anyone help pleases ?
  2. Hello i have to add an external memory card (sd card ) with my msp432 launchpad ..i am using energia..I have interfaced an environmental sensor and have showed the output via sharp lcd boosterpack..now i have to store the data which is temperature , pressure and humidity to the sd card ...I have no clue how to do it ...can anyone help ??
  3. Hello I have interfaced Bosch BME 280 sensor via i2c with msp432p401r launchpad..and have displayed the output via 430 sharp96 lcd boosterpack..now I have to save the sensor output data to the internal memory... i just need to store temperature,pressure and humidity data ever 60 seconds..can anyone help ??
  4. @@Rei Vilo i want to store it on flash memory..so that i can read the data even after the device is powered off
  5. @@Rei Vilo I am doing a project under the supervision of a professor ...according to him first i should store the data in the internal memory then try storing it to a sd carad ...but do u think it would be easier storing the data in the sd card rather than storing it to the internal memory??
  6. I have been able to show my sensor output via the lcd and the code is given below : #include <Wire.h> #include "SPI.h" #include "OneMsTaskTimer.h" #include "LCD_SharpBoosterPack_SPI.h" #define BME280_ADDRESS 0x76 unsigned long int hum_raw,temp_raw,pres_raw; signed long int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; // Variables LCD_SharpBoosterPack_SPI myScreen; uint8_t myOrientation = 3; uint16_t myCount = 0; void setup() { uint8_t osrs_t = 1; //Temperature oversampling x 1 uint8_t osrs_p = 1; //Pressure oversampling x 1 uint8_t osrs_h = 1; //Humidity oversampling x 1 uint8_t mode = 3; //Normal mode uint8_t t_sb = 5; //Tstandby 1000ms uint8_t filter = 0; //Filter off uint8_t spi3w_en = 0; //3-wire SPI Disable uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | mode; uint8_t config_reg = (t_sb << 5) | (filter << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; Serial.begin(9600); Wire.begin(); writeReg(0xF2,ctrl_hum_reg); writeReg(0xF4,ctrl_meas_reg); writeReg(0xF5,config_reg); readTrim(); myScreen.flush(); //LCD myScreen.begin(); myScreen.clearBuffer(); myScreen.setFont(1); myScreen.setOrientation(myOrientation); myScreen.text(10, 10, "TEMP : "); // myScreen.text(10, 10, String(temp_act)); myScreen.flush(); // } void loop() { double temp_act = 0.0, press_act = 0.0,hum_act=0.0; signed long int temp_cal; unsigned long int press_cal,hum_cal; readData(); temp_cal = calibration_T(temp_raw); press_cal = calibration_P(pres_raw); hum_cal = calibration_H(hum_raw); temp_act = (double)temp_cal / 100.0; press_act = (double)press_cal / 100.0; hum_act = (double)hum_cal / 1024.0; Serial.print("TEMP : "); Serial.print(temp_act); Serial.print(" DegC PRESS : "); Serial.print(press_act); Serial.print(" hPa HUM : "); Serial.print(hum_act); Serial.println(" %"); myScreen.setFont(0); myScreen.setCharXY(10, 10); myScreen.println(" TEMP : "); myScreen.println(temp_act, DEC); myScreen.println(" DegC : "); myScreen.println(press_act, DEC); myScreen.println(" hPa HUM : "); myScreen.println(hum_act, DEC); myScreen.flush(); // myScreen.setOrientation(myOrientation); // myScreen.clearBuffer(); // myScreen.setFont(0); // myScreen.text(10, 10, " TEMP : "); // myScreen.text(10, 20, String(temp_act),); // myScreen.text(10, 30, " DegC PRESS : "); // myScreen.text(10, 40, String(press_act)); // myScreen.text(10, 50, " hPa HUM : "); // myScreen.text(10, 60, String(hum_act)); // myScreen.flush(); delay(1000); } void readTrim() { uint8_t data[32],i=0; Wire.beginTransmission(BME280_ADDRESS); Wire.write(0x88); Wire.endTransmission(); Wire.requestFrom(BME280_ADDRESS,24); while(Wire.available()){ data = Wire.read(); i++; } Wire.beginTransmission(BME280_ADDRESS); Wire.write(0xA1); Wire.endTransmission(); Wire.requestFrom(BME280_ADDRESS,1); data = Wire.read(); i++; Wire.beginTransmission(BME280_ADDRESS); Wire.write(0xE1); Wire.endTransmission(); Wire.requestFrom(BME280_ADDRESS,7); while(Wire.available()){ data = Wire.read(); i++; } dig_T1 = (data[1] << 8) | data[0]; dig_T2 = (data[3] << 8) | data[2]; dig_T3 = (data[5] << 8) | data[4]; dig_P1 = (data[7] << 8) | data[6]; dig_P2 = (data[9] << 8) | data[8]; dig_P3 = (data[11]<< 8) | data[10]; dig_P4 = (data[13]<< 8) | data[12]; dig_P5 = (data[15]<< 8) | data[14]; dig_P6 = (data[17]<< 8) | data[16]; dig_P7 = (data[19]<< 8) | data[18]; dig_P8 = (data[21]<< 8) | data[20]; dig_P9 = (data[23]<< 8) | data[22]; dig_H1 = data[24]; dig_H2 = (data[26]<< 8) | data[25]; dig_H3 = data[27]; dig_H4 = (data[28]<< 4) | (0x0F & data[29]); dig_H5 = (data[30] << 4) | ((data[29] >> 4) & 0x0F); dig_H6 = data[31]; } void writeReg(uint8_t reg_address, uint8_t data) { Wire.beginTransmission(BME280_ADDRESS); Wire.write(reg_address); Wire.write(data); Wire.endTransmission(); } void readData() { int i = 0; uint32_t data[8]; Wire.beginTransmission(BME280_ADDRESS); Wire.write(0xF7); Wire.endTransmission(); Wire.requestFrom(BME280_ADDRESS,8); while(Wire.available()){ data = Wire.read(); i++; } pres_raw = (data[0] << 12) | (data[1] << 4) | (data[2] >> 4); temp_raw = (data[3] << 12) | (data[4] << 4) | (data[5] >> 4); hum_raw = (data[6] << 8) | data[7]; } signed long int calibration_T(signed long int adc_T) { signed long int var1, var2, T; var1 = ((((adc_T >> 3) - ((signed long int)dig_T1<<1))) * ((signed long int)dig_T2)) >> 11; var2 = (((((adc_T >> 4) - ((signed long int)dig_T1)) * ((adc_T>>4) - ((signed long int)dig_T1))) >> 12) * ((signed long int)dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; return T; } unsigned long int calibration_P(signed long int adc_P) { signed long int var1, var2; unsigned long int P; var1 = (((signed long int)t_fine)>>1) - (signed long int)64000; var2 = (((var1>>2) * (var1>>2)) >> 11) * ((signed long int)dig_P6); var2 = var2 + ((var1*((signed long int)dig_P5))<<1); var2 = (var2>>2)+(((signed long int)dig_P4)<<16); var1 = (((dig_P3 * (((var1>>2)*(var1>>2)) >> 13)) >>3) + ((((signed long int)dig_P2) * var1)>>1))>>18; var1 = ((((32768+var1))*((signed long int)dig_P1))>>15); if (var1 == 0) { return 0; } P = (((unsigned long int)(((signed long int)1048576)-adc_P)-(var2>>12)))*3125; if(P<0x80000000) { P = (P << 1) / ((unsigned long int) var1); } else { P = (P / (unsigned long int)var1) * 2; } var1 = (((signed long int)dig_P9) * ((signed long int)(((P>>3) * (P>>3))>>13)))>>12; var2 = (((signed long int)(P>>2)) * ((signed long int)dig_P8))>>13; P = (unsigned long int)((signed long int)P + ((var1 + var2 + dig_P7) >> 4)); return P; } unsigned long int calibration_H(signed long int adc_H) { signed long int v_x1; v_x1 = (t_fine - ((signed long int)76800)); v_x1 = (((((adc_H << 14) -(((signed long int)dig_H4) << 20) - (((signed long int)dig_H5) * v_x1)) + ((signed long int)16384)) >> 15) * (((((((v_x1 * ((signed long int)dig_H6)) >> 10) * (((v_x1 * ((signed long int)dig_H3)) >> 11) + ((signed long int) 32768))) >> 10) + (( signed long int)2097152)) * ((signed long int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - (((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((signed long int)dig_H1)) >> 4)); v_x1 = (v_x1 < 0 ? 0 : v_x1); v_x1 = (v_x1 > 419430400 ? 419430400 : v_x1); return (unsigned long int)(v_x1 >> 12); }
  7. i want to store 3 data which are temperature, pressure,and humidity ..and i want to store it every 60 seconds ,,i want to read the data even after the device is powered off
  8. Hello I have interfaced Bosch BME 280 sensor via i2c with msp432p401r launchpad..and have displayed the output via 430 sharp96 lcd boosterpack..now I have to save the sensor output data to the internal memory...can anyone help ??
  9. this is the code that i have tried ..but no output on the lcd ... #include <Wire.h> #include "cactus_io_BME280_I2C.h" #include "SPI.h" #include "OneMsTaskTimer.h" #include "LCD_SharpBoosterPack_SPI.h" // Create BME280 object BME280_I2C bme; // I2C // Variables LCD_SharpBoosterPack_SPI myScreen; uint8_t k = 0; uint16_t count = 0; void setup() { Serial.begin(9600); Serial.println("Bosch BME280 Pressure - Humidity - Temp Sensor | cactus.io"); if (!bme.begin(0X76)) { Serial.println("Could not find a valid BME280 sensor, check wiring!"); while (1); myScreen.begin(); myScreen.setFont(1); //myScreen.text(10, 10, "bme.getTemperature_C()); Serial.print(" *C\t"!"); myScreen.flush(); delay(1000); myScreen.clear(); } Serial.println("Pressure\tHumdity\t\tTemp\ttTemp"); } void loop() { double pressure_t = bme.getPressure() / 100.0F; //save the pressure value to a variable double humidity_t = bme.getHumidity(); double temp_t = bme.getTemperature_C(); Serial.print(pressure_t); Serial.print(" mb\t"); // Print the pressure in serial Serial.print(humidity_t); Serial.print(" %\t\t"); Serial.print(temp_t); Serial.print(" *C\t"); char buf[32]; dtostrf(pressure_t,3,2,buf); String pres = String(buf) ; myScreen.clearBuffer(); for(int i = 0 ; i < pres.length() ; i++) { myScreen.text(k, 10, pres); //this should print the pressure in screen. } k++; myScreen.flush(); delay(5000); //random delay myScreen.println(temp_t,DEC); //this should print the temp.. myScreen.flush(); delay(5000); //random delay myScreen.clear(); } can anyone help please?
  10. @@energia ,yes i have tried the example ..it works fine
  11. yes ..i have installed the xds driver...energia 17 works fine ..but i have problem running energia 16
  12. Hello I have installed energia 16, i tried to run the example code with my launchpad msp432..but i get a error which says..the serial port does not exist or your board is not connected ..can anyone come up with a solution..
  13. Towhid

    Energia 16

    where can i download energia16?
  14. hello ...i am very new to this world...i have to interface bosch bme280 with msp432 launchpad...i have done 12c interface and have been able to see the output in serial monitor of energia ...i have a sharp lcd boosterpack and have to show the sensor output there but dont know how ..can anyone help ??
  15. is it possible to show the output of this sensor throug sharp lcd boosterpack ?
×
×
  • Create New...