#include "kutuphane.h" #include #include unsigned long zaman = 0; unsigned long prev_zaman = 0; static uint32_t last_message_sent_time = 0; float cTemp; float fTemp; float humidity; #define Addr 0x44 #define ldrPin 39 #define I2C_SCL 15 #define I2C_SDA 14 Adafruit_SH1106 display(I2C_SDA,I2C_SCL); bool kapi_deger; #define ntcPin 35 int Vo; float ldrDeger; float ntcDeger; float R1 = 10000; float logR2, R2, T; float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07; static const unsigned char PROGMEM targe[] = { 0x00}; void ntc_oku(){ int V1 = analogRead(ntcPin); Vo = map(V1, 0, 4096,0,1024); R2 = R1 * (1023.0 / (float)Vo - 1.0); logR2 = log(R2); T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); T = T - 273.15; ntcDeger=T; } void sht_sicaklik_nem_oku(){ unsigned int data[6]; Wire.beginTransmission(Addr); Wire.write(0x2C); Wire.write(0x06); Wire.endTransmission(); delay(500); Wire.requestFrom(Addr, 6); if (Wire.available() == 6) { data[0] = Wire.read(); data[1] = Wire.read(); data[2] = Wire.read(); data[3] = Wire.read(); data[4] = Wire.read(); data[5] = Wire.read(); } cTemp = ((((data[0] * 256.0) + data[1]) * 175) / 65535.0) - 45; fTemp = (cTemp * 1.8) + 32; humidity = ((((data[3] * 256.0) + data[4]) * 100) / 65535.0); } void ldr_oku(){ ldrDeger = analogRead (ldrPin); } void kapi_oku() { kapi_deger =digitalRead(36); } void mqtt_sensor_yaz() { String mesaj_sensor; StaticJsonDocument<1024> doc1; JsonObject doc1_0 = doc1.createNestedObject(); doc1_0["DeviceIdentity"] = DeviceIdentity; doc1_0["CardAddress"] = (String)cihaz_id; doc1_0["Type"] = 1; doc1_0["InputNo"] = 1; doc1_0["Value"] = (String)kapi_deger; JsonObject doc1_1 = doc1.createNestedObject(); doc1_1["DeviceIdentity"] = DeviceIdentity; doc1_1["CardAddress"] =(String) cihaz_id; doc1_1["Type"] = 1; doc1_1["InputNo"] = 2; doc1_1["Value"] = (String)cTemp; JsonObject doc1_2 = doc1.createNestedObject(); doc1_2["DeviceIdentity"] = DeviceIdentity; doc1_2["CardAddress"] = (String)cihaz_id; doc1_2["Type"] = 1; doc1_2["InputNo"] = 3; doc1_2["Value"] = (String)humidity; JsonObject doc1_3 = doc1.createNestedObject(); doc1_3["DeviceIdentity"] = DeviceIdentity; doc1_3["CardAddress"] = (String)cihaz_id; doc1_3["Type"] = 0; doc1_3["InputNo"] = 1; doc1_3["Value"] = (String)ldrDeger; JsonObject doc1_4 = doc1.createNestedObject(); doc1_4["DeviceIdentity"] = DeviceIdentity; doc1_4["CardAddress"] = (String)cihaz_id; doc1_4["Type"] = 0; doc1_4["InputNo"] = 2; doc1_4["Value"] = (String)ntcDeger; serializeJson(doc1, mesaj_sensor); client.publish("sensor", mesaj_sensor.c_str()); } void setup() { pinMode(36,INPUT); Serial.begin(115200); Wire.begin(I2C_SDA, I2C_SCL); display.begin(SH1106_SWITCHCAPVCC, 0x3C); display.clearDisplay(); display.display(); display.drawBitmap(0, 0, targe, 128, 64, 1); display.display(); delay(2000); display.clearDisplay(); display.display(); outputYapilandir(); wifiBaslat(); canYapilandir(); discord_mesaj_gonder("Cihaz bağlandı, yazılım version: "+ Software_Version); mqttSet(); mqttBaglan(); mqttSubscribe(); } void loop() { ntc_oku(); ldr_oku(); sht_sicaklik_nem_oku(); ethernet_kontrol(); client.loop(); zaman = millis(); if (!message_id_sent) { if(millis() - last_message_sent_time > DELAY_TIME) { http_kaydet_fonk(cihaz_id,cihazDInput,cihazDOutput,cihazAInput,cihazAOutput); } last_message_sent_time = millis(); } if (zaman - prev_zaman > 1000 ) { mqtt_sensor_yaz() ; mqtt_yaz(); display.clearDisplay(); display.setTextSize(1,2); display.setTextColor(WHITE); display.setCursor(0,0); //x,y display.println("Sicaklik"); display.setCursor(80,0); display.println(cTemp); display.setCursor(0,15); display.println("Nem"); display.setCursor(0,30); display.println("Sicaklik s2"); display.setCursor(80,15); display.println(humidity); display.setCursor(80,30); display.println(ntcDeger); display.setCursor(0,45); display.println("ISIK"); display.setCursor(80,45); display.println(ldrDeger); display.display(); prev_zaman = millis(); } int t =0; for(int i = 0;i