İçindekiler:

Zamanında Sıcaklık İle Sms Gönderir: 5 Adım (Resimli)
Zamanında Sıcaklık İle Sms Gönderir: 5 Adım (Resimli)

Video: Zamanında Sıcaklık İle Sms Gönderir: 5 Adım (Resimli)

Video: Zamanında Sıcaklık İle Sms Gönderir: 5 Adım (Resimli)
Video: Adım at para kazan hîlesi ( Arapların taktiği 😅 ) 2024, Temmuz
Anonim
Zamanında Sıcaklık İle Sms Gönderir
Zamanında Sıcaklık İle Sms Gönderir

Buradaki fikir, babamın evinden bir sıcaklık sms almak.

Parçaları hızlı bir şekilde bir araya getirmekten hiçbir şey fantezi değil.

Parçalar:

  • Geekcreit® ATmega328P Nano V3 Kontrol Kartı Uyumlu Arduino
  • Arduino için DIY NANO IO Shield V1. O Genişletme Kartı
  • DS1307 Tabanlı RTC IIC / I2C Gerçek Zamanlı Saat Modülü ve DS18b20
  • SIM800L Dört bantlı GSM / GPRS
  • LM2596 Mini DC-DC Dönüştürücü Ayarlanabilir Kademeli Güç Kaynağı Modülü
  • Termistör NTC MF52AT sıcaklığı

Her şeyden önce okuma ve arama çok kapalı.

Sonunda Geekcreit® Nano'yu kullanmadan önce tüm parçaları bir Arduino Uno ile test ediyorum.

Adım 1: SIM800l'yi Çalıştırın

SIM800l'yi Çalıştırın
SIM800l'yi Çalıştırın

Bir ana nokta, Sim800L'nin gücüdür.

3,7 volta ayarlanmış bir LM2596 Mini DC-DC dönüştürücü ve ayrı bir güç kaynağı kullanıyorum.

AT+ komutlarıyla bağlantıyı test etmek için bu taraf çok kullanışlıdır:

Arduino ile Hızlı Başlangıç SIM800 (SIM800L)

Komutlarda gsm modemi kullanarak pin kodunu devre dışı bırak ile sim pin kodunu kullandım.

Bir sonraki düşünce hangi kütüphane. İnternet farklı bir çözüm sunuyor.

Benim çözümüm Mattias Aabmets'in kütüphanesi: AspenSIM800

Onun örneği: Send_SMS.ino, I'i temel program olarak kullandı ve diğer tüm parçaları tek tek birbirine bağladı.

Tx pini ve Rx pini şu şekilde kodlanmıştır:

Arduino'nun RX_PIN 10'u. Arduino'nun SIM800 modülünün TX_PIN 11'ine bağlanmalıdır. SIM800 modülünün RX pinine bağlanmalıdır

Kütüphanelerdeki *.ccp ve *.h dosyalarını okumak her zaman iyi bir fikirdir.

Birçok ilginç ipucu ve bilgi içeriyorlar.

Adım 2: DS18B20 Sensörlü RTC DS1307'yi Çalıştırın

DS18B20 Sensörlü RTC DS1307'yi Çalıştırın
DS18B20 Sensörlü RTC DS1307'yi Çalıştırın

Bu tarafı kullandım: simtronyx - DS1307 ve DS18B20 için blog.

Saatin bir I2C veri yolu bağlantısı var ve bu Arduino Uno için: A4 (SDA) - A5 (SCL)

DS18B20, D3'e bağladım.

Bir SMS'de Floats'ı yalnızca String gönderemeyeceğinizi okudum, bu yüzden şamandıraları dizeye çevirmek zorunda kaldım.

Bulduğum bu kod parçacığıyla yaptığım şey:

n

MyString1 = String(currentTemp, 2); // Float'ı String'e çevir

MyString1 = (MyString1 + " C - RoomTemperatur:) ");

// string'i char'a dönüştürmek burada başlar

// Uzunluk (boş sonlandırıcı için fazladan bir karakter ile)

int str_len1 = MyString1.length() + 1; // Karakter dizisini (arabellek) hazırlayın

char char_array1[str_len1]; // Üzerine kopyala

MyString1.toCharArray(char_array1, str_len1); // string'i char'a çevir onu bitirir

Dürüst olacağım, nasıl çalıştığını bilmiyorum ama işe yarıyor.

Adım 3: Termistör NTC MF52AT'yi Çalıştırın

Termistör NTC MF52AT'yi Çalıştırın
Termistör NTC MF52AT'yi Çalıştırın

Daha önce bir termistörle çalıştım, bu yüzden kolay kısımdı.

Ama burada da farklı bir çözüm bulabilirsiniz.

Final kodunda benimkini bulabilirsin.

Ayrıca Floats to String çevirisini de bulabilirsiniz.

Termistöre bir miktar tel ve 10 k ohm direnç lehimleyin.

4. Adım: Herkesin Birlikte Çalışmasını Sağlayın

Bu yüzden tüm program bölümlerini birlikte yazdım.

Şimdi her gün aynı anda bir SMS göndermeyi çözmem gerekiyordu.

Bazıları TimerAlarm ve diğer yaklaşımlarla farklı fikirler hakkında okudum.

Ama arduino forumunda bir yerde basit bir çözüm buldum:

if (now.hour() == 8 && şimdi.dakika() == 00 && şimdi.saniye () == 59)

{

SIM.smsSend(addr, char_array); // termistör

gecikme(500); SIM.smsSend(addr, char_array1); // DS18B20 }

Ama neden şimdi.saniye = 59 çünkü tam bir dakika SMS gönderiyor. Benim için öyle ama kendin dene.

Bazı testlerden sonra programı Geekcreit® Nano'ya yükledim.

Bu belki de en iyi program yazımı değil:) ama isteneni yapıyor.

Geekcreit® ATmega328P Nano'nun bazı Arduino IDE sorunları olduğundan, terminal (Linux Mint) ile yüklüyorum, USBtinyisp'i bununla atıyorum: avrdude -c usbtiny -p atmega328p -U flash:w:SomeHexFile.hex

Adım 5: Çalıştı

Evet işe yaradı ve evin içine yerleştirildi.

Her gün saat 6:00'da sıcaklıkla ilgili bir SMS alıyorum.

Önerilen: