Spisu treści:
- Krok 1: Spraw, aby SIM800l działał
- Krok 2: Uruchom RTC DS1307 z czujnikiem DS18B20
- Krok 3: Uruchom termistor NTC MF52AT
- Krok 4: Zbierz wszystko do wspólnej pracy
- Krok 5: To zadziałało
Wideo: Wysyła SMS z temperaturą na czas: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Chodzi o to, żeby dostać sms temperatury z domu mojego ojca.
Nic nadzwyczajnego, tylko szybkie składanie części.
Części to:
- Karta kontrolera Geekcreit® ATmega328P Nano V3 kompatybilna z Arduino
- DIY NANO IO Shield V1. O karta rozszerzeń do Arduino
- Moduł zegara czasu rzeczywistego oparty na DS1307 RTC IIC / I2C i DS18b20
- SIM800L Czterozakresowy GSM / GPRS
- LM2596 Mini konwerter DC-DC Regulowany moduł zasilacza obniżającego napięcie
- Temperatura termistora NTC MF52AT
Przede wszystkim dużo czytania i wyszukiwania.
Zanim w końcu użyję Geekcreit® Nano, testuję wszystkie części za pomocą Arduino Uno.
Krok 1: Spraw, aby SIM800l działał
Jednym z głównych punktów jest moc Sim800L.
Używam konwertera LM2596 Mini DC-DC, dostosowanego do 3,7 V i osobnego zasilacza.
Aby przetestować połączenie z poleceniami AT+, ta strona jest bardzo przydatna:
Szybki start SIM800 (SIM800L) z Arduino
Z Wyłącz kod PIN za pomocą modemu gsm przy poleceniach dostałem kod PIN karty SIM.
Kolejne rozważenie, która biblioteka. Internet oferuje inne rozwiązanie.
Moje rozwiązanie to biblioteka od Mattiasa Aabmetsa: AspenSIM800
Jego przykład: Send_SMS.ino użył I jako podstawowego programu i po kolei łączył wszystkie pozostałe części.
Pin Tx i pin Rx są kodowane do:
RX_PIN 10 Arduino. Musi być podłączony do pinu TX modułu SIM800. TX_PIN 11 Arduino. Musi być podłączony do pinu RX modułu SIM800
Zawsze dobrze jest czytać pliki *.ccp i *.h w bibliotekach.
Zawierają wiele ciekawych wskazówek i wiedzy.
Krok 2: Uruchom RTC DS1307 z czujnikiem DS18B20
Użyłem tej strony: simtronyx - blog dotyczący DS1307 i DS18B20.
Zegar ma połączenie magistrali I2C i to jest dla Arduino Uno: A4 (SDA) - A5 (SCL)
DS18B20 podłączyłem do D3.
Przeczytałem, że w SMS-ie nie można wysyłać Floats only String, więc musiałem przetłumaczyć floaty na string.
To, co robię z tym fragmentem kodu, który znalazłem:
n
MójCiąg1 = Ciąg(bieżącaTemp, 2); //Konwertuj float na ciąg
MójCiąg1 = (MójCiąg1 + " C - Temperatura Pomieszczenia:) ");
// konwersja łańcucha na znak zaczyna się tutaj
// Długość (z jednym dodatkowym znakiem dla terminatora null)
int str_len1 = MójCiąg1.length() + 1; // Przygotuj tablicę znaków (bufor)
char char_array1[str_len1]; // Skopiuj to
MójCiąg1.toCharArray(znak_tablica1, str_len1); // przekonwertuj łańcuch na znak kończy ją
Będę szczery, nie wiem jak to działa, ale działa.
Krok 3: Uruchom termistor NTC MF52AT
Pracowałem wcześniej z termistorem, więc to była łatwa część.
Ale i tutaj można znaleźć inne rozwiązanie.
W ostatecznym kodzie możesz znaleźć mój.
Można w niej również znaleźć tłumaczenie Floats to String.
Przylutowałem trochę drutu i rezystor 10 kΩ do termistora.
Krok 4: Zbierz wszystko do wspólnej pracy
Więc napisałem wszystkie części programu razem.
Teraz musiałem wymyślić, jak wysyłać jednego SMS-a codziennie o tej samej porze.
Czytałem o różnych pomysłach, niektóre z TimerAlarm i innym podejściem.
Ale znalazłem proste rozwiązanie gdzieś na forum arduino:
if (teraz.godzina() == 8 && now.minuta() == 00 && now.sekunda () == 59)
{
SIM.smsSend(addr, tablica_znaków); // termistor
opóźnienie (500); SIM.smsSend(addr, tablica_znaków1); // DS18B20 }
Ale dlaczego now.second = 59, ponieważ wysyła całą minutę SMS-a. Dla mnie to robi, ale wypróbuj sam.
Po pewnym teście wgrałem program do Geekcreit® Nano.
To może nie jest najlepsze pisanie programów:), ale robi to, co chcesz.
Ponieważ Geekcreit® ATmega328P Nano ma pewne problemy z Arduino IDE, przesyłam przez terminal (Linux Mint) rzucam USBtinyisp w następujący sposób: avrdude -c usbtiny -p atmega328p -U flash:w:SomeHexFile.hex
Krok 5: To zadziałało
Tak, wyszło i jest umieszczone w domu.
Codziennie o 6:00 dostaję SMS-a z temperaturą.
Zalecana:
Save My Child: inteligentny fotelik, który wysyła wiadomości tekstowe, jeśli zapomnisz o dziecku w samochodzie: 8 kroków
Save My Child: Inteligentny fotelik, który wysyła SMS-y, jeśli zapomnisz o dziecku w samochodzie: Jest instalowany w samochodach, a dzięki czujnikowi umieszczonemu w foteliku dziecięcym ostrzega nas – SMS-em lub telefonem – jeśli dostaniemy odejść bez zabierania ze sobą dziecka
Zbuduj samodzielny doniczek do samodzielnego podlewania z Wi-Fi - automatycznie podlewa rośliny i wysyła alerty, gdy poziom wody jest niski: 19 kroków
Zbuduj samouczek do samodzielnego podlewania z Wi-Fi - automatycznie podlewa rośliny i wysyła alerty, gdy poziom wody jest niski: ten samouczek pokazuje, jak zbudować dostosowaną do własnych potrzeb doniczkę z połączeniem Wi-Fi, używając starej donicy ogrodowej, kosza na śmieci, kleju i samouczka Zestaw podzespołu naczynia do podlewania firmy Adosia
Nodemcu wysyła dane o temperaturze i wilgotności do Thingspeak: 7 kroków
Nodemcu wysyła dane temperatury i wilgotności do Thingspeak: W tym samouczku połączyliśmy nodemcu z czujnikiem dht11 i wysyłaliśmy dane o temperaturze i wilgotności do serwera thingspeak. Tutaj również wykreśliliśmy wykres temperatury i wilgotności na serwer rzeczypeak
Arduino wysyła dane Dht11 do serwera MySQL (PHPMYADMIN) za pomocą Pythona: 5 kroków
Arduino wysyła dane Dht11 do serwera MySQL (PHPMYADMIN) za pomocą Pythona: W tym projekcie skomunikowałem DHT11 z arduino, a następnie wysyłam dane dht11, czyli wilgotność i temperaturę do bazy danych phpmyadmin. W przeciwieństwie do naszego poprzedniego projektu, w tym przypadku nie używamy żadnej osłony Ethernet, tutaj tylko czytamy t
Arduino wysyła dane temperatury i wilgotności do serwera MySQL (PHPMYADMIN): 5 kroków
Arduino wysyła dane temperatury i wilgotności do serwera MySQL (PHPMYADMIN): W tym projekcie połączyłem DHT11 z arduino, a następnie wysyłam dane dht11, czyli wilgotność i temperaturę do bazy danych phpmyadmin. Tutaj używamy jednego skryptu PHP do przesyłania danych do bazy danych phpmyadmin