İçindekiler:
- Adım 1: SIM800l'yi Çalıştırın
- Adım 2: DS18B20 Sensörlü RTC DS1307'yi Çalıştırın
- Adım 3: Termistör NTC MF52AT'yi Çalıştırın
- 4. Adım: Herkesin Birlikte Çalışmasını Sağlayın
- Adım 5: Çalıştı
Video: Zamanında Sıcaklık İle Sms Gönderir: 5 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:21
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
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
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
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:
Zamanında Işık: 3 Adım
Zamanında Işık: Karım bu LED aydınlatmalı tabelayı satın aldı ve küçük koridorumuza astı. Açmada çok iyiydi, ama kapatmayı çok unutkandı! Bunun bariz sonucu, pilleri çok sık değiştirdiğimiz gerçeğiydi! Karar verdim
WiFi ile Kendi Kendine Kendin Yap Sulama Tenceresi İnşa Et - Bitkileri Otomatik Olarak Sular ve Su Azaldığında Uyarı Gönderir: 19 Adım
WiFi ile Kendin Yap Kendinden Sulama Tenceresi İnşa Edin - Bitkileri Otomatik Olarak Sular ve Su Azaldığında Uyarılar Gönderir: Bu eğitim size, eski bir bahçe ekici, bir çöp kutusu, bir miktar yapıştırıcı ve bir Kendinden Yapıştırıcı kullanarak, WiFi bağlantılı, kendi kendine sulanan, özelleştirilmiş bir ekici nasıl oluşturacağınızı gösterir. Adosia'dan Sulama Kabı Alt Montaj Kiti
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: 4 Adım
Arduino Uno ile LM35 Sıcaklık Sensörü Kullanarak Sıcaklık Okuma: Merhaba arkadaşlar bu derste LM35'i Arduino ile nasıl kullanacağımızı öğreneceğiz. Lm35, -55 °C ile 150 °C arasındaki sıcaklık değerlerini okuyabilen bir sıcaklık sensörüdür. Sıcaklıkla orantılı analog voltaj sağlayan 3 terminalli bir cihazdır. Yüksek
Zamanında: 5 Adım
Intime: Intime est un dispositif qui met en ilişki, aracılığıyla leur pouls, des individus évoluant dans un même espace physique. Ekstremiteler, des capteurs relèvent ve traduisent en flash lumineux le pouls deux personnes saisissant l'objet. Tanrım
ESP32 NTP Sıcaklık Problu Steinhart-Hart Düzeltmeli ve Sıcaklık Alarmlı Pişirme Termometresi: 7 Adım (Resimli)
ESP32 NTP Sıcaklık Probu Steinhart-Hart Düzeltme ve Sıcaklık Alarmı ile Pişirme Termometresi.: "Yaklaşan bir projeyi" tamamlama yolculuğunda, "Steinhart-Hart Düzeltme ve Sıcaklık Alarmlı ESP32 NTP Sıcaklık Probu Pişirme Termometresi"; bir NTP sıcaklık probunu nasıl eklediğimi gösteren bir Eğitilebilirliktir, piezo b