Arduino hanrun hr9111 kullanarak twitter api vasıtasıyla arduinomuzu nasıl internet ortamına çıkarıp ve nasıl tweet attırabileceğimize bakacağız.Asıl onemli olan konu devremizi internet ortamına çıkartmak ve iot haline getirmek.Nasıl kullanacağınız size kalmış.
İlk olarak kütüphanemizi buradan ethercard-master indiriyoruz ve Sketch/Include Library/Add .zip library diyerek indirdiğimiz kütüphaneyi gösteriyoruz.Ethernet kartımız 3.3V ile çalışıyor bağlantılarını ise aşağıdakine göre gerçekleştiriyoruz.Bu bağlantı şeması standart olarak örneklerinde kullanılan bağlantı şemasıdır projelerine göre farklı dijital portlarıda kullanabilirsiniz.
PIN CS | PIN 8 |
PIN SI | PIN 11 |
PIN SO | PIN 12 |
PIN SCK | PIN 13 |
PIN VCC | PIN 3.3V |
PIN GND | PIN GND |
Bağlantımızı yaptıktan sonra ethernet kartımıza RJ45 ile ethernet bağlantımızı modem üzerinden kablolu olarak yapıyorz.Kabloda bir soruun yoksa dikkat ettiyseniz ethernet kartı üzerinde bağlantı ışıkları yanacaktır.Daha sonra kodlama kısmına geçiyoruz,ama öncelikle twitter kullanacağımız için kendimize bir token alıyoruz bunun için bir twitter uygulaması yazmış üretici firma.Token almak için http://arduino-tweet.appspot.com/oauth/twitter/login adresine gidiyoruz ve twitter ile giriş yapıp uygulamaya izin veriyouz.Size token kodunuzu verecektir bu kodu saklıyoruz,token kodunuzu “token-kodunuz” yazan yere ekliyoruz.
#include <EtherCard.h> #define TOKEN "Token-kodunuz" byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; const char website[] PROGMEM = "arduino-tweet.appspot.com"; static byte session; byte Ethernet::buffer[700]; Stash stash; static void sendToTwitter () { Serial.println("Tweet gönderiliyor."); byte sd = stash.create(); const char tweet[] = "Tweet metni"; stash.print("token="); stash.print(TOKEN); stash.print("&status="); stash.println(tweet); stash.save(); int stash_size = stash.size(); Stash::prepare(PSTR("POST http://$F/update HTTP/1.0" "\r\n" "Host: $F" "\r\n" "Content-Length: $D" "\r\n" "\r\n" "$H"), website, website, stash_size, sd); session = ether.tcpSend(); } void setup () { Serial.begin(57600); Serial.println("\n[Twitter Client]"); if (ether.begin(sizeof Ethernet::buffer, mymac) == 0) Serial.println(F("Internet erişimi yok")); if (!ether.dhcpSetup()) Serial.println(F("DHCP hatasi")); ether.printIp("IP: ", ether.myip); ether.printIp("GW: ", ether.gwip); ether.printIp("DNS: ", ether.dnsip); if (!ether.dnsLookup(website)) Serial.println(F("DNS hatasi")); ether.printIp("SRV: ", ether.hisip); sendToTwitter(); } void loop () { ether.packetLoop(ether.packetReceive()); const char* reply = ether.tcpReply(session); if (reply != 0) { Serial.println(reply); } }
Hepsi bu kadar internet bağlantısına erişebildiğinde otomatik olarak tweet atacaktır.Uygulamarınızda özelliştirerek kullanabilirsiniz.Ben şöyle bir şey yaptım bir PIR sensör ekleyerek odada bir hareket algıladığında twitter üzerinden bana tweet atıyor .