Untitled

 avatar
unknown
plain_text
22 days ago
3.5 kB
2
Indexable
#include <Arduino.h>
#include <WiFi.h>
#include "SparkFun_LSM6DSV16X.h"
#include <Wire.h>

#define WIFI_SSID "ESP32_Network"      // ESP32'nin oluşturacağı ağ adı
#define WIFI_PASSWORD "123456789"      // Ağ şifresi

String x1s, y1s, z1s, x2s, y2s, z2s, adc1s, adc2s;

SparkFun_LSM6DSV16X myLSM;
sfe_lsm_data_t accelData;
sfe_lsm_data_t gyroData;

WiFiServer server(80);  // HTTP server için port 80

void setup() {
  Serial.begin(115200);
  Wire.begin(19, 20);  // I2C pinleri
  pinMode(1, INPUT);
  pinMode(2, INPUT);

  // LSM6DSV16X sensörünü başlat
  if (!myLSM.begin()) {
    Serial.println("Did not begin, check your wiring and/or I2C address!");
    while (1);
  }
  
  myLSM.deviceReset();
  while (!myLSM.getDeviceReset()) {
    delay(1);
  }
  
  Serial.println("Board has been Reset.");
  Serial.println("Applying settings.");
  myLSM.enableBlockDataUpdate();
  myLSM.setAccelDataRate(LSM6DSV16X_ODR_AT_7Hz5);
  myLSM.setAccelFullScale(LSM6DSV16X_16g);
  myLSM.setGyroDataRate(LSM6DSV16X_ODR_AT_15Hz);
  myLSM.setGyroFullScale(LSM6DSV16X_2000dps);
  myLSM.enableFilterSettling();
  myLSM.enableAccelLP2Filter();
  myLSM.setAccelLP2Bandwidth(LSM6DSV16X_XL_STRONG);
  myLSM.enableGyroLP1Filter();
  myLSM.setGyroLP1Bandwidth(LSM6DSV16X_GY_ULTRA_LIGHT);
  Serial.println("Ready.");

  // ESP32 Wi-Fi ağını başlat
  WiFi.softAP(WIFI_SSID, WIFI_PASSWORD);  // Wi-Fi ağını başlat
  IPAddress IP = WiFi.softAPIP();
  Serial.print("ESP32 Wi-Fi ağı başlatıldı. IP adresi: ");
  Serial.println(IP);

  // Web server'ı başlat
  server.begin();
}

void loop() {
  // Sensör verilerini oku
  if (myLSM.checkStatus()) {
    myLSM.getAccel(&accelData);
    myLSM.getGyro(&gyroData);

    x1s = String(accelData.xData);
    y1s = String(accelData.yData);
    z1s = String(accelData.zData);
    x2s = String(gyroData.xData);
    y2s = String(gyroData.yData);
    z2s = String(gyroData.zData);
    adc1s = String(analogRead(1));  // A0 pininden okuma
    adc2s = String(analogRead(2));  // A1 pininden okuma
  }

  // Bağlantı kontrol et ve veri gönder
  WiFiClient client = server.available();
  if (client) {
    Serial.println("Yeni bir istemci bağlandı!");
    String request = "";

    // İstemciyi dinle ve isteklerini al
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        request += c;
        if (c == '\n') {
          break;
        }
      }
    }

    // Verileri JSON formatında oluştur
    String data = "{";
    data += "\"A0\":\"" + adc1s + "\",";
    data += "\"A1\":\"" + adc2s + "\",";
    data += "\"accelx\":\"" + x1s + "\",";
    data += "\"accely\":\"" + y1s + "\",";
    data += "\"accelz\":\"" + z1s + "\",";
    data += "\"gyrox\":\"" + x2s + "\",";
    data += "\"gyroy\":\"" + y2s + "\",";
    data += "\"gyroz\":\"" + z2s + "\",";
    
    // Zaman damgası ekle
    data += "\"Ts\":" + String(millis()) + "}";
    
    // HTTP yanıtı gönder
    client.println("HTTP/1.1 200 OK");
    client.println("Content-Type: application/json");
    client.println("Connection: close");
    client.println();
    client.println(data);  // JSON verilerini gönder

    // Bağlantıyı kes
    client.stop();
    Serial.println("İstemci bağlantısı kesildi.");
  }

  // Bu döngüde delay yok, sürekli olarak veriler güncellenir.
}
Leave a Comment