SONOFF POW modülünü Hacklemek.

Yayınlandı: 10 Eylül 2017 / Projeler
Etiketler:, , , , ,

Sonoff modülleri daha önceden burada incelemiş olduğum akıllı ev ürünleridir. Bana incelemem için gönderilen sonoff pow isimli modül zaman zaman bağlantı problemleri çıkarmaktaydı. Bu sebeple içerisini açıp incelediğimde, üzerinde ESP8266 ve 32Mbit flash çipi barındırdığını gördüm. Ayrıca güç ölçüm özelliğine sahip olan bu modül HLW8012 isimli entegreyi de barındırıyor. Modülün boardu üzerinde firmware yüklemek için gerekli uçların bulunduğunu görünce hemen ufak çaplı bir araştırma yapıp, son zamanlarda kullanmaya başladığım arduino ide ile modülü programlamaya başladım. Kendi yazdığım firmwarei modüle yükleyip bağlantı problemlerini ortadan kaldırdım.  Bu tarz problemler yaşayıp modüle kendi yazılımlarını yüklemek isteyenlere kılavuzluk etmek için bu yazıyı yazıyorum.

Aşağıdan uygulamayla ilgili videoyu izleyebilirsiniz:

Aşağıdaki resimde modüle yazılım yüklemek için gerekli olan uçların sıralaması görülebilir. Tabi bu iş için bilgisayarımızın  seri portunu veya bir USB-Seri çevirici kullamamız şart.  VDD pinine  3.3V vermemiz gerekiyor. İletişim de 3.3V seviyesinde olmalı.

Modüle program yükleyebilmek için arduino ide  ayarlarımız aşağıdaki gibi olmalı.

Büyütmek için tıklayın…

Ayarlarımızı ve bağlantılarımızı yaptıktan sonra VDD pinini modülden ayırıp , modül üzerindeki butona basılı tutarak VDD pinini tekrar bağlıyoruz. Bağlantıyı yaptıktan sonra elimizi butondan çekiyoruz. Artık modül program yüklemek için hazır. Arduino ide’deki yükle butonuna tıklayarak yazılımımızı yüklüyoruz. Yükleme bittikten sonra butonun düzgün çalışabilmesi için butona basmadan VDD pinini söküp kısa süre sonra tekrar modülü enerjilendirerek resetlemenizi öneririm. Çünkü bir önceki durumda modül boot modunda açıldığından buton istediğimiz gibi çalışmaz.

Yazdığım deneme kodu aşağıda:


#define REL_PIN 12
#define LED_PIN 15
#define BUTTON 0

void setup() {
pinMode(LED_PIN,OUTPUT);
pinMode(REL_PIN,OUTPUT);
pinMode(BUTTON,INPUT);

digitalWrite(LED_PIN,0);
digitalWrite(REL_PIN,0);
}

void loop() {

if(!digitalRead(BUTTON))
{
digitalWrite(LED_PIN,!digitalRead(LED_PIN));
digitalWrite(REL_PIN,!digitalRead(REL_PIN));
delay(100);
while(!digitalRead(BUTTON));
}
}

Sonraki yazılarda görüşmek üzere..

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

w

Connecting to %s