İçindekiler:

ESP8266 Aygıtlı Bir Bilgisayarı Uzaktan Kapatma veya Yeniden Başlatma: 10 Adım (Resimlerle)
ESP8266 Aygıtlı Bir Bilgisayarı Uzaktan Kapatma veya Yeniden Başlatma: 10 Adım (Resimlerle)

Video: ESP8266 Aygıtlı Bir Bilgisayarı Uzaktan Kapatma veya Yeniden Başlatma: 10 Adım (Resimlerle)

Video: ESP8266 Aygıtlı Bir Bilgisayarı Uzaktan Kapatma veya Yeniden Başlatma: 10 Adım (Resimlerle)
Video: IoT Tabanlı Şifreli Kilit Sistemi - 2020 Yaz Dönemi 2024, Temmuz
Anonim
Image
Image

Burada açık olmak gerekirse, başka birinin bilgisayarını değil, SİZİN bilgisayarınızı kapatıyoruz.

Hikaye böyle devam ediyor:

Facebook'taki bir arkadaşım bana mesaj attı ve bir sürü matematik çalıştıran bir düzine bilgisayarı olduğunu söyledi, ancak her sabah saat 3'te kilitleniyorlar. Bilgisayarlar 30 dakika uzaklıkta olduğundan, bilgisayarları kapatıp açmak için iki kasabayı (Güney Dakota'da yaşıyoruz) arabayla geçmek büyük bir sıkıntı. Ona, rahatsız edici bilgisayarı rahat yatağının rahatlığından yeniden başlatmasına izin verecek bir IoT cihazı yapabilir miyim, diye sordu.

Asla bir meydan okumayı kaçırmamak için onun için bir şeyler hazırlamayı kabul ettim. Bu o proje.

İki bit kaydırmalı kayıtlı, bir ESP8266 ESP01, bir avuç LED ve bazı ev yapımı optoizolatörler kullanarak, parçaları eBay'den Çin'den satın alırsanız, tüm proje yaklaşık 5 dolara mal oluyor. Belki Amazon'dan 20 dolar.

Bu, çok sayıda ince lehimleme içeren oldukça karmaşık bir yapıdır. Yaptığım hataları ve yeniden lehimlemeyi saymazsak, bunu yapmam 20 saatin daha iyi bir kısmını aldı, ama harika çıktı ve mükemmel çalıştı.

Hadi başlayalım.

Adım 1: Prototip Panosu

Prototip Kurulu
Prototip Kurulu
Prototip Kurulu
Prototip Kurulu

Tüm projelere her zaman bir prototip devre tahtası ile başlayın. Tüm bileşenlere sahip olup olmadığınızı ve beklendiği gibi çalışıp çalışmadığınızı belirlemenin en iyi yolu budur. Bu proje biraz karmaşık, bu yüzden ilerlemeden önce onu bir breadboard üzerinde inşa etmenizi şiddetle tavsiye ederim.

İhtiyacınız olacak parçalar şunlardır:

  • Bir ESP8266 ESP01 (her ne kadar herhangi bir ESP8266 cihazı çalışsa da)
  • İki adet 8 bit kaydırma kaydı, 74HC595N kullandım
  • 16 LED, 3.3V'da çalışan hasır şapka beyaz LED'ler kullandım. Başkalarını kullanırsanız, dirençlere ihtiyacınız olabilir.
  • Üç 3k3-ohmpulldown direnci
  • Atlama telleri ve bir devre tahtası

Ayrıca en az bir optoizolatör oluşturmanız gerekecektir. Siyah daralan makaron, parlak beyaz bir LED, 220 ohm'luk bir direnç ve bir fotodirenç kullandım. 220 ohm'luk direnci LED'in katoduna lehimleyin ve ardından LED'i ve foto direnci, daralan makaron içindeki birbirine bakacak şekilde yalıtın. Ancak bunlara daha sonraki bir adımda geleceğiz.

Bir sonraki adımda sağlanan kablo şemasını izleyin. Kablolama oldukça basittir.

ESP8266 3,3V'de çalıştığından, uygun şekilde güç verdiğinizden emin olun

Adım 2: Will-CAD Kullanan Şema

Will-CAD Kullanan Şema
Will-CAD Kullanan Şema

Şematik oldukça basittir. 8 bitlik bir kaydırma yazmacının standart kablo bağlantısını takip ediyoruz. İki adet 8 bitlik kaydırma yazmacı kullandığım için, bunların 'saat' ve 'mandal' pinlerinde birbirine zincirlenmeleri gerekiyor.

ESP01'in yalnızca iki GPIO pini olduğundan, TX & RX'i çıkış olarak yeniden kullanmamız gerekiyor, bu da amaçlarımız için iyi çalışıyor. Daha fazla kontrol istiyorsanız, ikiden fazla GPIO pinli bir ESP-12 veya başka bir sürüm kullanabilirsiniz. Ancak bu, projenin maliyetine 2 $ daha ekleyecektir - bu sadece çılgınca konuşma.

8 bitlik kaydırma yazmaçlarımızı ve ESP01 pinlerini açılışta yüksekte tutmamız gerekiyor, böylece garip şeyler yapmazlar veya program moduna girmezler. Üç 3k3 direnç kullandım, daha büyük veya daha küçük değerler de işe yarardı. Bu değer, ESP01'deki alternatif pinlerden yararlanmaktan bahseden kılavuzlardan türetilmiştir.

ESP01 (ESP8266)

  • TX saat pimi 3k3 pullup
  • RX mandal pimi 3k3 çekme
  • 00 seri veri 3k3 çekme
  • 02 yüzen

8-bit Kaydırma Kaydı (74HC595H)

  • VCC 3.3V
  • OE 3.3V (bu, etkinleştirme pinidir)
  • GND GND
  • CLR GND (bu, net pimin temizlenmesini engeller)
  • Ve LED'ler, bunlar yere iniyor.

Adım 3: ESP8266 Kodu

ESP8266 Kodu
ESP8266 Kodu

ESP8266 kodu oldukça basittir. Ne yazık ki, Instructables'taki editör oldukça işe yaramaz, bu yüzden kodu doğrudan Github'dan almak isteyeceksiniz.

"rafları yeniden başlatma" projesi:

github.com/bluemonkeydev/arduino-projects/…

"SensorBase" sınıfı burada mevcuttur. Kodumu "kullanmak" istiyorsanız gereklidir:

github.com/bluemonkeydev/arduino-projects/…

Dikkat edilmesi gereken birkaç şey var. Kod oldukça iyi belgelenmiştir.

  1. Ben çok tembel bir geliştiriciyim, bu yüzden yeniden kullanılabilir tüm ESP8266 kodunu "SensorBase" adlı bir sınıfa koydum. Bunu Github'da da bulabilirsiniz, yukarıdaki bağlantı.
  2. MQTT aracınızın sunucusunu, kullanıcı adını, parolasını ve bağlantı noktasını girmelisiniz. CloudMQTT hizmetini oluşturduğumuzda bunlar biraz daha aşağıda bulunabilir.
  3. Konu sözdizimi biçimimi izlemenize gerek YOKTUR. Ancak takip etmenizi tavsiye ederim.
  4. Bu kod hakkında akıllıca bir şey yok. Çok pragmatik.

Adım 4: Perfboard Düzeni

Perfboard Düzeni
Perfboard Düzeni

Bu proje bir mini veri merkezine kurulacak, bu yüzden son tasarım için sadece mükemmel tahta kullanmaya karar verdim. Perfboard, bunun gibi projeler için harika çalışır ve bir parça özel grafik kağıdı kullanarak yerleşimi kolaydır. Burada düzenimi göreceksiniz. Elbette, bunu farklı şekilde yapmayı seçebilirsiniz.

Projemin iki adet 8 bitlik kaydırma kaydına ihtiyacı vardı, bu yüzden ortadaki konumlandırmalarıyla başladım. Optoizolatörlere olan konektörlerimin, ideal bir çözüm olmasa da şimdilik basit dişi başlıklar olacağını biliyordum.

LED'leri seviyorum ve bunun her optoizolatör devresi için bir LED'e sahip olması gerekiyordu. Doğrudan karttan anında geri bildirim alabilirsem test aşamasının çok daha kolay olacağını biliyordum, ancak aynı zamanda bu LED'lerin lehimleme için büyük acıya neden olacağını da biliyordum. Ve öyleydiler. 5 mm'lik LED'lerden daha küçük bir şeyim yoktu, bu yüzden onları şaşırtmak zorunda kaldım. Son tasarımım katotların zikzak desenini oluşturdu çünkü anotları topraklama kabloları üzerinden geçirmek istemedim. Bu iyi bir tasarım olduğunu kanıtladı. LED kabloları, 8 bitlik kaydırma yazmaçlarının üzerinde birleşir ve basitlik için ekranlı kablolarla kartın üstünde çalışır.

Güç için, doğrudan bilgisayarlardan birinden güç almak için eski bir USB kablosundan çalıştırmak istedim. Bu, USB bağlantı noktalarına genellikle bilgisayar kapalı olsa bile güç verildiğinden iyi çalışır. Gücü 3.3V'a düşürmek için bir LM317 lineer voltaj regülatörü kullandım. 3.3V'luk bir regülatör de işe yarayabilirdi ama bende yoktu.

Çok fazla kablo geçişini önlemek için, kaçınmaya çalıştığım mükemmel kartın üst tarafında birkaç kablo çalıştırdım. Geçiş deliklerinin iletken olduğunu unutmayın, bu nedenle kısa devreleri önlemek için blendajlı kablolar kullanın. Kartın üst kısmında yer alan bu bağlantılar şemamda kesikli çizgilerle gösterilmiştir.

Adım 5: Lehimli Kart

Lehimli Kurulu
Lehimli Kurulu

Son lehimli tahtam gerçekten iyi çıktı. Beklendiği gibi, üstteki LED'ler, herhangi bir şort olmadan doğru şekilde lehimlenmek için çok uğraştı. LED'leri ve başlıkları lehimledikten sonra, herhangi bir şortunuz olup olmadığını belirlemek için multimetrenizi kullanın. Şimdi öğrenmek en iyisidir.

LED'ler dışında, her şey oldukça iyi gitti. Birkaç bağlantıyı yeniden yapmak zorunda kaldım, ancak bazı hastalarda, bazı hata ayıklama ve biraz yeniden lehimleme ile her şey yolunda gidecek.

8 telli CAT-5 kablo kullandığım optoizolatörleri de bağladığımı bu fotoğraftan anlayacaksınız. Bunun nedeni, süper ucuz, eklenmesi kolay ve iyi işaretlenmiş olmasıdır - bir sonraki adımda bu optoizolatörler hakkında daha fazla bilgi.

Adım 6: Optoizolatörlerin Yapılması

Optoizolatörlerin Yapılması
Optoizolatörlerin Yapılması

Elbette kendi optoizolatörlerinizi yapmanıza gerek yok. Pek çok ticari versiyon, her bir kuruş için mevcuttur ve bilgisayarın güç hatlarını herhangi bir direnç olmadan doğrudan çalıştıracakları için daha iyi çalışırlar. Ancak herhangi bir optoizolatörüm yoktu, bu yüzden benimkini bir LED, direnç ve fotodirenç kullanarak yapmak zorunda kaldım.

Siyah bir daralan makaron kılıfı içinde, "kapalı" direncin sayacımdan daha az olduğunu ve "açık" direncin birkaç bin ohm olduğunu onayladıktan sonra, eski bir anakart üzerinde son bir test yaptım. Benim için mükemmel çalıştı. Bazı bilgisayarların az çok hassas olabileceğinden şüpheleniyorum, ancak test ettiğim anakartlarda bu yapılandırma iyi çalıştı.

Fotodirenç içine maksimum ışığı almak için gerçekten parlak beyaz bir LED kullanmak isteyeceksiniz. Pek çok seçenek denemedim ama parlak beyaz LED ve 220 ohm'luk bir direnç kesinlikle iyi çalışıyor.

7. Adım: CloudMQTT Kurulumu

CloudMQTT Kurulumu
CloudMQTT Kurulumu
CloudMQTT Kurulumu
CloudMQTT Kurulumu
CloudMQTT Kurulumu
CloudMQTT Kurulumu

Herhangi bir MQTT hizmeti veya Blynk gibi benzer bir IoT hizmeti işe yarayabilir, ancak bu proje için CloudMQTT kullanmayı tercih ediyorum. Geçmişte birçok proje için CloudeMQTT kullandım ve bu proje bir arkadaşıma devredileceği için transfer de yapılabilen yeni bir hesap oluşturmak mantıklı.

Bir CloudMQTT hesabı oluşturun ve ardından yeni bir "örnek" oluşturun, "Sevimli Kedi" boyutunu seçin, çünkü onu yalnızca kontrol için kullanıyoruz, günlük kaydı yok. CloudMQTT size bir sunucu adı, kullanıcı adı, parola ve bağlantı noktası numarası sağlayacaktır. (Bağlantı noktası numarasının standart MQTT bağlantı noktası olmadığını unutmayın). Tüm bu değerleri, durumun doğru olduğundan emin olarak ilgili konumlardaki ESP8266 kodunuza aktarın. (cidden, değerleri kopyala/yapıştır)

Cihazınızın bağlantılarını, düğmeye basmalarını ve garip bir senaryoda bir hata, bir hata mesajı aldığınızı görmek için CloudMQTT'deki "Websocket UI" panelini kullanabilirsiniz.

Android MQTT istemcisini yapılandırırken de bu ayarlara ihtiyacınız olacak, bu nedenle gerekirse değerleri not edin. Umarım şifreniz telefonunuza giremeyecek kadar karmaşık değildir. Bunu CloudMQTT'de ayarlayamazsınız.

Adım 8: MQTT Android İstemcisi

MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi
MQTT Android İstemcisi

Herhangi bir Android (veya iPhone) MQTT istemcisi işe yarar, ancak MQTT Dash'i severim. MQTT Dash kullanımı kolaydır, çok duyarlıdır ve ihtiyacınız olan tüm seçeneklere sahiptir.

Kurulduktan sonra bir MQTT Sunucusu kurun, sunucuyu, bağlantı noktasını, kullanıcı adını ve parolayı CloudMQTT oturum açma bilgilerinizle DEĞİL, bulut sunucunuzun değerleriyle doldurun. İstediğiniz herhangi bir müşteri adını kullanabilirsiniz.

Her şeyi doğru yazdıysanız, MQTT sunucunuza otomatik olarak bağlanacak ve henüz herhangi bir düğme, metin veya mesaj ayarlamadığınız için size boş bir ekran gösterecektir. Boş ekranda, sağ üst köşede bir "+" göreceksiniz, tıklayın ve ardından " Seç/Düğme 'yi seçin. Bilgisayar başına bir "Seç/Düğme" ekleyeceğiz, yani 8 veya 16 veya daha az.

Bir bağlantı hatası aldıysanız, değerlerden biri yanlıştır. Geri dönün ve iki kez kontrol edin

Her bilgisayar, kodunuzda belirtilen değerlere karşılık gelen konuyu kullanacaktır. Benim kurallarımı izleseydin, bunlar " cluster/rack-01/computer/01 " olurdu. " on " ve " off " değerlerini kodumuza uyacak şekilde değiştirmek en iyisi olacaktır. "0" ve "1" yerine sırasıyla "on" ve "off" değerlerini kullanın. Sunucudan bir onay bekleyeceğimiz için QoS(1) kullanmanızı da tavsiye ederim.

Birini ekledikten sonra, bir demet oluşturmak için uzun basıp "klonla" seçeneğini kullanabilir, ardından adlarını ve konusunu değiştirebilirsiniz.

Yeterince kolay.

9. Adım: ESP8266'nızı Wifi Üzerinden Alma

ESP8266'nızı Wifi Üzerinden Alma
ESP8266'nızı Wifi Üzerinden Alma

ESP8266 Wifi Manager modülünü kullanarak cihazımızı Wifi'ye almak çok kolay. SensorBase sınıfımı kullandıysanız, zaten yerleşiktir. Değilse, Wifi Yöneticisi sayfasındaki talimatları izleyin.

Wifi Yöneticisi, açılışta SSID'nize bağlanmaya çalışacak, SSID'nizi hiç söylemediğiniz için bunu yapamayacak, bu nedenle otomatik olarak erişim noktası moduna (veya AP Moduna) geçecek ve SSID'nizi isteyen basit bir web sayfası sunacaktır. & Parola. Telefonunuzu veya dizüstü bilgisayarınızı kullanarak, yeni kullanılabilen kablosuz ağı "ESP_xxxxxx" SSID adıyla bağlayın, burada "xxxxxx" rastgele (gerçekten rastgele değil) bir dizidir. (Tam talimatlar Wifi Yöneticisi sayfasında bulunabilir.)

Bağlandıktan sonra, web tarayıcınızı açın ve 192.168.4.1'e gelin, SSID'nizi ve Parolanızı yazın ve kaydet'e tıklayın.

Artık internettesiniz ve IoT cihazınızda "Ben" kısmı çalışıyor!

Adım 10: Son Bağlantı ve Test

Son Bağlantı ve Test
Son Bağlantı ve Test

Hepsi tamam.

Her şeyi bağlamak için bilgisayarınızın güç düğmesi kablosunu anakartla birleştiği yere yerleştirin. Bir grup kablo ve konektör içeren iki sıra başlık görmelisiniz. Tipik olarak, oldukça iyi etiketlenirler. Anahtarınızın fişini çekin ve optoizolatör fişini takın. Benimkilere bazı "Dupont" fişleri taktım, böylece güç kablosu gibi takıldılar. Bu uçtaki kutupluluk önemli değil, ancak diğer ucun kutupluluğunun doğru olduğundan emin olun - özel panonuza giden kutup.

Ve mükemmel çalışıyor. MQTT Dash istemcisini (veya benzer aracı) kullanarak bilgisayarlarınıza uzaktan güç sağlayabilirsiniz.

Uygulamanızdaki ilgili onay düğmesine basın ve uygulama MQTT sunucusundan "kapalı" mesajını duyduğunda, düğme tekrar işaretlenmemiş olarak değişecektir.

Bu, birkaç hafta boyunca herhangi bir sorun olmadan çalışıyor. Bilgisayarlarda düğmeyi aşağı çekme süresinin uzatılması gerektiğini fark ettik. 1 tam saniye ile bitirdik. Bu değer, MQTT sunucusu aracılığıyla ayarlanabilir bir değer olarak gösterilebilir veya isteğinize bağlı olarak değeri kabloyla bağlayabilirsiniz.

İyi şanslar ve seninkinin nasıl sonuçlandığını bana bildirin.

Önerilen: