Advertisement
Guest User

Untitled

a guest
Aug 19th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SparkFunDS1307RTC.h>
  2. #include <SPI.h>
  3. #include <SD.h>
  4. #include <Wire.h>
  5. #include <Arduino.h>
  6. #define OUTPUT_MIN 1638.4        // 1638 zliczen (10% z 2^14)
  7. #define OUTPUT_MAX 14745.6       // 14745 zliczen (90% z 2^14)
  8. #define PRESSURE_MIN -0.100        // -100mbar
  9. #define PRESSURE_MAX 0.100   // 100 mbar (wynik w mbarach)
  10. #define  MEAN_NUMBER 3
  11. #define  MAX_PM   0
  12. #define  MIN_PM   32767
  13.  
  14. uint8_t sensor_on_off = 9;
  15. float realTemp=0;
  16. String name_of_file;
  17. File myFile;
  18.  
  19. int incomingByte = 0;
  20. const int MAX_FRAME_LEN = 64;
  21. char frameBuf[MAX_FRAME_LEN];
  22. int detectOff = 0;
  23. int frameLen = MAX_FRAME_LEN;
  24. bool inFrame = false;
  25. char printbuf[256];
  26. unsigned int calcChecksum = 0;
  27. unsigned int pm1_0=0, pm2_5=0, pm10_0=0;
  28. unsigned int tmp_max_pm1_0, tmp_max_pm2_5, tmp_max_pm10_0;
  29. unsigned int tmp_min_pm1_0, tmp_min_pm2_5, tmp_min_pm10_0;
  30. byte i=0;
  31.  
  32. struct PMS7003_framestruct {
  33.     byte  frameHeader[2];
  34.     unsigned int  frameLen = MAX_FRAME_LEN;
  35.     unsigned int  concPM1_0_CF1;
  36.     unsigned int  concPM2_5_CF1;
  37.     unsigned int  concPM10_0_CF1;
  38.     unsigned int  checksum;
  39. } thisFrame;
  40.  
  41.  
  42. void setup()
  43. {
  44.   Serial.begin(9600);
  45.   pinMode(53,OUTPUT); //uruchamiamy chip_select SPI
  46.   SPI.begin(); // inicjalizujemy SPI
  47.   pinMode(2,OUTPUT); //pin od multiplekser (LOW-wlaczona karta, HIGH-wlaczony manometr)
  48.   digitalWrite(2,LOW); // uruchamiamy karte
  49.   SD.begin(SPI_QUARTER_SPEED, 4); // inicjalizujemy karte
  50.   pinMode(sensor_on_off, OUTPUT); //ustawiamy pin do obslugi czujnika
  51.   digitalWrite(sensor_on_off, HIGH); // wylaczamy czujnik
  52.   rtc.begin();
  53.   rtc.writeSQW(SQW_SQUARE_1);
  54.   nof(); // funkcja do ustalania nazwy pliku zapisu (nazwa pliku to godzina rozpoczecia pomiaru)
  55. }
  56.  
  57.  
  58.  
  59. void loop()
  60. {
  61.   float val1 = 1.0 * ((float)readSensor(sensor_on_off) - OUTPUT_MIN) * (PRESSURE_MAX - PRESSURE_MIN) / (OUTPUT_MAX - OUTPUT_MIN) + PRESSURE_MIN;  //obliczamy wartosc cisnienia
  62.   if(abs(val1)<=0.001){
  63.     val1=0.0;          // usuwam sytuację gdy jest wyświetlane "-0.00"
  64.     }
  65.   PMS7003(); // funkcja do obliczania pylow
  66.   printTime(); // funkcja do zapisu na karcie aktualnej daty
  67.   print_value(String(val1),String(realTemp),printbuf); //zapis na karcie
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement