lnwshop logo
  • ตอบกระทู้
  • ตั้งกระทู้ใหม่
QUOTE 

นำข้อมูลที่แสดงค่าใน arduino ไปเป็นข้อมูลใส่ใน excel ทำอย่างไรครับ

ชัย
ชัย (Guest)
IP: 49.49.236.x
5 เดือนที่ผ่านมา

#include "DHT.h"

#include "Wire.h"

#include "SPI.h"  // not used here, but needed to prevent a RTClib compile error

#include "RTClib.h"

#include "Wire.h"

#include "BH1750.h"

#include "SPI.h"

#include "SD.h"

 

 

DHT dht;

RTC_DS3231 RTC;

BH1750 lightMeter;

 

const int analogIn = A0;

int mVperAmp = 185; // use 100 for 20A Module and 66 for 30A Module

int RawValue= 0;

int ACSoffset = 2500; 

double Voltage = 0;

double Amps = 0;

 

File myFile; // สร้างออฟเจก File สำหรับจัดการข้อมูล

const int chipSelect = 53;

 

 

void setup()

{

  Serial.begin(9600);

  Serial.println();

  Serial.println("Status\tHumidity (%)\tTemperature (C)\t(F)");

 

  dht.setup(2); // data pin 2

 

  Serial.begin(9600);

  Wire.begin();

  RTC.begin();

  RTC.adjust(DateTime(__DATE__, __TIME__));

 

  if (! RTC.isrunning()) {

    Serial.println("RTC is NOT running!");

    // following line sets the RTC to the date & time this sketch was compiled

    RTC.adjust(DateTime(__DATE__, __TIME__));

    

}

DateTime now = RTC.now();

RTC.setAlarm1Simple(23, 9);

 

  RTC.turnOnAlarm(1);

 

  if (RTC.checkAlarmEnabled(1)) {

    Serial.println("Alarm Enabled");

  }

Serial.begin(9600);

 

  lightMeter.begin();

 

  Serial.println("Running...");

 

 

 

Serial.begin(9600);

 

Serial.begin(9600);

   while (!Serial) {

    ; // รอจนกระทั่งเชื่อมต่อกับ Serial port แล้ว สำหรับ Arduino Leonardo เท่านั้น

  }

 

 

  Serial.print("Initializing SD card...");

  pinMode(SS, OUTPUT);

   

  if (!SD.begin(chipSelect)) {

    Serial.println("initialization failed!");

    return;

  }

  Serial.println("initialization done.");

  

  myFile = SD.open("test.txt", FILE_WRITE); // เปิดไฟล์ที่ชื่อ test.txt เพื่อเขียนข้อมูล โหมด FILE_WRITE

  

  // ถ้าเปิดไฟล์สำเร็จ ให้เขียนข้อมูลเพิ่มลงไป

  if (myFile) {

    Serial.print("Writing to test.txt...");

    myFile.println("testing 1, 2, 3."); // สั่งให้เขียนข้อมูล

    myFile.close(); // ปิดไฟล์

    Serial.println("done.");

  } else {

    // ถ้าเปิดไฟลืไม่สำเร็จ ให้แสดง error 

    Serial.println("error opening test.txt");

  }

  

  // เปิดไฟล์เพื่ออ่าน

  myFile = SD.open("test.txt"); // สั่งให้เปิดไฟล์ชื่อ test.txt เพื่ออ่านข้อมูล

  if (myFile) {

    Serial.println("test.txt:");

    // อ่านข้อมูลทั้งหมดออกมา

    while (myFile.available()) {

    Serial.write(myFile.read());

    }

    myFile.close(); // เมื่ออ่านเสร็จ ปิดไฟล์

  } else {

  // ถ้าอ่านไม่สำเร็จ ให้แสดง error 

    Serial.println("error opening test.txt");

  }

 

}

 

void loop()

{

  delay(dht.getMinimumSamplingPeriod());

 

  float humidity = dht.getHumidity(); // ดึงค่าความชื้น

  float temperature = dht.getTemperature(); // ดึงค่าอุณหภูมิ

 

  Serial.print(dht.getStatusString());

  Serial.print("\t");

  Serial.print(humidity, 1);

  Serial.print("\t\t");

  Serial.print(temperature, 1);

  Serial.print("\t\t");

  Serial.println(dht.toFahrenheit(temperature), 1);

 

DateTime now = RTC.now();

  Serial.print(now.year(), DEC);

  Serial.print('/');

  Serial.print(now.month(), DEC);

  Serial.print('/');

  Serial.print(now.day(), DEC);

  Serial.print(' ');

  Serial.print(now.hour(), DEC);

  Serial.print(':');

  Serial.print(now.minute(), DEC);

  Serial.print(':');

  Serial.print(now.second(), DEC);

 

  if (RTC.checkIfAlarm(1)) {

    Serial.println("Alarm Triggered");

  }

 

  Serial.println();

  Serial.print("Tempeature = ");

  Serial.print(RTC.getTemperature()); // คำสั่งดึงอุณหภูมิออกมาแสดง

  Serial.println(" C");

 

  Serial.println("By ArduinoALL");

  Serial.println();

  delay(1000);

 

uint16_t lux = lightMeter.readLightLevel();

 

  Serial.print("Light: ");

 

  Serial.print(lux);

 

  Serial.println(" lx");

 

  delay(2000);

 

 

RawValue = analogRead(analogIn);

 Voltage = (RawValue / 1024.0) * 5000; // Gets you mV

 Amps = ((Voltage - ACSoffset) / mVperAmp);

 

 

 Serial.print("Raw Value = " ); // shows pre-scaled value 

 Serial.print(RawValue); 

 Serial.print("\t mV = "); // shows the voltage measured 

 Serial.print(Voltage,3); // the '3' after voltage allows you to display 3 digits after decimal point

 Serial.print("\t Amps = "); // shows the voltage measured 

 Serial.println(Amps,3); // the '3' after voltage allows you to display 3 digits after decimal point

 delay(1000); 

 

 }

QUOTE 
ความคิดเห็นที่ #1
เจ้าของร้าน
เจ้าของร้าน
5 เดือนที่ผ่านมา

เขียนข้อมูลลง sd card ในรูปแบบ เป็น คอมม่า แล้วเซฟเป็นนามสกุล .CSV

ไฟล์ excell จะสามารถเปิดได้ ตัวอย่างดังรูปนี้ครับ

http://www.technointrend.com/csv-file/

1
แสดงความคิดเห็นที่ 1-1 จากทั้งหมด 1 ความคิดเห็น
ข้อความ
ชื่อผู้โพส
ข้อมูลสำหรับการติดต่อกลับ (ไม่เปิดเผย เห็นเฉพาะเจ้าของร้าน)
อีเมล
เบอร์มือถือ
  • ตอบกระทู้

หมวดหมู่สินค้า

สมาชิก Arduino All

เข้าสู่ระบบด้วย
เข้าสู่ระบบ
สมัครสมาชิก

ยังไม่มีบัญชีเทพ สร้างบัญชีใหม่ ไม่เกิน 5 นาที
สมัครสมาชิก (ฟรี)

Arduino All ขายดี

รหัสสินค้า A015
275.00 บาท
  • สั่งซื้อ
รหัสสินค้า A233
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A115
10.00 บาท
  • สั่งซื้อ
รหัสสินค้า A238
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A097
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A014
90.00 บาท
  • สั่งซื้อ
รหัสสินค้า A237
4.00 บาท
  • สั่งซื้อ
รหัสสินค้า A474
5.00 บาท
  • สั่งซื้อ
รหัสสินค้า A225
5.00 บาท
  • สั่งซื้อ
Go to Top