Posiadam garaż oraz działkę i chciałbym zostać powiadomiony o sytuacji, kiedy ktoś niepowołany znajdzie się w zasięgu czujki ruchu.
Można oczywiście samemu kupić gotowe alarmy w sklepie, ale uważam, że cena oraz możliwości nie idą w parze. Postanowiłem, że stworzę coś takiego sam przy pomocy Arduino. Z uwagi że jest to mój pierwszy projekt, posiada szereg niedociągnięć i umożliwia zastosować wiele poprawek – do czego zresztą zachęcam. To jest projekt wyjściowy, pokazujący pomysł oraz możliwości jakie ma Arduino z kilkoma dodatkowymi modułami.
Możliwości zastosowania tego projektu są ogromnie – od nadzoru nad działką, garażem poprzez zabezpieczenie mieszkania na czas naszej nieobecności, na monitoringu szafki z naszymi skarbami (tam trzymam np. zestawy Arduino). Ogranicza nas tylko wyobraźnia oraz ilość modułów.
Założenia:
- urządzenie ma pracować TYLKO na baterii
- ma być energooszczędne i umożliwić pracę do 6 miesięcy
- ma powiadamiać serią SMS’ów tylko na jeden numer telefonu
Seria wiadomości ma na celu wybudzenie nas np. w nocy. Często jeden SMS możemy zignorować, ale po 30’tym będziemy mieli na tyle przytomni że będziemy mogli podjąć jakieś działania. W takim przypadku, jeśli alarm będzie cały czas aktywny, niezbędne może się okazać dodanie numeru do zablokowanych, aby móc korzystać z telefonu w innych celach. Jest to wada na jaką byłem przygotowany, jeśli ktoś chce otrzymać tylko jedną wiadomość, należy zmodyfikować kod źródłowy.
Niezbędne elementy:
- Arduino Nano V3
- moduł SIM800L (najtańszy z dostępnych modułów GSM)
- czujka ruchu (HC-SR501 PIR)
- konwerter stanów logicznych
- aktywna karta SIM
- dowolny PowerBank (zasilamy całość 5V z USB)
Schemat całego urządzenia:
Podłączyłem już przewód, umożliwiający wykonywanie telefonów – jest to nieużywana w obecnym kodzie funkcja, ale pozostawiam to jako przyszłościowe rozszerzenie. Były o to pytania na grupie FB – czy można sprawić, aby moduł dzwonił do nas, zamiast wysyłał SMS -tak, może. Wystarczy w miejsce wysyłania wiadomości SMS lub obok niej dodać ATD+48xxxxxxx; (nie zapominajmy o znaku ; ponieważ jest on niezbędny). Komenda ATH kończy połączenie (np. po 20 sekundach).
Na samym początku powstał poniższy kod źródłowy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#include <SoftwareSerial.h> //piny na których jest podłączona komunikacja z modułem GSM SoftwareSerial gsm800(11,12); void setup() { Serial.begin(9600); //definiujemy PIN, gdzie podłączamy czuję ruchu - nie wszystkie złącza potrafią wybudzić urządzenie pinMode(2, INPUT); //definiujemy przerwanie, obsługujące alarm attachInterrupt(digitalPinToInterrupt(2),alarm,RISING); while(!Serial); gsm800.begin(9600); delay(100); // Jeśli używasz blokady karty SIM, poniższa komenda ją odblokuje // gsm800.println("AT+CPIN=\"xxxx\""); // delay(1000); gsm800.write("AT+CMGF=1\r\n"); delay(100); //wpisujemy numer telefonu pod który nasze urządzenie ma wysyłaś SMS gsm800.write("AT+CMGS=\"+48xxxxxxxxx\"\r\n"); delay(100); //treść wiadomości podczas startu systemu, ma na celu zweryfikowanie czy całość działa poprawnie gsm800.write("START SYSTEMU"); delay(100); gsm800.write((char)26); delay(100); } void alarm(){ gsm800.write("AT+CMGF=1\r\n"); delay(1000); //wpisujemy numer telefonu pod który nasze urządzenie ma wysyłaś SMS gsm800.write("AT+CMGS=\"+48xxxxxxxxx\"\r\n"); delay(1000); //treść wiadomości w przypadku alarmu gsm800.write("ALARM"); delay(1000); gsm800.write((char)26); delay(1000); } void loop() { delay(1000); } |
Jest to bardzo prosty kod (skrytykowany już na grupie FB – jako okropny, brzydki, nieczytelny, wstrętny itd.), wykonujący przedstawione założenia. Wysyła SMS co kilka sekund jeśli czujka jest wzbudzona. Zachęcam mocno do własnoręcznego poprawiania i modyfikacji kodu źródłowego. Tym bardziej, jeśli potraficie programować i posiadanie niezbędną wiedzę oraz umiejętności – rewelacyjnie będzie, jeśli zamieścicie poprawki w uwagach.
Kod można rozbudować o reakcje na zarządzanie, obsługę SMS’ów oraz numerów uprawnionych. Zostało to bardzo fajnie przedstawione w jednym z artykułów – zachęcam do przeczytania i analizy. W moim projekcie, najważniejsza była prostota i możliwość napisania czegoś samemu. Na pewno wraz z czasem i umiejętnościami, całość ulegnie modyfikacji i przekształceniu w długi, piękny oraz funkcjonalny kod.
Czujka ruchu ma możliwość regulacji czułości oraz zasięgu – tutaj dostosujmy jej parametry do naszych potrzeb, raczej już doświadczalnie i w miejscu przeznaczenia. Zamiast czujki ruchu, można użyć innego ‘detektora obecności’.
Samego modułu Arduino Nano nie trzeba prezentować, każda z osób składająca podobne układy miała z nim do czynienia.
Maleństwo, które łączy w sobie prostotę programowania (w przeciwieństwie do Pro Mini) i możliwości UNO. Natomiast wybór modułu GSM był spowodowany jego ceną i dostępnością. Na poniższym zdjęciu coś, co przypomina antenę – choć w przypadku tego projektu i lokalizacji miejsca docelowego, całkowicie wystarczyła aby poprawnie nawiązywać połączenie z siecią GSM.
Jeśli natomiast umieszczać całość będziemy przy słabym zasięgu (np. dom na działce, itp.), zalecam podłączanie zewnętrznej anteny – moduł Sim800L posiada na szczęście takie dedykowane złącze.
Całość zestawu ostatecznie prezentuje się następująco:
Na zdjęciu nie widać użycia konwertera stanów logicznych (5V-3,3V), który jest zabezpieczeniem naszego najdroższego elementu, czyli modułu GSM. Podłączamy go pomiędzy Arduino D11 i D12 a RX i TX modułu Sim800L – inaczej musimy się liczyć z możliwością jego uszkodzenia.
Poniżej zamieszczam kod ostateczny, który usypia moduł i czeka na wzbudzenia go przez czuję ruchu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
#include <SoftwareSerial.h> //wskazujemy użycie biblioteki LowPower #include "LowPower.h" //piny na których jest podłączona komunikacja z modułem GSM SoftwareSerial gsm800(11,12); const int wakeUpPin = 2; void wakeUp() { gsm800.write("AT+CMGF=1\r\n"); delay(1000); //wpisujemy numer telefonu pod który nasze urządzenie ma wysyłaś SMS gsm800.write("AT+CMGS=\"+48xxxxxxxxx\"\r\n"); delay(1000); //treść wiadomości w przypadku alarmu gsm800.write("ALARM"); delay(1000); gsm800.write((char)26); delay(1000); } void setup() { pinMode(wakeUpPin, INPUT); gsm800.begin(9600); delay(100); // Jeśli używasz blokady PIN // gsm800.println("AT+CPIN=\"xxxx\""); // delay(1000); gsm800.write("AT+CMGF=1\r\n"); delay(100); //wpisujemy numer telefonu pod który nasze urządzenie ma wysyłaś SMS gsm800.write("AT+CMGS=\"+48xxxxxxxxx\"\r\n"); delay(100); //treść wiadomości podczas startu systemu, ma na celu zweryfikowanie czy całość działa poprawnie gsm800.write("START SYSTEMU"); delay(100); gsm800.write((char)26); delay(100); } void loop() { attachInterrupt(0, wakeUp, HIGH); LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF); detachInterrupt(0); } |
Znaczącą różnicę widać na załączonych zdjęciach. Moduł w stanie spoczynku przed modyfikacją kodu źródłowego i użyciem biblioteki Low-Power. Jestem zaskoczony dużą oszczędnością energii, jaką można osiągnąć wyłączając niepotrzebne moduły Arduino.
oraz po modyfikacjach i jego usypianiu:
Na pierwszy rzut oka, nie jest to duża różnica – ale przy zastosowaniu innego czujnika wzbudzającego zamiast czujki ruchu (np. przycisk/czujnik), będzie to wartość w okolicy zera. Wtedy nawet niewielki PowerBank, będzie działał bardzo długi czas.
Użyte części
- Arduino Nano – 14 zł
- Sim800L – 32 zł
- czujka ruchu – 5 zł
- konwerter stanów logicznych – 4 zł
Całość wyszła w okolicy 55-60 zł
Można oczywiście zastosować jakąś gotową obudowę lub ukryć w miejscu, gdzie nie będzie się rzucało w oczy (diody świecące można zakleić czarną taśmą izolacyjną).
Moduł GSM możesz mieć do (nie od, tylko do) 8 zł choćby neoway m590. Ma równiez funkcję wykonywania połączeń, obsługi GPRS i MMS! – jakbyś chciał wysłać fotkę. :)
Moim problemem była ‘niecierpliwość’. Użyłem tego co mogłem kupić na miejscu i się natychmiast bawić – bez czekania na dostawę. Ale bardzo dziękuję za info. Będę sprawdzał, bo pomysłów mam już kilka.
gdzie masz za 8 zł?
np tu https://www.aliexpress.com/item/M590E-GSM-GPRS-Module-900m-1800m-Sms-The-Message-Diy-kits-M590-Sms-CPU-MCU-Test/32672318561.html?ws_ab_test=searchweb0_0,searchweb201602_1_10152_10065_10151_10068_436_10136_10137_10157_10060_10138_10155_10062_10156_10154_10056_10055_10054_10059_10099_10103_10102_10096_10147_10052_10053_10142_10107_10050_10051_10171_10084_10083_10080_10082_10081_10110_10111_10112_10113_10114_10181_10183_10182_10185_10078_10079_10073_10070_10123-10051,searchweb201603_4,ppcSwitch_7&btsid=ac109a50-f692-48e9-8155-77b63b7167f0&algo_expid=0721b809-77fd-402b-8354-a7fbe1165322-0&algo_pvid=0721b809-77fd-402b-8354-a7fbe1165322
Chyba przekonałeś mnie do zabawy z arduino ! ;)
Mam tylko jedno małe pytanie… wspomniałeś o konwerterze stanów logicznych, ale nie ma go na schemacie i nie widzę w projekcie. Jak byś dodał go do schematu to dał bym 6 gwiazdek a tak muszę dać tylko 5 ;)
Pozdr.
Projekt działa tak jak jest. Konwerter jest zalecany w innych projektach – więc tym bardziej go zalecam. Niestety do mnie nie doszedł jeszcze :)
Pojawi się w najbliższym czasie (na podstawie obecnego projektu, lecz z zastąpieniem czujnika ruchu na MC-38) inna funkcjonalność. Z góry serdecznie dziękuję ;-)
A gdzie ten konwerter stanów logicznych ?? opisany że potrzebny… a nigdzie go nie widać
Odpisałem powyżej. Należy go zastosować – ale w tym schemacie i projekcie go nie użyłem – liczę się z uszkodzeniem modułu. Wtedy będę mógł napisać :) że jest niezbędny bezwzględnie.
Fajny artykuł, mimo że kod faktycznie wymaga poprawek. Ładne zdjęcia, czym je robiłeś?
Jest to mój pierwszy kod napisany w ciągu pierwszej godziny od rozpoczęcia przygody z Arduino.
Nakładka makro do telefonu 3in1. Używam codziennie do troszkę innych zdjęć.
Udało Ci się zrealizować ten punkt “ma być energooszczędne i umożliwić pracę do 6 miesięcy” ?
Bo przy poborze 0,0293A w uśpieniu nie widzę tego ;/ Odłączaj zasilanie modułu GSM daj przez tranzystor gdy usypiasz całość :)
Obawiam się, że coś chyba źle przeliczyłem. Coś mi wychodzi 2-3 tygodnie. No dobra, odpowiednio duuuuży PowerBank. Właśnie dokonałem odzysku pewnej liczby baterii z laptopów :)
Jeszcze dodam że pewna sieć (aby nie reklamować powiem tylko #FREEMIUM , jeden minus to trzeba aktywować co 6 miesięcy odnowa) daje za darmo 30 sms za free co miesiąc. Na takie potrzeby jak znalazł :) Ja używam jako 2-gą kartę w telefonie z dualsim.
Właściwie to może też zamontuje taki alarm na działce; z małym solarem do ładowania baterii ]:)
Też myślałem nad solarem na działce. Będę testował aku żelowy 12V i zobaczę jak to zadziała. Po testach dam znać :)
Od dłuższego czasu chciałem swoją działkę wyposażyć w podobne urządzenie. Mam co prawda alarm GSM, ale zachowuje się on czasami dziwnie i niektóre jego funkcje chciałbym zrobić sam… lepiej ;). Jeśli chodzi o wysyłanie smsów po wzbudzeniu czujki, to zalecam dodać dwustopniową weryfikację, tak aby sms był wysyłany jeśli czujka wzbudzi się dwa razy np w przeciągu 30 sekund. W przeciwnym wypadku możesz się spodziewać wielu fałszywych alarmów – chociażby od słońca zachodzącego za chmury – zależy gdzie ta czujka będzie patrzeć. Do zasilania, bo rozumiem, że prądu nie masz na miejscu, możesz rozważyć też mały panel słoneczny z ładowaniem aku.
Również nie wydaje mi się, aby czujka ruchu ciągnęła 30mA. U mnie w alarmie czujka ruchu z modułem radiowym 433MHz na jednej baterii 9V śmiga ponad rok, więc sama czujka pobiera jakieś mikroampery raczej. Prędzej moduł GSM ciągnie tutaj najwięcej.
Alarm był przewidziany do pracy tylko w pomieszczeniach zamkniętych. Jeszcze nie przewidziałem wszystkich możliwych problemów, mam nadzieję że część to Wy zgłosicie i samo możecie to przerobić :) aby działało niezawodnie.
Tak, moduł GSM pochłania większość prądu – pracuję nad rozwiązaniem.
Udało się coś zdziałać ? :-)
Tak, udało się to ogarnąć.
https://nettigo.pl/products/modul-przekaznika-1-kanal-5v
mam coś takiego, wylutowałem obie diody … pobór prądu minimalny – nie wychodzi mi na mierniku.
włącza się tylko podczas otwarcia drzwi, uruchamiając tym samym zasilanie dla całego systemu.
jak się ogarnę dodam schemat i zdjęcia :D
Mam uwagę dot. kodu.
W pierwszym kodzie uzywasz bezpośrednio nr. pinu do inicjalizacji przerwań:
^
//definiujemy przerwanie, obsługujące alarm
attachInterrupt(digitalPinToInterrupt(2),alarm,RISING);*
^
Natomiast w drugim podczas wykonania attachInterrupt podajesz bezpośrednio wartość 0, która nie ma w sobie żadnej informacji skąd się wzięła.
Doszukałem się w dokumentacji, że przerwanie 0 to External Interrupt Request 0 (pin D2) dlatego zgadza się to z nr. pinu 2 zdefiniowanego jako wakeUpPin.
Wydaje mi się, że dla czytelności kodu w tym miejscu powinieneś jednak użyć digitalPinToInterrupt(wakuUpPin), co oczywiście zostanie przeliczone wewnętrznie na wartość 0, ale ułatwi czytanie kodu.
Masz rację. Staram się to wszystko ogarnąć i zrozumieć zależności – ale dzięki za uwagę.
Konwerter stanów logicznych raczej Konwerter poziomów logicznych 3,3V/5V taka drobna dygresja
Bardzo ciekawy projekt. Też mam działkę i coś takiego od dawna chodzi mi po głowie. A czy da się to rozbudować o robienie zdjęcia (podłączenie taniej kamerki) i wysyłanie MMSa na zdefiniowany numer?
Mam taki zamiar. Kamerka do Arduino ma 640×480 – ale zamówię i dam znać jak wyszło. Najłatwiej będzie zdjęcie zapisywać na kartę SD i dopiero później wysłać MMS.
Bawię się właśnie nad usypianiem modułu GSM. Tak jak to wcześniej już zauważyliście – obliczyłem to dla braku poboru modułu GSM, ale naprawię to i dam info jakie rozwiązanie wydaje mi się najciekawsze. Każde Wasze rozwiązanie i pomysł jest inspiracją do dalszej zabawy i poszukiwania.
Cały projekt był moją pierwszą zabawą z Arduino, dlatego proszę o wyrozumiałość – nie udało się uniknąć błędów, ale za to zabawa z tym jest wyśmienita. Dawno nie rozwiązywałem tak przyziemnych problemów jak zasięg czujki, ile to prądu pobiera – kto się nad tym zastanawia, jeśli wszystko wszędzie jest?
PowerBank 10000, wytrzymuje do 3 tygodni w takim stanie jak jest – praktyka na razie 1 tydzień i nie jest źle.
Zasiliłeś sim800 napięciem 5V i logika 5V? Działa wszystko? Pytam bo właśnie się bawię tym modułem.
Tak, dopiero przy 5V działa to dobrze. Ale bez konwertera poziomów logicznych 3,3V/5V :) możesz uszkodzić moduł GSM – ja się z tym liczę. Jak mi przyjdzie zamówiony konwerter, podepnę go pod układ.
Przy 3,7V-4V układ nie zachowywał się tak jak oczekiwałem, podłączyłem 5V i dopiero można było pracować.
Pomyśl o zdalnym sterowaniu systemem. Przykładowo wysyłasz SMS do Arduino, żeby dezaktywować/aktywować alarm, bo pewnie nie chcesz, żeby za każdym razem wysyłał Ci SMS-y gdy wejdziesz do garażu. Albo opcja zdalnego resetu, bo głupio jechać na działkę, żeby się okazało, że alarm wywołała przelatująca mucha, a tak po resecie, jeżeli ponownie Arduino wykryje ruch to wtedy będziesz miał pewność, że coś się dzieje faktycznie, albo mucha dalej lata :).
Mam pomysł na 2 weryfikacje. 1 to MMS ze zdjęciem, 2 to mikrofon i możliwość zadzwonienia i słuchania co tam się dzieje. Na pewno zmodyfikuję jeszcze całość – do czego i Was zachęcam – będzie to rozwojowe.
Na działkę to i można fotowoltaikę dodać do ładowania powerbanka :)
Niezbędne elementy można kupić w jednym sklepie? Znacie taki ? Aby zapłacić tylko za jedną przesyłkę.
Allegro – polecam usera dorota44. Wszystko naraz i w cenach jak pisałem.
Również polecam. Akurat pani Dorota jest ode mnie z miasta (Zielona Góra), więc często odbieram u niej osobiście :)
Jeśli chcesz znacznie zejść z poborem prądu to wylutuj LEDy.
Z samym nano można znacznie zejść z poborem ustawiając częstotliwość 8MHz na wewnętrznym oscylatorze i zasilając 3.3V przez pin 5V (pominięcie regulatora). Nawet przy usypianiu ma to dość spory wpływ.
Zresztą do takich zabaw najlepiej używać “gołej” atmegi, bo ma mniej zbędnych (w tym przypadku) dodatków, n.p. w/w LEDów czy konwertera serial pod USB.
Rozważ też zasilenie nano i SIM800 bezpośrednio z ogniw (3,7-4,2), bo ten ostatni jest do tego dedykowany wręcz. Każdy zbędny regulator napięcia to strata prądu.
SIM800 na tej dedykowanej, małej antence miał u mnie żenujący poziom sygnału, musiałem dawać większe.
Moje przykładowe pomiary zużycia prądu przez gołą m382p:
podczas pracy:
– 16MHz, 5V: 14.8mA
– 8 MHz, 3.3V: 3.7mA
– 1 MHz, 3.3V: 1.1mA
Tryb PWR SAVE (bez ADC i BOD):
– 16 MHz, 5V: 1.11 mA
– 8 MHz, 3.3V: 0.25 mA
Bawiąc się w optymalizacje udało mi się na attiny85 i NRF24L01 udało mi się zrobić urządzenie wysyłające sygnał co 2 sek, które na baterii CR2032 (ok. 210mAh) mogło działać 2-3 miesięcy.
Co do aktywacji/dezaktywacji czujki w momencie przebywania na działce, mozesz zaimplementowac regulke, ze po otrzymaniu wiadomosci o danej tresci, czujka sie aktywuje – analogicznie w przypadku dezaktywacji. Na swoj telefon sciagasz sobie program SMS scheduler(android) i ustawiasz moment przeslania odpowiednich wiadomosci.
Niestety jeszcze nie jest to wprowadzone – na pewno będzie. Na razie musimy sami odłączyć całość z zasilania :) podczas używania pomieszczenia. Do tego będzie dochodziło sprawdzanie numeru uprawnionego itd. Na razie to była tylko zabawa z Arduino :)
Zainteresował mnie bardzo ten projekt. Chciałbym zamontować czujkę w drzwiach garażu. Najlepiej żeby jeszcze aparat robił zdjęcie osobnika i przesłał na telefon. Jestem informatykiem, nie jestem programistą tylko adminem. Kupię niezbędne elementy takie jak :
Arduino Nano V3
moduł SIM800L
czujka ruchu (HC-SR501 PIR)
aktywna karta SIM
PowerBank
Co jeszcze muszę kupić ? Jakie okablowanie ? Co będzie potrzebne aby to zaprogramować? Komputer mam ;).
Nigdy czegoś takiego nie robiłem :)
Soft to Arduino IDE – do pobrania https://www.arduino.cc/en/Main/Software
Dokup Konwerter poziomów logicznych 3,3V/5
Przewody do połączenia lub polutowania – można także kupić płytkę drukowaną, aby to wszystko ładnie umieścić.
Na pewno potrzebny będzie kabel mini USB do zasilania Arduino :)
Przewody do połączenia powinny być męskie czy żeńskie ;) ?
wszystko zależy jak chcesz to podłączyć.
ja do testów i zabaw używam oby żeńskich.
A mógłbyś dodać moduł aparatu ? żeby robiło np. low res zdjątka i wysyłało sms tez? zaimplemntuj kod
ja bym dodał powerbank i mała bat słoneczna chociażby panel z tych ogrodowych lampek
Właśnie się zastanawiam nad takim panelem – czy zamówić :) oraz jak to później podłączyć, aby ładnie działało.
https://nettigo.pl/products/ogniwo-sloneczne-2w
Kolego HERON mam jeszcze małą prośbę. Zrobiłem sobie już odpowiednie zasilanie, konwerter napięć logiki i wszystko ładnie ruszyło :)
Niestety po jednym dniu zabawy nagle straciłem zasięg i albo coś przestawiłem w ustawieniach abo zrobiłem jakieś zwarcie do anteny. Prośba moja taka. Możesz mi omomierzem zmierzyć oporność między drutem anteny a masą? u mnie jest 1ohm i to chyba oznacza że coś jest uwalone:/
Bardzo proszę bo nie mam jak tego sprawdzić
Dopiero teraz zobaczyłem pytanie. Przyjdę do domu to sprawdzę.
Czy modem odpisuje na polecenia? AT co odpisuje?
Czy jest komunikacja pomiędzy Arduino a Sim800L.
Kod do zabaw z poleceniami to:
#include
SoftwareSerial gsm(11, 12);
String atCommand;
void setup()
{
Serial.begin(9600);
while (!Serial) {}
gsm.begin(9600);
while (!gsm) {}
}
void loop()
{
if (gsm.available()) {
Serial.write(gsm.read());
}
while (Serial.available()) {
delay(10);
if (Serial.available() > 0)
{ char c = Serial.read();
atCommand += c;
}
}
if (atCommand.length() > 0)
{
gsm.println(atCommand);
atCommand = “”;
}
}
Rav – układ masz sprawny, tak to wygląda – i stawiam na problem z zasilaniem. Oporność jest taka sama jak na nowym układzie :) więc ok. Daj znać, czy udało Ci się rozwiązać ten problem.
Zasilanie mam cały czas to samo na którym wcześniej ładnie działało. Teraz dioda miga szybko a na polecenie AT+CSQ dostaje +CSQ 0.0 czyli brak zasięgu:/ Dzięki wielkie za sprawdzenie. Czyli będę siedział i próbował.
Do tego projektu dodałbym też zakres godzin przy których czujnik będzie aktywny tak żeby np. działał tylko w nocy :)
Ha. Projekt tego nie zakładał :) To miało być proste i przyjemne bez ‘wodotrysków’ – połącz, odpal i działaj.
Ale można, jeśli uznamy ten projekt jako wyjściowy – to zachęcam do modyfikacji i zmian.
Jestem zielony w programowaniu więc mam pytanie czy kod mam wkleić do programu arduino i kliknąć wgraj?
Tak. W razie problemów, pytaj.
Hej,
mam moduł GPS taki jak w linku : http://propix.com.pl/pl/p/GSM-SIM800L-EVB-v-2.2-antena/794
nie bardzo wiem jak mogę go podpiąć. Czy ktoś pomoże? Z góry dzięki.
Zerknij na schemat jaki dodałem do artykułu. Łączysz dokładnie tak samo. TX – 11 i RX – 12, zasilanie 5V i GND.
Dla mnie ten moduł nie ma niestety zastosowania – nie ma wyjścia na mikrofon :D
Dzięki Heron!
Robię coś podobnego i napotkałem kilka problemów których Heron chyba nie miał
ale nie o tym tu.
Widzę że SIM800L jest podłączony pod pin +5V ?
Wg spec napięcie zasilania tego modułu to 3.5-4.4V, a chwilowy pobór to 2A.
Wg danych katalogowych przez Nano nie powinno “przechodzić” więcej niż 500mA.
Czy nie stwarza to jakichś problemów, działa? Nie grzeje się?
Nie miałem z tym problemów. Na razie, podczas testów i zabawa wszystko działa poprawnie.
Nigdy nawet nie zbliżyłem się do takiego poboru prądu – norma to 40-50mA.
Układ przy logowaniu do sieci pobrał mi max 110mA – więc znacznie poniżej zaleceń Arduino.
Zachęcam do testów i weryfikacji.
Hej, mam pytanie mianowicie jak dokładnie podłączyć konwerter stanów logicznycznych (D11, 12 a RX, TX) na przykładzie załączonego przeze mnie schematu oraz co to jest CALL prowadzące do D3 na twym schemacie Heron. Czy chodzi o SPK- . Na tym poległem :D
D3 to na Sim800L – RING
Konwertera nie używałem jeszcze – do tej pory wszystkie układy działają poprawnie i nie zauważyłem jakichkolwiek problemów. TX to wychodzące, więc podłącz stronę 3.3V do układu GSM :) zgodnie z TX i RX, część 5V niech idzie do Arduino. Nie zapominajmy oczywiście o podłączeniu zasilania.
Dziś poskładałem całość z Arduino Mini Pro – 0,016A – postęp jest. Mam już akumulator żelowy 7Ah, będę sprawdzał – tylko się naładuje. Dodatkowo, całość zaczyna przypominać ładny układ i co najważniejsze, wszystko jest wymienne – znacznie ułatwia to programowanie Arduino. To długie z przodu – mikrofon :) do dzwonienia i słuchania co się w okolicy dzieje. Jeszcze kilka modyfikacji programu i udostępnię całość.
Świetny pomysł oraz realizacja. 3 mam kciuki za realizację kolejnych pomysłów :-)
Uznałem że tak będzie mi łatwiej. Wszystkie elementy są wymienne i nie ‘tracimy’ ich, jeśli zmieni nam się koncepcja – lub układ się znudzi. Najwięcej problemów jest z programowaniem Mini Pro – a tak, wyjmujemy, programujemy i wkładamy ponownie. Działa. Kolejne projekty już w trakcie …
https://2.bp.blogspot.com/-QLY_QrbsH3g/V1_4o21AYPI/AAAAAAAABVE/9Bbvy2Qvl7Y5Rc5X6jv7MbPSvnQvI0JWQCKgB/s640/20160614_185018.jpg
jak to podlaczyc ?? np wyjście CALL czy to jest RING w tym module ??
https://photos05.redcart.pl/templates/images/description/995/Image/kuba/23wrzesien/Modu_GSM_GPRS_900_1800MHz_-_Neoway_M590E.jpg
Tak to wygląda.
Ale działać bez tego też będzie – zobacz na razie bez tego :)
Witam
Jak wgrać ten kod do arduino ??
https://www.arduino.cc/en/Main/Software
ja używam Arduino IDE – na razie mi odpowiada.
Dobra, mój projekt z uwagi na wymaganą dłuższą pracę – został wzbogacony w mocniejsze zasilanie. Sprawdzę w praktyce ile to wytrzymuje :)
Czy mógłbyś edytować swój wstawiony tekst pokazując poprawiony schemat itp? Przydało by się takie podsumowanie poprawek w samym artykule :)
Ogólnie projekt mnie zaciekawił bardzo.
Zaraz sprawdzę możliwości edycji. Mam kilka poprawek do całości i troszkę testów za sobą. Choć raczej dziś tego nie zrobię, ale jak najszybciej poprawię.
Witam w dokumentacji modułu gsm pisze o tym żeby nie przekraczać 2.8V i że przy starcie moduł potrzebuje 2A. Możliwe że problemy z zadziałaniem modułu były takie ze arduino nie potrafi samo w sobie dostarczyć tyłu Amper a 5V je tylko powoli smażymy.
Realne. Na razie SIM800L działa mi bardzo dobrze przy 5V. Praktycznie od miesiąca jest online, kupiłem kilka dodatkowych modułów GSM, GPS oraz różne wersje Arduino i sprawdzam jak to działa. Liczę się z uszkodzeniami – na razie poza samodzielnym rozwaleniem mini pro, reszta jest OK. W dokumentacji SIM800L pisze : “napięcie: 3.4-4.4 V ale rekomendują 4.0V” natomiast 2.8V wymaga cała reszta dotycząca komunikacji :) dlatego tam zalecany jest konwerter – chwila czasu i przyjdzie troszkę dodatkowych elementów z zagranicy to opiszę.
a nie lepiej kupic od razu cos takiego: https://www.aliexpress.com/item/New-SIM800L-GPRS-GSM-Module-w-PCB-Antenna-SIM-Board-Quad-band-for-MCU-for-Arduino/32622274840.html (TTL serial interface compatible with 3.3V and 5V for MCU Microcontrollers,competible with for ) i nie trzeba wtedy zadnych konwerterow stanow logicznych. Dodatkow wszystko mozna zasilac z przetwornicy 5V. Podobno uzyty przez modul GSM przy 5V nadmiernie sie nagrzewa, czy mozesz potwierdzic ta informacje ?
Ten moduł co polecasz jest super – ale mi zależało na możliwości włączania ‘podsłuchu’ – a do tego mikrofonu nie podłączysz. Co do tego zastosowanego przeze mnie – 99% czasu moduł grzecznie odpoczywa i nic nie robi – nie zauważyłem, aby cokolwiek się grzało. Postaram się zwrócić większą uwagę i dam znać, działa już długo i stabilnie, więc sprawdzę przy najbliższych odwiedzinach w garażu.
Cześć wszystkim! Utknąłem w miejscu jak zamienić kod aby alarm tylko dzwonił bez wysyłania smsów… nie wiem jak dokładnie zamienić komendy… Pomożecie?
Cześć …
Zrobiłem alarm na SIM800L domowy, oparty na 3 czujkach ruchu i dwóch kontaktronach. Działa pewnie i niezawodnie ale… Mam aktualnie 3 moduły SIM800L i bawię się nimi. Chcę nauczyć się sterowania urządzeniami poprzez wysyłanie do nich sms. Zauważyłem, że mają one problem z “przyjmowaniem” kart SIM. O co dokładnie mi chodzi? Możecie mieć następującą sytuację, że moduł nie chce zalogować się do sieci lub po prostu nie widzi karty. Objawia się to szybkim miganiem diody kilka razy, potem przerwą i znów szybkim miganiem diody. Możecie spędzić dużo czasu tak jak ja na rozkminianiu co jest nie tak a wystarczy włożyć inną kartę sim, tego samego operatora i moduł się loguje po paru sekundach. Jest to frustrujące i może wkurzać. Jak już dobierzemy kartę do modułu to działa niezawodnie chociaż zauważyłem, że czasami potrafi przejść znów w trym szybkiego miganie diodą i przerwy, na tym etapie na pewno nie wyśle sms-a. W związku z tym planuję wrzucić do alarmu zegar czasu rzeczywistego, dzięki któremu będę dostawał smsy o określonej godzinie, że alarm działa. Jeśli nie dostanę takiej wiadomości to będę chciał by arduino resetowało SIM800L.
moduł Sim800L przy starcie pobiera nawet 2 ampery. z “opornym” modułem zrób taki test: postaw go blisko załączonego wzmacniacza z głośnikami, obok głośników do kompa. chodzi o to, aby w głośnikach było słychać “pierdzenie” podczas logowania się do sieci. jeśli sim800L miga kilka razy szybko, gaśnie i w głośnikach słychać krótkie “pyk” to znaczy że mu brakło prądu. dolutuj do modułu kondensator 1000mikroF, LOW ESR, taki jakie są w płytak głównych PC i sim800L zacznie działać, za każdym razem
evan,
Heron napisal to na początku opisu projektu:
Wystarczy w miejsce wysyłania wiadomości SMS lub obok niej dodać ATD+48xxxxxxx; (nie zapominajmy o znaku ; ponieważ jest on niezbędny). Komenda ATH kończy połączenie (np. po 20 sekundach).
Zmieniłeś i nie działa?
cheppeniathan,
Próbowałeś sprawdzaś statusy SIMa? Może warto go restartować zaraz jak podaje status=2 zgodnie z tą komendą:
AT+CPAS //podaje status, WARTO SPRAWDZAC CO NP. 60 SEK
// 0 – READY (to accept AT commands)
// 2 – unknown
// 3 – ready but the ringer is active
// 4 – ready but a call is in progress
albo jak zgłasza problem z zerejestrowaniem sie w sieci (a to chyba Twój przypadek), popatrz w dokładny opis komendy, ja podałem tylko kilka odpowiedzi z SIMa:
AT+CREG? //sprawdza czy SIM900 zarejestrowal sie w sieci, positive possible answers:
//+CREG: 1,1 -registered to home network
//+CREG: 1,2 -not registered but searching
//+CREG: 1,5 -registered but roaming
Sprawdzałeś moc sygnału w miejscu gdzie działa SIM?
AT+CSQ //podaje moc sygnalu;
//0 – najslabszy
//31 – najmocniejszy
//99 – nie detektowalny
DaBa
..tak, moim zdaniem warto mieć w kodzie sprawdzenie SIM800 jakąś komendą. AT+CPAS wydaje się idealne bo jest prosta odpowiedź np. 0 czyli jest połączenie, moduł działa prawidłowo.
Moc sygnału, tu ciekawostka, na antenie w postaci kawałka drutu z zestawu to 16,0 a na dokupionej, dedykowanej do modułu 17,0 … niewielka różnica prawda?
To nie wiem skąd problemy z zarejestrowaniem w sieci. Ale doświadczenia z SIM800 nie mam. Używam Sim900 i nie zauważyłem nic co opisujesz. Urządzenie działa z kartami T-Mobile i PLAY, zarówno z PINem jak i bez. Moc sygnału 19.0.
Nie wiem DaBa, czy Twój Sim900 działa w alarmie, w jaki sposób go obserwujesz. Ja mam swój w alarmie. Wracam po kilku dniach do domu i sprawdzam, czy dostaję sms-y po wejściu do mieszkania… Sprawdzam go już trochę czasu i raz zdarzyło się, że alarm działał (sygnały dźwiękowe, świetlne) ale sms-y nie były wysyłane. Zajrzałem do centralki a SIM800L był “zawieszony”, miga wtedy 7 razy szybko i potem przerwa ..tak w kółko. Nie jestem pewien co w ten sposób komunikuje natomiast jestem pewien, że tak być nie może.
Wykorzystałem to co napisałeś, czyli komendę AT+CPAS. Zaznaczyłem w kodzie, że jeśli jedna z char to będzie dwójka to ma zresetować moduł.
Moduł jest sprawdzany non stop w tym samym case (funkcja switch) jak sprawdzane są sygnały z czujek, bez żadnego delay czy jakiejkolwiek pętli.
(Miałem pomysł by stworzyć pętlę, która tylko co jakiś czas sprawdzi moduł ale niestety nie umiałem tego zrobić w taki sposób by alarm działał prawidłowo.)
W przypadku wykrycia dwójki program wchodzi do case’a gdzie ma zresetować moduł i odczekać 20 sekund. Trudno jest mi zweryfikować czy to działa w tej chwili. Poobserwuję go znów kilka tygodni i w ten sposób sprawdzę jego niezawodność.
Zmienię kod w tym tygodniu i będę logował do pliku każdą sytuację kiedy SIM nie odpowie na komendę AT – potraktuję to jako prawdopodobną zwiechę. Zostawię to na 24/7, z odpytywaniem o statusy I/O, moc sygnału i rejestrację w sieci, w ciągłej pętli bez delays.
Wrócę ok. połowy sierpnia z wynikami.
Wg komentarza z ponizszego linka do forum Arduino, miganie 7-9 razy zniknęło po wymianie zasilania:
https://forum.arduino.cc/index.php?topic=329604.msg3239894#msg3239894
Moze dzialasz na granicy poziomu zasilania?
Testowalem uklad od 30 lipca. Do dzisiaj to 16 dni. Nie zauważyłem żeby SIM mrugał przez ten czas inaczej niż raz na 3 sekundy. Czyli zgłaszał że jest zarejestrowany w sieci. Podczas testu wysyłałem w kółko komendy AT:
CPAS
CREG?
CSQ
CMTE?
SGPIO=1,1, SGPIO=1,2, SGPIO=1,3, SGPIO=1,4, SGPIO=1,5, SGPIO=1,6
Kolejną komendę wysyłałem natychmiast po otrzymaniu odpowiedzi na poprzednią. Układ odpowiadał na ok. 60-62 komendy na sekundę. Ale zdarzało mu się, że nie odpowiadał na komendę AT w dwóch scenariuszach:
1. przychodząca rozmowa, czyli np. 7xRING a potem NO CARRIER
2. automatyczna synchronizacja czasu z siecią, czyli np. *PSUTTZ: 2017, 8, 13, 2, 43, 26, “+8”, 1 – widzę ten wpis raz na dobę
W obydwu przypadkach musiałem odpuszczać czekanie na odpowiedź i wysyłać kolejna komendę AT z kolejki.
Skłaniam się ku opinii, że albo działasz na granicy poziomu zasilania, albo nie odfiltrowujesz zakłóceń z zasilania. Mój układ był podczas testu zasilany poprzez listwę komputerową, a 5VDC (takim napięciem mam zasilać płytkę dewelperską, którą używam) uzyskuję z zasilacza montażowego 5V 10A.
Hej Heron, podpisuję się że projekt super, działa i dziękuję za ładne opisanie tematu. Mam jednak gorącą prośbę o aktualizację kodu uwzględniający podłączenie mikrofonu. To fajna opcja, którą też chciałbym dodać.
Dzieki z góry!!!
Marek
Witam,
Heron, dziękuję za inspirację !
Układu używam do kontroli poprzez sms. Mój kod działa pięknie, ale niestety , moduł , który nie jest używany (gdy nie bawie sie komedami z konsoli) przez > ~ 40 min poprostu sie zawiesza. Komenda AT go budzi, ale , w tedy są tracone ustawienia z SETUP, a są to +CMGF, +CSCS i AT+CNMI, po podaniu na nowo (dzieki millis co min) wraca wszystko do normy. Rozwiązanie troche lipne , ale na obecną chwiele nie mam innego. Jakies porady Państwo macie ?
ramboar, AT&W zapisze +CMGF i +CSCS na stałe. nie mam pewności co do +CNMI.
Chyba lekko skłamałem. AT&W nie zapisuje +CMGF i +CSCS wg specyfikacji SIM900. Przepraszam.
Witam, bardzo fajny projekt ale mam pytanie odnośnie zapisu “\r\n” mógłby mi ktoś wytłumaczyć co oznaczają literki? Chciałbym zaznaczyć, że u mnie na zasilaniu 5V z arduino nie jest wstanie wysyłać SMS ani się komunikować z poziomu konsoli poprzez komendy AT, a jeśli dołożę osobne zasilanie 4V to wszystko działa bez zarzutów nawet radio ma wbudowane:D Jeśli chodzi o sim to u mnie działa na PLAY.
Dzięki
\r\n to znaki nowej linii i powrotu karetki ( generalnie chodzi o nową linię)
Nic dziwnego, że ci nie działa na 5V.
Ten moduł NIE MOŻE być zasilany napięciem 5V.
Maksymalne napięcie zasilania to 4.2V.
Wyższe może USZKODZIĆ UKŁAD.
Minimalne to 3.7V więc z pinu 3.3V też się go nie da zasilić.
Poza tym przydałoby się kilka kondensatorów filtrujących na wejściu zasilania modułu bo on pobiera dużo prądu skokami.
Najlepszym wyjściem jeśli chodzi o zasilanie tego modułu z arduino jest regulator napięcia na 4V.
Regulator LDO (low dropout voltage) to sobie poradzi nawet z 5V z pinu arduino.
Można też dać regulator regulowany i zafiksować napięcie na 4V za pomocą rezystorów.
Autorowi to chyba fartem zadziałało.
Fartem – czy też nie, raczej doświadczalnie. Nie udało mi się do tej pory spalić ani jednego układu :)
Jedyna różnica to taka, że układy Arduino były kupowane na alledrogo ;)
Układ prezentowany na tym projekcie, działa codziennie – niezawodnie od tamtej pory.
Zwracam uwagę – że był to mój pierwszy projekt, bazujący na potrzebie stworzenia czegoś ‘na szybko’. Wraz z wiedzą i doświadczeniem, warto kilka rzeczy poprawić – brakło mi ostatnio czasu, ale już wracam do żywych :)
Modułu używam wraz z pro micro, kupionego na aliexpress. Gdy zasilałem go 5V z pinu pro micro, nie logował mi się do sieci, a jeżeli już to szybko tracił zasięg. Po podłączeniu go do pinu raw (vin), pięknie ożył i nie mam już z nim problemu, pro micro podłączone przez usb.
Niektóre moduły mają wbudowany regulator napięcia, być może VIN to wejście regulatora i dlatego działa.
Witam!
Czy ktoś z doświadczonych tutaj forumowiczów może podzielić się w pełni działającym kodem tego projektu? Heron chyba ciągle na wakacjach, więc nadal nie ma kodu całościowego: uwzględniającego i oszczędzanie energii i np. podłączenie mikrofonu oczywiście z opcją zadzwonienia i posłuchania co się dzieje na obiekcie.
Gloria i chwała temu kto to dokona.
Pozdrowienia!
Marek
Marek, chętnie bym się podzielił, ale nie mam kodu do tego projektu. Nie używam Arduino.
Jeżeli coś robię to na RaspberryPi albo OrangePi i używam Pythona.
Wróciłem – otwarcie własnej firmy potrafi pochłonąć całkowicie. Dostałem kilka paczek z ‘hin’ i będę publikował kolejne pomysły. Poprawię to co tutaj jest i pouzupełniam. W poniedziałek będę miał już stację do lutowania oraz kilka innych ciekawostek.
Co do mikrofonu i dzwonienia – też to wszystko dodam – chyba, że ktoś oczywiście ma już to gotowe.
W poniedziałek wracam do żywych – i tym bardziej do zabawy z układami.
Hello Heron,
Sierpień się kończy i pogoda nieco słabsza więc może uda Ci się wrzucić aktualizację kodu? Z góry bardzo dziękuję!
pozdrawiam,
Marek
Czy działa CI normalnie ten projekt?
Drogi Heronie ;-) uda Ci się ten kod uaktualnić?
Wszyscy czekają, bo jesień idzie i domki działkowe bez alarmu będą…
Witam,
Podzielę się nowym odkryciem. Jak już napisałem wcześniej, wszystko mi działa na jednym module z 5V na pro micro, zasilanym z usb lapka, bez zbednych modulatorów itp. Zakupiłem drugi taki sam moduł, też z ali i u tego samego sprzedawcy, wyglądają identycznie. Niestety, przy 5V moduł się wiesza, brak stabilnej komunikacji. Rozwiązaniem było stosowanie się do noty katalogowej, jeżeli chodzi o zasilanie, tak jak już napisał Bob.
Teraz chcę sima uruchomić na attiny, mój kod co do attiny45 jest za duży :) brak wystarczającej pamięci. Pod ręką mam też attiny85 i tu pamięci już wystarcza, kod kompiluje się i wgrywa, ale nie wiem dla czego nie chce działać. Czyżby attiny było okrojone co do serial.gsm ?
Uruchomił ktoś już to na attiny ?
pozdrawiam
a zaczepię Kolegę tak przy okazji o rzecz nieco starsza – jak wybrnąłeś z tego problemu?
moduł , który nie jest używany (gdy nie bawie sie komedami z konsoli) przez > ~ 40 min poprostu sie zawiesza
Dzieki millis
co minutę wykonują się komendy AT
Sam sobie odpowiem :P
Jak najbardziej smiga na attiny45 :) Używam obecnie z wewnętrznym zegarem i tu się pojawiają problemy z millis i delay , więc polecam kryształ dodać .
Heron mogę do Ciebie jakiś kontakt po za majsterkowo.pl?
WIesz co może być nie tak jeżeli ciągle wychodzi mi:
#include “LowPower.h”
^
compilation terminated.
exit status 1
Błąd kompilacji dla płytki Arduino/Genuino Uno.
Powinno być #include “LowPower.h” a nie #include „LowPower.h”
Jak jest rozwiązany problem z rozbrajaniem alarmu ? Czyli wchodzimy my jako użytkownicy i też alarm wysyła SMS-y ? Czy jakoś go wyłączasz – rozbrajasz ? Nie myślałeś alby alarm rozbudować o klawiaturę szyfrową do uzbrajania i rozbrajania ??
Rozwiązałem to prosto – wyłącznik :) odcinający zasilanie. Dzięki temu, przeprowadzam przy wchodzeniu i wychodzeniu testy – czy działa poprawnie. Wiem, rozwiązań jest wiele. Miało być prosto i tanio. Oczywiście że polecam dodawanie swoich rozwiązań – wraz z podłączaniem zasilania, klawiatur itd. Co tylko macie ochotę. Wszystko się da – wystarczy tylko pomysł.
Witam, jestem świeży w temacie i mam pytanie czy jak analogicznie podłącze i przekopiuje kod do innej płytki ( uno rev 3 klon) to wszystko poprawnie zadziała?
Pozdrawiam
tak
Witam. Zacząłem dziś ten projekt i mam problem. Mam ten moduł GSM:
https://botland.com.pl/moduly-gsm/9492-modul-gprsgsm-sim800c-bluetoothttsdtmfstm32.html
Adruino: Nano v3.0 CH340 – zgodny z Arduino
Czujnik: https://botland.com.pl/czujniki-ruchu/1655-czujnik-ruchu-pir-hc-sr501-zielony.html
Mam problem z podłączeniem zasilania, na tym schemacie jest, że 5V wychodzi z Arduino, idzie do czujki i do modułu GSM – jak to zrobić? Potrzeba specjalnego kabelka?
Proszę o pomoc
Ten projekt dawno powinien wylecieć do śmietnika, ponieważ autor zasila moduł gsm 5V, co jest niezgodne z jego specyfikacją. Tylko patrzeć jak uszkodzi się moduł albo arduino. Jeżeli chcecie zasilać 5V moduł gsm z power banku lub ładowarki to kupcie inny moduł. Z dobrych i tanich modułów gsm mogę polecić Air200 (na aliexpress kosztuje on 4$). Użycie w projekcie tego modułu z czujnikiem pozwoli dodatkowo pozbyć się arduino, bo program wgracie do Air200.
Działa na 5V. Nie jest zalecane ale działa poprawnie.
Mam też Air200 – nawet kilka – jest to rozwiązanie większości problemów.
Projekt miał pokazać, że można coś szybko i prosto wykonać. Miał zachęcić innych do eksperymentowania, wprowadzania własnych rozwiązań – ja nie tworzę komercyjnego, gotowego rozwiązania. Ja tylko pokazałem, że da się.
Wraz z czasem i doświadczeniem, mam kilka dodatkowych pomysłów i rozwiązań :) zachęcam także Ciebie do dzielenia się własnym doświadczeniem, publikacją swoich rozwiązań i pomysłów.
To pochwal się co zrobiłeś ciekawego na Air200?
Air200? Olałem to – za dużo problemów :)
Stwierdziłem że Air200 – to rozwiązanie większości problemów, ponieważ ma wszystko w jednym module. Nie za bardzo mam zaufanie do softu z ‘hin’ totalnie ingerujących w system operacyjny, niezbędnego do uruchomienia Air200. Stawiam na sprawdzone rozwiązania.
Natomiast, troszkę się sprzętu Arduino i różnych klonów nazbierało.
Raczej Ty się pochwal swoimi publikacjami :)
To nie jest miejsce na chwalby, a na uwagi do Twojego projektu. Dobrze, że zgodziłeś się z poniżej umieszczoną opinią użytkownika Bob, który trafnie podsumował Twój projekt. Mimo wszystko życzę lepszych osiągnięć w kolejnych pracach.
Na śmietnik – widziałeś ten moduł? 😀
Tak widziałem, ponieważ mam sim800l i Air200.
To popatrz dokładnie co jest na początku toru zasilania, i nie obrażaj autora, bo wykonał kawał dobrej roboty.
Tak jak napisałem wcześniej. Projekt nadaje się tylko na śmietnik i to z kilku powodów. Po pierwsze sim800l nie może być zasilany bezpośrednio z pinów arduino, bo mają one za małą wydajność prądową, co spowoduje ich uszkodzenie. Po drugie autor tematu napisał żeby stosować konwerter poziomów logicznych na 3.3V i nikt na to nie zareagował. Teraz to ja zapytam. Od kiedy uart w tej wersji płytki sim800l może pracować na 3.3V? Proponuję zapoznać się z datasheet sim800l bo tam jasno i wyraźnie napisano z jakim maksymalnym napięciem może pracować uart sim800l.
Ech, pracują u mnie obecnie 2 takie moduły. Jeden z konwerterem – drugi bez. Oba działają już od pół roku cały czas. Jest zalecenie aby używać napięcia 3.3V :) choć doświadczalnie sprawdzam wszystko i nie widzę problemu. To było w zamierzeniu proste i szybie rozwiązanie męczących mnie problemów. Nie wszystko jest doskonałe.
Na której stornie w datasheet sim800l przeczytałeś, że zleca się stosować 3.3V na jego UART?
2.8V :)
Sprawdzałem na wyższych … i się nie spaliło. Jak się spali, trudno. Działa.
A ja kolego proponuję żebyś zapoznał się z zawartością puszeczki nadajnika, i nie pisał bzdur.
Trudno dyskutować z osobą, która nie przyjmuję do wiadomości podstawowych założeń zawartych w datasheet.
Znalazłem ten moduł na aliexpress ( https://pl.aliexpress.com/store/product/10pcs-lot-Smallest-SIM800L-GPRS-GSM-Module-MicroSIM-Card-Core-BOard-Quad-band-TTL-Serial-Port/1948124_32641131001.html )
I na zdjęciach nie widać aby na płytce znajdowało się cokolwiek poza kilkoma pasywnymi komponentami (prawdopodobnie rezystory podciągające na jakiś pinach sterujących i kondensatory filtrujący na zasilaniu) . Tak więc raczej widoczna na zdjęciach puszeczka nadajnika jest podłączona bezpośrednio do wyjść na płytce.
Znalazłem też dokumentację tej puszeczki czyli modułu SIM800L : http://wiki.seeedstudio.com/images/4/46/SIM800L_Hardware_Design_V1.00.pdf
(Na stronie 63 można zobaczyć na zdjęciu że jest to dokumentacja całego modułu a nie jakiegoś czipu w środku. )
Natomiast na stronie 58 można przeczytać, że maksymalne napięcia zasilania to 4.5 V a nie 5V (rekomendowane napięcie to 4V) oraz, że napięcie stanu wysokiego na pinach może wynosić maksymalnie 3.1V.
Tak więc jeśli moduł działa na 5V to raczej fartem.
Z 3.3 V też się nie uda go zasilić bo napięcie minimalne to 3.4V.
Moduł wymaga więc dedykowanego zasilacza na 4V zdolnego do dostarczenia impulsów natężenia do 2A.
Przykładowy schemat zasilacza można z resztą znaleźć w dokumentacji na stronie 21/22.
Do podłączenia do arduino potrzebny jest również konwerter poziomów logicznych na 3V a nie na 3.3V.
Masz rację. Napięcia powinny być zgodnie z zalecanymi.
Podpinałem kilka układów Sim800L pod 5V i nie miałem najmniejszych problemów.
W tej chwili w jednej z ‘strzeżonych’ lokalizacji pracuje układ – akumulator :) dający z 12V … 5V (całkowicie bez zmiany poziomów logicznych) – działa tak od ponad 6 miesięcy bez większych przerw.
Drugi układ, też działający, usprawniony – pracuje na 3 ogniwach 18650 (3,7V) – zasilających Arduino oraz Sim800L, też bez zmiany poziomów logicznych.
Wszystko działa poprawnie, sprawdzałem inne napięcia – jedyne co mi się udało spalić :D to Nano. Zwracam tylko uwagę – że przy napięciach niższych niż 3.7V – problemem jest wydajność prądowa ‘na starcie’ układu. Później spokojnie można napięcie obniżać – sprawdzone doświadczalnie :)
Jednak, postaram się nanieść kilka poprawek do projektu – uwzględniając Wasze uwagi.
Witam, poradziłem sobie z zasilaniem (kupiłem taki rozdzielnik) mam dalej problem. Nie wiem czy dobrze to połączam wszystko, bo mam SIM800C mam tam 5V i GND, a po drugiej stronie GND, RX i TX – niestety to nie działa. Czujka sprawa, bo sprawdzałem oddzielnie. Brak mi połączenia z modułem GSM cały czas. Podłączam RX TX zgodnie ze schematem do D11, D12, 2x GND i zasilanie, co tu może być źle?
Mam prośbę, podeślij proszę zdjęcie – jak masz to połączone oraz informację – jakiego Arduino używasz. Postaram się pomóc.
Arduino takie:
https://botland.com.pl/plytki-zgodne-z-arduino-pozostale/8222-nano-v30-ch340-zgodny-z-arduino.html
Moduł SIM:
https://botland.com.pl/moduly-gsm/9492-modul-gprsgsm-sim800c-bluetoothttsdtmfstm32.html
Najpierw zasilanie i uziemienie:
https://i.imgur.com/gZypryN.jpg
Idą do:
https://i.imgur.com/vE5rznZ.jpg
Arduino dalej:
https://i.imgur.com/j8Ow4nd.jpg
D2,D3, GND:
https://i.imgur.com/dxeSiwC.jpg
Podłączyłem pod D2 i D3, bo korzystałem teraz z biblioteki:
https://github.com/vshymanskyy/TinyGSM
I stąd przykładowe programy pokazują brak połączenia z modułem.
Napisałem tu odp. ze zdjęciami, ale jej nie widzę, coś poszło nie tak?
Jak podłączysz, czy układ w ogóle się ‘zaświeca’? Zaczyna działać? Podłącz tylko 4V i GND.
Tak, miga lampka. W monitorze mam taki komunikat:
Module does not respond!
Check your Serial wiring
Check the module is correctly powered and turned on
Lampka net led miga cały czas, lampka TX też miga raz na jakiś czas.
Co to za wielkie zwarcie przy GND?
Jeśli możesz, zdjęcia lepszej jakości – lub pokaż proszę schemat.
To moje lutowanie, w sumie drugie w życiu – czy to może być przyczyna/ Jeśli tak to czy da się jeszcze coś z tym zrobić? Dziękuję za odpowiedzi!
Tak :) to może być przyczyna problemów :) mam nadzieję że moduł jeszcze działa.
Spokojnie sobie z tym poradzisz. Możliwości zdejmowania nadmiaru cyny jest kilka – ja stosuję
https://botland.com.pl/odsysacze-i-plecionki/172-plecionka-do-odsysania-cyny-2-mm.html lub odsysarkę do cyny.
Kupiłem plecionkę, odessałem, działa tzn. łączy, ale smsów dalej nie wysyła. Przy wszystkich testach nie mam połączenia. Dokupiłem antenę i zasilam go baterią 3,7 v… niestety w AT Debug mam dalej:
You can now send AT commands
Enter “AT” (without quotes), and you should see “OK”
If it doesn’t work, select “Both NL & CR” in Serial Monitor
*
AT
O⸮
AT+COPS
ERROR
Ogólnie zachęcam wszystkich do zabawy z Arduino i publikowania wyników swoich prac. Dzięki temu właśnie poznajemy i uczymy się znacznie więcej – nawet jeśli ktoś krytykuje naszą pracę. Ale właśnie tak to powinno wyglądać, ja się cieszę że coś działa, ktoś zwraca uwagę na aspekty, które mogły zostać pominięte – za co bardzo dziękuję! Każdy kolejny projekt będzie lepszy, dokładniejszy – tak jak teraz, dzięki składaniu różnych (czyichś) układów, buduję kolejny własny :D Czekam jeszcze na kilka części…
Dopóki nie rozwiążę problemu z modułem SIM… może będzie mógł pan mi pomóc podłączyć moduł kamerki?
Chciałbym, aby załączała widok w trakcie wyczucia ruchu, to ten moduł:
https://botland.com.pl/kamery-do-arduino-i-raspberry-pi/4935-modul-kamery-ov7670-03mpx-640x480px-30fps.html
Nie bardzo wiem jak się zabrać.
Moim skromnym zdaniem – Arduino i detekcja ruchu to jedno wielkie nieporozumienie.
Ale poczytaj: https://forbot.pl/blog/czy-do-arduino-mozna-podlaczyc-kamere-test-arducam-id17843
Zakup najlepiej Raspberry :)
https://www.raspberrypi.org/forums/viewtopic.php?t=45235
Tu jest wszystko nieco inne, a ja nie wiem jak kabelki odpowiednio podłączyć. Niestety na RPI już nie mam funduszy, ogólnie chodzi mi o zaliczenie przedmiotu na studiach z Arduino, ale chciałbym coś twórczego zrobić i znalazłem ten Pana pomysł, który mi się spodobał i kiedyś bym chciał go wykorzystać do… sprawdzenia czy pies nie wychodzi poza ogrodzenie ;). Z Arudino mam styczność pierwszy raz w życiu stąd nie mam pojęcia jak to podłączyć. Zaprogramować już dam radę – chodzi mi o pewność podłączenia. Nawet opis tych pól w module kamery mi niewiele mówi.
Jak na zaliczenie, to może zabezpieczenie szafki?
Zamiast czujnika – zwykły przełącznik? W razie czego – daj znać na PW.
zaznaczam ze jestem laikiem :D
mam pytanie bo połączyłem wszystko i brakuje mi jednego zasilania 5V do czujki
czy jest w module jeszcze jeden pin 5V?
czy trzeba zlutowac kabelki i z tego jednego rozgałęzić na dwa?
O jaki moduł Ci chodzi ? GSM ? czy Arduino NANO (domyślam się, że tego używasz ?). Arduino NANO ma tylko jedno wyjście 5V. Możesz tak jak napisałeś lub użyć płytki stykowej/płytki uniwersalnej żeby więcej wyjść 5V zrobić.
Witam mam problem z odem, kiedy go kopiuje do srodowiska arduino, wyskakuje mi blad kompilacji dla plytki arduino nano. prosze o pomoc
w Arduino IDE ustawiłeś poprawny port COM ?
Tak podpiety mam na com 7, arduino sie laczy, jak wybiore z biblioteki jakis kod to normalnie mi sie wgrywa na plytke. Ten jakos nie.
Mam pytanko.. podłączenie CALL (z modułu GSM) do pinu D3 jaki ma cel ?
świetne:D co do uwag na temat kodu – cóż, najważniejsze, że działa. może mi się uda od niego zajrzeć kiedyś, bo póki co jestem na etapie ogarnięcia zwykłego halogenu tak, żeby dawał radę z odpowiednim włączaniem się. tłumaczę się tym, że to bardzo początkowe początki z mojej strony:P
Witam,
proszę o umieszczenie schematu z “konwerter stanów logicznych”. Z góry dziękuję.
Uważam, że alarm z powiadomieniem sms nie jest najlepszym pomysłem. Lepiej jest zrobić alarm, który informuję o niebezpieczeństwie dzwoniąc na wybrany numer telefonu. W sieci gsm priorytetem są połączenia głosowe, a sms może przyjść z opóźnieniem.
ktora linijka jest od ilosci wysylanych sms?
Polecam zrobić alarm z czujnikiem PIR HC-SR501 i modułem Air200 –> https://www.elektroda.pl/rtvforum/viewtopic.php?p=17200616#17200616
Witam,dlaczego dostaję błąd podczas wgrywania biblioteki pod Arduino Mini w tym wierszu:
LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);
o treści:
‘LowPower’ was not declared in this scope
sketch_jun13a.ino:3:10: error: #include expects “FILENAME” or
sketch_jun13a.ino: In function ‘void loop()’:
sketch_jun13a:46: error: ‘LowPower’ was not declared in this scope
sketch_jun13a:46: error: ‘SLEEP_FOREVER’ was not declared in this scope
sketch_jun13a:46: error: ‘ADC_OFF’ was not declared in this scope
sketch_jun13a:46: error: ‘BOD_OFF’ was not declared in this scope
Mi to wygląda na brak biblioteki LowPower.
To po komunikacie: LowPower nie zadeklarowany w projekcie.
Dodałeś wszystkie wymagane biblioteki?
Witam. Heron ciekawy projekt. Proszę o schemat podłączenia mikrofonu i głośnika. Pozdrawiam.
Podłącz zgodnie z oznaczeniami MIC+ i MIC- oraz SPK+ i SPK-
W razie czego, dawaj znać.
Ja używałem mikrofonu i głośnika z jakiegoś starego telefon … czy tabletu :)
Dzięki za odpowiedź. Jestem zielony w temacie elektroniki. Po przeczytaniu, Twoj projekt wydał mi się możliwy do zrealizowania. Jestem na etapie zamawiania Arduino i części do budowy alarmu. Alarm będzie idealnym zabezpieczeniem łodzi. Proszę o radę jak zrealizować projekt alarmu z czterema czujnikami ruchu umieszczonymi po każdej stronie łodzi. Każdy czujnik powinien zapalić diodę żeby pokazać kierunek gdzie wystąpił ruch oraz uruchomić na kilka sekund buzer. Pozdrawiam.
Zero problemów :)
Tak jak do D2 jest podłączony status czujnika – tak samo podłączamy pozostałe … np. D4, D5 i D6 :)
Wysyłamy sms z danymi, zależnymi od kierunku (czujnika).
Tylko PIR to nie jest dobry pomysł na wodę :( – to paskudztwo działa na zmianę temperatury, więc często może generować fałszywy alarm – proponuję zamiast czujki PIR coś takiego: https://nettigo.pl/products/modul-hb100-mikrofalowy-czujnik-ruchu-radar-dopplerowski
Dzięki za pomoc.
Czujnik będzie idealnym rozwiązaniem.
Jutro przychodzą części.
Planuję pokazać swój projekt zabudowy łodzi wędkarskiej kabiną od Peugeot j5.
Pozdrawiam.
Powiedzcie mi czy jest możliwość wysyłania np. temperatury z podpiętego czujnika? Chciałbym żeby przychodził sms np po przekroczeniu danej temperatury i jej wysokość, pozdrawiam
W 37 linijce masz treść smsa. Dodajesz sobie odczyt temperatury i tam wstawiasz jej wartość
Dokładnie. Jedyne co, to kiedy ma wysyłać dane :)
Można tam umieścić odczyt co … 10…60…600 sekund i wysyłać poprzez SMS.
Można też, wysyłać dopiero, kiedy temperatura będzie w interesującym nas zakresie – np. spadnie poniżej 5’C itd.
Sorry ale ja nie widzę nigdzie usypiania modułu. Arduino owszem ale moduł nadal żre prąd. Musisz wysłać komendę AT+CMGF… żeby moduł uśpić zanim zaśnie arduino i potem odpowiednio wybudzić. A jeszcze lepiej jest moduł wyłączyć całkowicie jeśli nie odbiera żadnych poleceń. Dodatkowo ja bym użył arduino pro mini 3.3v 8Mhz który po uśpieniu pobiera 35uA i czujnik ruchu mini który pobiega 10uA.
Ogólnie, mam już kilka dodatkowych rozwiązań i przemyśleń. Obecnie poprzez zastosowanie przekaźnika – jesteśmy w stanie jeszcze bardziej ograniczyć zużycie prądu. Do własnych rozwiązań – z uwagi na zawodność czujek PIR – stosuję zwykły ‘stycznik’, który uruchamia całość :) i dopiero wysyła powiadomienie – wada – SMS przychodzi po 10-12 sekundach, zamiast po 2. Ale jeżeli poprzez małą zmianę, możemy na 1 małym powerbanku pracować nawet pół roku – to chyba warto. Wszystko zależy od tego, co chcemy monitorować … :)
Miałeś świetny pomysł z zaprojektowaniem i realizacją systemu. Jestem godny podziwu. :-) Nie myślałeś może o tym aby zamienić czujnik ruchu na czujnik magnetyczny (kontaktron np. Magnetyczny czujnik otwarcia drzwi MC-38 https://abc-rc.pl/product-pol-7182-Magnetyczny-czujnik-otwarcia-drzwi-MC-38-wylacznik-kontaktronowy.html) zmniejszając pobór baterii i dodając baterię np. H3E62 3.7 V 420 mAh https://allegro.pl/oferta/h3e62-3-7-v-420-mah-bateria-402050-ogniw-li-ion-9039073037 lub akumulatora z pojemnością: 800mAh https://allegro.pl/oferta/akumulator-bateria-do-drona-syma-x5hw-3-7v-800mah-7634607869 zamiast power banku ?
Jak można do tego dołączyć #include z poleceniem wysłania maila po wykryciu ruchu ?
Nie próbowałem.
Sim800L raczej się nie nadaje – polecam Sim900 jak już.
800tka ma problemy z tego co kiedyś czytałem z DNS – nie drążyłem tematu.
Rozwiązanie :
w domu RaspberryPi Zero W z Sim800L do odbierania SMSów i skrypt odczytujący, skąd przyszedł sms i jakiej treści. Na tej podstawie tworzony jest i wysyłany email.
Witam ja zawsze kupuję on line uważam ze jest największy wybów
Witam polecam https://topro.pl/product-category/kamery-termowizyjne/
A co to ma wspólnego?
Poza reklamą czegoś????
Witam, czy ktoś może wie jak wysłać datę i godzine z gsm (sim800l) jako sms.
Jak użyć polecenia AT+CCLK? aby informacje byly wyslane sms?
POdrawiam
Witam. Jest Szansa podrzucić schemat podłączenia z konwerterem stanów logicznych albo odpowiednimi opornikami? Jestem niemal zielony w tym temacie a nie chce spalić modułów.
Witam powinniście zobaczyć to https://expertwpc.pl/