Malum üç boyutlu yazıcıların yazdırma işlemleri oldukça uzun sürüyor başında durmak istemeyen ve yazma işi bitince başka işlem içi yanına gitmek isteyenler için bir yöntem geliştirdim 3D Yazıcı Bildirim ve paylaşmaya karar verdim.
3D Yazıcı Bildirim
Tam olarak ne yaptığımı anlatacak olursam, yazıcı yazma işlemine başlıyor ve bitirdikten sonra yaptığımız modül ile yazdırma işlemi bitip x motoru 0 konumuna geldiğinde esp8266 üzerinden nodemcu ile telefonumuza mobil bildirim yolluyor.
Yapacağımız modülde sadece nodemcu ve jumper kablolar ve 1 adet 10k direnç kullanacağız. Ufak bir lehimleme ile işlemimiz tamamlanacak bütün aşamaları fotoğraflandırmaya çalışacağım ve yazı sonunda video ile tam olarak ne yaptığımı görebilirsiniz. Bu bağlantıyı illa nodemcu değil elinizde var ise arduino pro mini nano ve esp8266 ile de yapabilirsiniz.
nodemcu ve yazıcı arasında şöyle bir bağlantı olacak.
Öncelikle switch üzerinden 3 adet çıkış var bunlar S,V,G biz burada S,V olanlara birer jumper kablo lehim yapacağız ve V olanı nodemcunun A0 girişine S olanı ise nodemcunun GND girişlerinden birine bağlayacağız.
Önemli!
Bağlantı için aşağıdaki fotoğraf gibi olmalı aksi takdirde analog değerden saçma sapan okumalar gerçekleşir. 10k direnç ile biz bu gereksiz algılamaları gnd göndermiş oluyoruz.
Belki karmaşık gelmiş olabilir ama yaptığımız iş oldukça basit video ile daha anlaşılır olacaktır.

kısmına bağlıyoruz.



Kodlama kısmında ise hazır bir bildirim gönderme işi yapan aracı siteyi kullanacağız. https://www.pushbullet.com
Siteye girerek üyelik açıyoruz ve uygulamasını playstore dan telefonumuza yüklüyoruz sonrasında ise siteden alacağımız bir api kodu var bu kadar. Onuda nodemcuyu kodlarken kullanacağız. Şimdi kodlamaya geçelim.
#include <ESP8266WiFi.h> // esp8266 kütüphanesini ekliyoruz
#include <WiFiClientSecure.h>
const char* ssid = "Akyol";//wifinin adı
const char* password = "king1199"; //wifi şifresi
const char* host = "api.pushbullet.com";
const int httpsPort = 443; // bağlantı portu
const char* PushBulletAPIKEY = "o.2VdtbuWJFkZGIAPdU3DNmq4qQBPG2xcd"; //pushbulletden aldığımız api kodunu değiştirin
int kontrol=0; //burada kontrol durumu oluşturuyoruz sürekli mesaj göndermesin sadece bitince
void setup() {
Serial.begin(115200);
Serial.println();
Serial.print("connecting to ");
Serial.println(ssid);
}
void loop() {
delay(5000);
int sensorValue = analogRead(A0); // a0 dan aldığı değeri okuduk
float voltage = sensorValue * (5.0 / 1023.0); // gerilim olarak görmek için çevirdim
Serial.print(sensorValue); // okuduğunuz değeri yazdık
Serial.print(" | ");
Serial.println(voltage);
if(sensorValue>250){ // eğer gerilim var ise motor 0 konumuna gelmiş if içine gir
if(kontrol==0){ // kontrol ile daha öncemesaj gitmemiş ise göndermek için başla, gönderdi ise 1 olur atlar.
calis(); // fonksiyonu çağırdık bildirim yollandı.
kontrol=1; // bildirim tekrar gitmesin diye kontrol değişkenini değiştirdik.
}
} //if bitti
else if(sensorValue<30){ // şayet yazıcı çalıştı yazdırmayı bitirdi bildirim geldi. elektriği kesmeden tekrar yeni görev verdiyseniz o zaman burası devreye girecek.
kontrol=0; // kontrol tekrar sıfır yaparak motor 0 konumuna geldiğinde yine mesaj gelecek.
} //else if bitti
delay(100);
}
void calis(){ // bildirim gönderme değişkeni
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
WiFiClientSecure client;
Serial.print("connecting to ");
Serial.println(host);
if (!client.connect(host, httpsPort)) {
Serial.println("connection failed");
return;
}
// aşağıdaki alandan gelmesini istediğiniz mesajı değiştirebilirsiniz.
String url = "/v2/pushes";
String messagebody_note = "{\"type\": \"note\", \"title\": \"Merhaba !\", \"body\": \"Ender-3 Durdu. \"}\r\n";
String messagebody_link = "{\"type\": \"link\", \"title\": \"Youtube Kanalım\", \"body\": \"^^!\", \"url\": \"https://www.youtube.com/channel/UCsysYREXXqhEjNF7l8_6MIg?view_as=subscriber\"}\r\n";
Serial.print("requesting URL: ");
Serial.println(url);
//send a simple note
client.print(String("POST ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Authorization: Bearer " + PushBulletAPIKEY + "\r\n" +
"Content-Type: application/json\r\n" +
"Content-Length: " +
String(messagebody_note.length()) + "\r\n\r\n");
client.print(messagebody_note);
delay(10000); // wait 10 s
Serial.println("request sent");
//print the response
while (client.available() == 0);
while (client.available()) {
String line = client.readStringUntil('\n');
Serial.println(line);
}
}
Kodlama kısmında tüm detaylara yer vermeye çalıştım. Yorum kısmından takıldığınız noktaları sorabilirsiniz. Teşekkürler






