Arduinoda yardım istiyen gelebilir

Esp8266 senin bağladığın tüm sensörleri ve röleleri kontrol edecek kadar hızlıdır, yeteri kadar giriş çıkış pini var mıdır bilmiyorum. İkincil bir arduino bağlamak sadece senin için işleri karmaşık hale getirir. Çalıştıramadığın bylnk kodunu paylaşırsan düzenleme yapabiliriz belki.
 
Arkadaşlar lütfen yardım..
Bir tane sera yazılımın var..arduino r3 uno+dht11+mq135+rtc modülü+4lu relay bağlı..
Nem belli orana düşünce role açıyor
CO2 yükselince 2. Role açıyor
Belli bir saatte 3.4.role açıyor
Yazılım stabil çalışıyor..
Ama esp 8266 kullanıp bylink kullanmak isteyince sıkıntı çekiyorum..program yavaşladı,esp bulunamadı falan.
Bunun yerine8266 nodemcu kullanıp..
Uno yu yazılım için -
Nudemcu yuda internete bağlanmak ve bylink için ayrı kullanmak istiyorum..
Ama uno ya bağlı sensörler den bilgileri bylink de nasıl göreceğim..bylink den uno ya bağlı roleleri nasıl açıp kapatabilirim.
Hocam yazılımın basinda at komutu gönderip cevap alıp client moduna geçmek istiyorum.. ama çoğu zaman esp bulunamadı =error hatası alıyorum.. birde internete bağlanmadan yazılım çalışmaya baslamiyor.. internete bağlandığı zamanda Lcd ekrandaki saatin saniyelerine 7 sn de bir atlıyor..esp yazilimini kaldirdigimda normal çalışıyor.
O sebeple nudemcu sadece internete bağlanmamı sağlayıp sadece bylink komutlarını uno dan çekecek-gonderecek bir mantık
yapmaya çalışıyorum..bilmem yanlış mi düşünüyorum..
 
Son düzenleme:
Sensörlerin değerlerini ve değişkenleri seri porta yazdırırsın arduino uno dan nodemcu nun rx=tx tx=rx gnd yide bağla sonrasını bende yapamadım ama mantık güzel ben denedim blynk kodunun altına eğer pin 2 açık ise seri porta d2on yazdır dedim ama olmadı bilmiyorum blynk kısmını bende
 
Kardeş bu senin yoğurt yemenle alakalı eğer kablonun ucundaki konnektör 2,54 mm likse erkek header alıp içine sokarak arduinoya bağlarsın değilse kabloyu keser ucuna erkek header lehimlersin, yada kabloyu kesip doğrudan arduinoya lehimlersin.
 
Kod:
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
//#include <ESP8266WebServer.h>
#include <ESP8266HTTPClient.h>
#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN D4 //--> SDA / SS is connected to pinout D2
#define RST_PIN D3 //--> RST is connected to pinout D1
MFRC522 mfrc522(SS_PIN, RST_PIN); //--> Create MFRC522 instance.

const char* ssid = "turknet";
const char* password = "####";


//ESP8266WebServer server(80); //--> Server on port 80

int readsuccess;
byte readcard[4];
char str[32] = "";
String StrUID;


void setup() {
  Serial.begin(115200); //--> Initialize serial communications with the PC
  SPI.begin(); //--> Init SPI bus
  mfrc522.PCD_Init(); //--> Init MFRC522 card

  delay(500);

  WiFi.begin(ssid, password); //--> Connect to your WiFi router
  Serial.println("");
    

  Serial.print("Connecting");
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Successfully connected to : ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  Serial.println("Please tag a card to display UID !");
  Serial.println("");
}

void loop() {
  // put your main code here, to run repeatedly
  readsuccess = getid();

  if(readsuccess) {  
    HTTPClient http; //Declare object of class HTTPClient
    WiFiClient client;

    String UIDresultSend, postData;
    UIDresultSend = StrUID;
    Serial.println(UIDresultSend);
    //Post Data
    //postData = "UIDresult=" + E54CEB23;
    postData = "{\"Rfid_ID\":\"E54CEB2361\",\"Door_ID\":\"6\"}";
     http.begin(client,"http://project1165.herokuapp.com/authos/getautho"); //Specify request destination
  // http.addHeader("Content-Type", "application/x-www-form-urlencoded"); //Specify content-type header
    http.addHeader("Content-Type", "application/json");
    http.addHeader("auth-key", "My_authentication_key");
    int httpCode = http.POST(postData); //Send the request
    String payload = http.getString(); //Get the response payload
    Serial.println("");
    Serial.println(httpCode); //Print HTTP return code
    Serial.println(payload); //Print request response payload
    
    http.end(); //Close connection
    //delay(1000);
  }
}

int getid() {  
  if(!mfrc522.PICC_IsNewCardPresent()) {
    return 0;
  }
  if(!mfrc522.PICC_ReadCardSerial()) {
    return 0;
  }

  
  
  for(int i=0;i<4;i++){
    readcard=mfrc522.uid.uidByte; //storing the UID of the tag in readcard
    array_to_string(readcard, 4, str);
    StrUID = str;
  }
  Serial.println("");
  Serial.print("THE UID OF THE SCANNED CARD IS : ");
  mfrc522.PICC_HaltA();
  return 1;
}

void array_to_string(byte array[], unsigned int len, char buffer[]) {
    for (unsigned int i = 0; i < len; i++)
    {
        byte nib1 = (array >> 4) & 0x0F;
        byte nib2 = (array >> 0) & 0x0F;
        buffer[i*2+0] = nib1 < 0xA ? '0' + nib1 : 'A' + nib1 - 0xA;
        buffer[i*2+1] = nib2 < 0xA ? '0' + nib2 : 'A' + nib2 - 0xA;
    }
    buffer[len*2] = '\0';
}
CUT HERE FOR EXCEPTION DECODER
Bu hatayı aliyorum ve reset atıyor alet kendi kendine nodemcu kodum çalışıyor cevapta alabiliyorum fakat reset atıyor sonra bu hatayı verip daha yaşayan varmı neden olur acaba
 
Moderatör tarafında düzenlendi:
loop fonksiyonunun sonuna
Kod:
readsuccess = false;
ekle. yoksa sürekli kart okuyulduğunu zanneder.
 
İşin gerçeği benim elimde bilgi gönderdiğim bir kod var ama buna RFID entegre edemiyorum.
Bu aşağıdaki kod ile bilgi gönderebiliyorum gönderdiğim bilgi satırı bu char json[] = "{\"Rfid_ID\":\"E54CEB2361\",\"Door_ID\":\"6\"}" buradaki E54CEB2361 kısmı kart okudukça değişecek bu gönderme kodunu entegre edebilmem tam 1 ay sürdü ama projemi teslim etmem gerek. Bu kod ile linkden 200 cevabını alıyorum doğru id gönderdiğim zaman. Eğer yanlış id gönderirsem 400 aliyorum aynı şekilde sadece RFID okuyacak ve okunan değer E54CEB2361 kısmına gidecek ve kod gönderilecek. Eğer zevk için yardım etmek isteyen olursa 7/24 müsaitim eğer karşılık istenirse yardımcı olurum. Kimsenin emeğini karşılıksız bırakmam. İnşallah yanlış anlaşılmam. Sistem nodeMcu ile çalışıyor.
Kod:
#include <ArduinoJson.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const char* ssid = "****";
const char* password = "******";

void setup() {
  Serial.begin(115200);

  //TESTING JSON CREATION
  Serial.println("Starting JSON");
  StaticJsonBuffer<69> jsonBuffer;
  char json[] = "{\"Rfid_ID\":\"E54CEB2361\",\"Door_ID\":\"6\"}";
  JsonObject& root = jsonBuffer.parseObject(json);
  if(!root.success()) {
    Serial.println("parseObject() failed");
  } else {
    Serial.println("JSON OK");
  }


  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.print("Connecting... ");
  }


  //TESTING POST
  //headers={'content-type': 'application/json', 'auth-key': 'My_authentication_key'}
  String sms_service_URL = **************************************


  Serial.println("TESTING POST");
  //Declare an object of class HTTPClient
  WiFiClient client;
  HTTPClient http;

  if (WiFi.status() == WL_CONNECTED) {
    //Specify request destination
    http.begin(client,sms_service_URL);
    http.addHeader("Content-Type", "application/json");
    http.addHeader("auth-key", "My_authentication_key");

    String data;
    root.printTo(data);
    //Send the request
    int httpCode = http.POST(data);

    //Check the returning code
    if (httpCode > 0) {
      //Get the request response payload
      String payload = http.getString();
      //Print the response payload
      Serial.println(payload);
    }
    //Close connection
    http.end();
    Serial.println(httpCode);
  }
}

void loop() {


}
 
Moderatör tarafında düzenlendi:
/////////////////////////////////////
//ARDUINO ya YUKLE

//DHT11 Lib
#include <DHT.h>

//Arduino to NodeMCU Lib
#include <SoftwareSerial.h>
#include <ArduinoJson.h>

//Initialise Arduino to NodeMCU (10=Rx & 11=Tx)
SoftwareSerial nodemcu(10, 11);

//Initialisation of DHT11 Sensor
#define DHTPIN 2
DHT dht(DHTPIN, DHT11);
float temp;
float hum;

void setup() {
Serial.begin(9600);

dht.begin();
nodemcu.begin(9600);
delay(1000);

Serial.println("Program started");
}

void loop() {

StaticJsonBuffer<1000> jsonBuffer;
JsonObject& data = jsonBuffer.createObject();

//Obtain Temp and Hum data
dht11_func();


//Assign collected data to JSON Object
data["humidity"] = hum;
data["temperature"] = temp;

//Send data to NodeMCU
data.printTo(nodemcu);
jsonBuffer.clear();

delay(2000);
}

void dht11_func() {

hum = dht.readHumidity();
temp = dht.readTemperature();
Serial.print("Humidity: ");
Serial.println(hum);
Serial.print("Temperature: ");
Serial.println(temp);
}

///////////////////////////////////////////////

74";
//NODEMCU ya YUKLE

#include <SoftwareSerial.h>
#include <ArduinoJson.h>

//D6 = Rx & D5 = Tx
SoftwareSerial nodemcu(D6, D5);
#include BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

BlynkTimer timer;

char auth[] = "AnGJ8Yh4LiQbGmZkibFPa";
char ssid[] = "Kablonet Netmaster-C5-G_EXT";
char pass[] = "191fds
void send_data() {
StaticJsonBuffer<200> jsonBuffer;
JsonObject& data = jsonBuffer.parseObject(nodemcu);

if (data == JsonObject::invalid()) {
//Serial.println("Invalid Json Object");
jsonBuffer.clear();
return;
}

Serial.println("JSON Object Recieved");
Serial.print("Recieved Humidity: ");
float hum = data["humidity"];
Serial.println(hum);
Blynk.virtualWrite(V0,hum);

Serial.print("Recieved Temperature: ");
float temp = data["temperature"];
Serial.println(temp);
Blynk.virtualWrite(V1,temp);
Serial.println("-----------------------------------------");
}

// ================= SETUP =============================
// ======================================================
void setup() {
// Initialize Serial port
Serial.begin(9600);
nodemcu.begin(9600);
while (!Serial) continue;

Blynk.begin(auth, ssid, pass,"blynk-cloud.com", 8080);
timer.setInterval(100L, send_data);
}

void loop() {
Blynk.run();
timer.run();
}

//////////////////////////
dht11+uno==> nudemcu ==>Blynk
Arkadaslar bu hatayi niye aliyorum acaba.. duzeltme yolu varmidir
Simdiden tesekkurler....
Blynk ile hicbir komut girmeden once seri iletisimde hicbir sikinti yok...ama blynk isin icine girince bir turlu asamiyorum...
 
Son düzenleme:
Arkadaslar sorunu cozdum...
isine yarayan olur diye kodlari asagi yaziyorum..
AKIS=
dht11 arduino uno ya bagli
nudemcu seri iletisim(rx-tx)ve toprak hatti (gnd-gnd) ile uno ya bagli
Blynk yazilimi ile heryerden sensor verilerini okuyabilirsiniz..
asagidaki program ile degisik versiyonlar yapabilirsiniz...

//ARDUINO ya YUKLE

//DHT11 Lib
#include <DHT.h>

//Arduino to NodeMCU Lib
#include <SoftwareSerial.h>
#include <ArduinoJson.h>

//Initialise Arduino to NodeMCU (10=Rx & 11=Tx)
SoftwareSerial nodemcu(10, 11);

//Initialisation of DHT11 Sensor
#define DHTPIN 2
DHT dht(DHTPIN, DHT11);
float temp;
float hum;

void setup() {
Serial.begin(9600);

dht.begin();
nodemcu.begin(9600);
delay(1000);

Serial.println("Program started");
}

void loop() {

StaticJsonBuffer<1000> jsonBuffer;
JsonObject& data = jsonBuffer.createObject();

//Obtain Temp and Hum data
dht11_func();


//Assign collected data to JSON Object
data["humidity"] = hum;
data["temperature"] = temp;

//Send data to NodeMCU
data.printTo(nodemcu);
jsonBuffer.clear();

delay(2000);
}

void dht11_func() {

hum = dht.readHumidity();
temp = dht.readTemperature();
Serial.print("Humidity: ");
Serial.println(hum);
Serial.print("Temperature: ");
Serial.println(temp);

}

///////////////

//NODEMCU YUKLE

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

BlynkTimer timer;

char auth[] = "bylink kodunu yazin";
char ssid[] = "ssid adini yazin";
char pass[] = "ssid sifresini yazin";

#include <SoftwareSerial.h>
#include <ArduinoJson.h>

//D8 = RX & D7 = TX
SoftwareSerial nodemcu(D8, D7);

void send_data() {
StaticJsonBuffer<200> jsonBuffer;
JsonObject& data = jsonBuffer.parseObject(nodemcu);

if (data == JsonObject::invalid()) {
//Serial.println("Invalid Json Object");
jsonBuffer.clear();
return;
}

Serial.println("JSON Object Recieved");
Serial.print("Recieved Humidity: ");
float hum = data["humidity"];
Serial.println(hum);
Blynk.virtualWrite(V0,hum);

Serial.print("Recieved Temperature: ");
float temp = data["temperature"];
Serial.println(temp);
Blynk.virtualWrite(V1,temp);
Serial.println("-----------------------------------------");
}

// ================= SETUP =============================
// ======================================================
void setup() {
// Initialize Serial port
Serial.begin(9600);
nodemcu.begin(9600);
while (!Serial) continue;

Blynk.begin(auth, ssid, pass,"blynk-cloud.com", 8080);
timer.setInterval(100L, send_data);
}

void loop() {
Blynk.run();
timer.run();
}
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…