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.
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