GSM kućni sigurnosni sistem baziran na Arduinu. O senzoru pokreta i povezivanju na Arduino Više u videu

GSM kućni sigurnosni sistem baziran na Arduinu.  O senzoru pokreta i povezivanju na Arduino Više u videu
GSM kućni sigurnosni sistem baziran na Arduinu. O senzoru pokreta i povezivanju na Arduino Više u videu
Krađa automobila svuda prošle decenije zauzimaju jedno od najznačajnijih mjesta u strukturi počinjenih zločina u svijetu. To nije toliko zbog specifične težine ove kategorije krađe u odnosu na ukupno krivična djela, kolika je materijalna šteta prouzrokovana zbog visoke cijene automobila. Slaba efikasnost mera preduzetih u oblasti suzbijanja krađe motornih vozila do kraja 90-ih godina dovela je do stvaranja stabilnih grupa specijalizovanih za izvršenje ovih krivičnih dela i posedovanja obeležja organizovani kriminal; verovatno ste čuli za termin "posao sa crnim automobilima". Parking Evropske države godišnje propuste ≈ 2% automobila koji postanu predmet kriminalnih napada. Tako sam dobio ideju da na osnovu toga napravim gsm alarm za svoj auto Arduino Uno.

Počnimo!

Od čega ćemo prikupiti?

Moramo izabrati srce našeg sistema. Po mom mišljenju, za ovakvu signalizaciju ne postoji ništa bolje od Arduino Uno. Glavni kriterij je dovoljan broj "pinova" i cijena.


Ključne karakteristike Arduino Uno

Mikrokontroler - ATmega328
Radni napon- 5 V
Ulazni napon (preporučeno) - 7-12 V
Ulazni napon (granični) - 6-20 V
Digitalni I/O - 14 (od kojih se 6 može koristiti kao PWM izlazi)
Analogni ulazi - 6
DC struja kroz ulaz/izlaz - 40 mA
DC struja za izlaz 3.3V - 50mA
Flash memorija - 32 KB (ATmega328) od čega se 0,5 KB koristi za bootloader
RAM - 2 Kb (ATmega328)
EEPROM - 1 Kb (ATmega328)
Frekvencija takta - 16 MHz


Odgovara!

Sada treba da izaberete gsm modul, jer bi naš alarmni sistem trebalo da bude u mogućnosti da obavesti vlasnika automobila. Dakle, trebate “guglati”... Evo, odličan senzor je SIM800L, veličina je jednostavno divna.


Mislio sam i naručio iz Kine. Međutim, nije sve bilo tako ružičasto. Senzor je jednostavno odbio da registruje SIM karticu na mreži. Probano je sve moguće - rezultat je nula.
pronađeno ljubazni ljudi, koji mi je dao bolju stvar - Sim900 Shield. Ovo su neke ozbiljne stvari. Shield ima i priključak za mikrofon i slušalice, potpuno opremljen telefon.


Ključne karakteristike Sim900 Shield-a

4 standarda radne frekvencije 850/ 900/ 1800/ 1900 MHz
GPRS multi-slot klasa 10/8
GPRS mobilna stanica klase B
U skladu sa GSM fazom 2/2+
Klasa 4 (2 W @850/900 MHz)
Klasa 1 (1 W na 1800/1900MHz)
Kontrola preko AT komandi (GSM 07.07 ,07.05 i SIMCOM proširene AT komande)
Mala potrošnja energije: 1,5 mA (sleep mode)
Raspon radne temperature: -40°C do +85°C


Odgovara!

U redu, ali morate uzeti očitanja sa nekih senzora kako biste obavijestili vlasnika. Iznenada se auto evakuiše, a onda će se pozicija automobila očigledno promeniti u prostoru. Uzmite akcelerometar i žiroskop. U redu. Taksi, sada tražimo senzor.

Mislim da će GY-521 MPU6050 sigurno odgovarati. Ispostavilo se da ima i senzor temperature. Bilo bi neophodno koristiti ga, postojaće takva „ubilačka karakteristika“. Pretpostavimo da ga je vlasnik automobila stavio ispod kuće i otišao. Temperatura unutar automobila će se mijenjati „glatko“. Šta se dešava ako uljez pokuša da uđe u automobil? Na primjer, moći će otvoriti vrata. Temperatura u automobilu će početi da se brzo menja, jer će se vazduh u kabini početi mešati sa vazduhom okruženje. Mislim da će uspjeti.


Ključne karakteristike GY-521 MPU6050

Modul 3-osni žiroskop + 3-osni akcelerometar GY-521 na čipu MPU-6050. Omogućava vam da odredite položaj i kretanje objekta u prostoru, ugaonu brzinu tokom rotacije. Takođe ima ugrađen senzor temperature. Koristi se u raznim modelima helikoptera i aviona, a na osnovu ovih senzora možete sastaviti sistem za snimanje pokreta.

Čip - MPU-6050
Napon napajanja - od 3,5V do 6V (DC);
Opseg žiroskopa - ± 250 500 1000 2000 °/s
Raspon akcelerometra - ± 2 ± 4 ± 8 ± 16 g
Komunikacijski interfejs - I2C
Veličina - 15x20 mm.
Težina - 5 g


Odgovara!

Koristan je i senzor vibracija. Odjednom će pokušati da otvore auto "grubom silom", pa, ili na parkingu, drugi auto će vam dodirnuti auto. Uzmimo senzor vibracija SW-420 (podesiv).


Ključne karakteristike SW-420

Napon napajanja - 3,3 - 5V
Izlazni signal - digitalni visoki/niski (normalno zatvoren)
Polovan senzor - SW-420
Polovna komparator - LM393
Dimenzije - 32x14 mm
Dodatno - postoji otpornik za podešavanje.


Odgovara!

Zavrnite modul SD memorijske kartice. Hajde da napišemo log fajl.


Ključne karakteristike modula SD memorijske kartice

Modul omogućava pohranjivanje, čitanje i pisanje na SD karticu podataka potrebnih za rad uređaja baziranog na mikrokontroleru. Upotreba uređaja je relevantna kada se pohranjuju fajlovi od desetina megabajta do dva gigabajta. Ploča sadrži spremnik za SD karticu, stabilizator napajanja kartice, konektor za interfejs i strujne vodove. Ako trebate raditi sa zvukom, videom ili drugim volumetrijskim podacima, kao što su evidentiranje događaja, podaci senzora ili pohranjivanje informacija web servera, tada će modul SD memorijske kartice za Arduino omogućiti korištenje SD kartice u ove svrhe. Koristeći modul, možete proučavati karakteristike SD kartice.
Napon napajanja - 5 ili 3,3 V
Kapacitet memorije SD kartice - do 2 GB
Dimenzije - 46 x 30 mm


Odgovara!

I dodajte servo pogon, kada se senzori aktiviraju, servo pogon sa DVR-om će se okrenuti i snimiti video incidenta. Uzmi MG996R servo.


Ključne karakteristike MG996R servo

stabilan i pouzdana zaštita od oštećenja
- Metalni pogon
- Dvoredni kuglični ležaj
- Dužina žice 300 mm
- Dimenzije 40x19x43mm
- Težina 55 gr
- Ugao rotacije: 120 stepeni
- Radna brzina: 0.17sec/60 stepeni (4.8V bez opterećenja)
- Radna brzina: 0.13sec/60 stepeni (6V bez opterećenja)
- Početni obrtni moment: 9,4 kg/cm pri napajanju od 4,8 V
- Početni moment: 11 kg/cm sa napajanjem od 6V
- Radni napon: 4.8 - 7.2V
- Svi pogonski dijelovi su izrađeni od metala


Odgovara!

Sakupljanje

Postoji ogroman broj članaka o povezivanju svakog senzora u Google-u. I nemam želju izmišljati nove bicikle, pa ću ostaviti linkove na jednostavne i radne opcije.

To su posebne hardverske platforme na osnovu kojih možete kreirati razne elektronskih uređaja, uključujući i . Uređaje ovog tipa odlikuje jednostavan dizajn i mogućnost programiranja algoritama rada. Kao rezultat, kreiran sa Arduino GSM signalizacija , može se maksimalno prilagoditi objektu koji će štititi.

Šta je Arduino modul?

Arduino su implementirani kao male ploče koje imaju svoj mikroprocesor i memoriju. Ploča sadrži i set funkcionalnih kontakata na koje se mogu povezati različiti elektrificirani uređaji, uključujući senzore koji se koriste za sigurnosne sisteme.

Arduino procesor vam omogućava da sami učitate program koji je napisao korisnik. Kreiranjem vlastitog jedinstvenog algoritma možete pružiti optimalni režimi rad sigurnosnih alarma za različiti objekti i za različitim uslovima upotreba i zadaci koje treba riješiti.

Da li je teško raditi sa Arduinom?

Arduino moduli su veoma popularni među mnogim korisnicima. To je omogućeno zbog njegove jednostavnosti i pristupačnosti.

Programi za upravljanje modulima pisani su uobičajenim C++ i dodacima u formi jednostavne funkcije kontrola ulazno/izlaznih procesa na kontaktima modula. Osim toga, besplatno softversko okruženje Arduino IDE, koje radi pod Windows, Linux ili Mac OS, također se može koristiti za programiranje.

Sa Arduino modulima, procedura sastavljanja uređaja je znatno pojednostavljena. GSM alarm na Arduinu može se kreirati bez potrebe za lemilom - montaža se odvija pomoću matične ploče, kratkospojnika i žica.

Kako napraviti alarm sa Arduinom?

Glavni zahtjevi koje mora ispuniti uradi sam gsm alarmni sistem kreiran na Arduinu uključuju:

  • obavijestiti vlasnika objekta o provali ili ulasku;
  • podrška eksterni sistemi tip zvučna sirena, signalna svjetla;
  • kontrola alarma putem SMS-a ili poziva;
  • Autonomni rad bez eksternog napajanja.

Za kreiranje alarma trebat će vam:

  • Arduino modul;
  • set funkcionalnih senzora;
  • ili modem;
  • autonomni izvor napajanja;
  • eksterni izvršni uređaji.

Posebnost Arduino modula je upotreba posebnih ploča za proširenje. Povezuju sve dodatnim uređajima na Arduino, koji su potrebni za izgradnju konfiguracije sigurnosni sistem. Takve ploče se postavljaju na vrh Arduino modula u obliku "sendviča", a odgovarajući pomoćni uređaji su povezani na same ploče.

Kako radi?

Kada se aktivira jedan od povezanih senzora, signal se prenosi na procesor Arduino modula. Koristeći preuzeti korisnički softver, mikroprocesor ga obrađuje prema određenom algoritmu. Kao rezultat, može se generirati naredba za aktiviranje eksternog aktuatora, koja mu se prenosi kroz odgovarajuću ploču sučelja za proširenje.

Kako bi se omogućila mogućnost slanja signala upozorenja vlasniku kuće ili stana koji se čuva, na Arduino modul je povezan poseban GSM modul preko ploče za proširenje. Instalira SIM karticu jednog od provajdera ćelijska komunikacija.

U nedostatku posebnog GSM adaptera, njegovu ulogu može igrati obični mobilni telefon. Osim slanja SMS poruka sa upozorenjem na alarm i biranjem, prisustvo mobilne veze omogućit će vam upravljanje GSM alarm na Arduinu daljinski, kao i kontrolu stanja objekta slanjem posebnih zahtjeva.

"Bilješka!

Za komunikaciju sa vlasnikom objekta, osim GSM modula, mogu se koristiti i konvencionalni modemi koji omogućavaju komunikaciju putem interneta.

U tom slučaju, kada se senzor aktivira, signal koji procesor obrađuje prenosi se preko modema na poseban portal ili lokaciju. I već sa stranice vrši se automatsko generiranje SMS-a upozorenja ili slanja e-pošte na priloženi e-mail.

nalazi

Upotreba Arduino modula omogućit će korisnicima da samostalno dizajniraju GSM alarme koji mogu raditi s različitim funkcionalnim senzorima i kontrolom eksternih uređaja. Zbog mogućnosti korištenja razni senzori funkcije alarma mogu se značajno proširiti i stvoriti kompleks koji će pratiti ne samo sigurnost objekta, već i njegovo stanje. Na primjer, biće moguće kontrolisati temperaturu u objektu, otkriti curenje vode i plina, isključiti im dovod u slučaju nesreće i još mnogo toga.

Infracrveni (IR) senzori se obično koriste za mjerenje udaljenosti, ali se mogu koristiti i za otkrivanje objekata. Povezivanjem nekoliko IR senzora na Arduino možemo kreirati alarmni sustav.

Pregled

Infracrveni (IR) senzori se obično koriste za mjerenje udaljenosti, ali se mogu koristiti i za otkrivanje objekata. IR senzori se sastoje od infracrvenog predajnika i infracrvenog prijemnika. Predajnik emituje impulse infracrveno zračenje dok prijemnik detektuje sve refleksije. Ako prijemnik detektuje refleksiju, to znači da se na nekoj udaljenosti nalazi neki predmet ispred senzora. Ako nema refleksije, nema ni objekta.

IR senzor koji ćemo koristiti u ovom projektu detektuje refleksije unutar određenog raspona. Ovi senzori imaju mali linearni uređaj sa spregnutim punjenjem (CCD) koji detektuje ugao pod kojim se IR zračenje vraća senzoru. Kao što je prikazano na donjoj slici, senzor prenosi infracrveni puls u svemir, a kada se predmet pojavi ispred senzora, puls se reflektuje nazad do senzora pod uglom proporcionalnim udaljenosti između objekta i senzora. Prijemnik senzora detektuje i daje ugao, a pomoću ove vrijednosti možete izračunati udaljenost.

Povezivanjem nekoliko IR senzora na Arduino, možemo napraviti jednostavan protuprovalni alarm. Ugradićemo senzore dovratnik, a pravilnim poravnavanjem senzora možemo otkriti kada neko uđe kroz vrata. Kada se to dogodi, izlaz IR senzora će se promijeniti, a mi ćemo otkriti ovu promjenu stalnim čitanjem izlaza senzora sa Arduinom. U ovom primjeru znamo da objekt prolazi kroz vrata kada izlaz IR senzora pređe 400. Kada se to dogodi, Arduino će pokrenuti alarm. Za resetovanje alarma, korisnik može pritisnuti dugme.

Dodaci

  • 2 x IR senzor udaljenosti;
  • 1 x Arduino Mega 2560
  • 1 x zujalica;
  • 1 x dugme;
  • 1 x 470 ohm otpornik;
  • 1 x NPN tranzistor;
  • skakači.

Dijagram povezivanja

Krug za ovaj projekat prikazan je na donjoj slici. Izlazi dva IR senzora su povezani na pinove A0 i A1. Druga dva pina su povezana na 5V i GND pinove. Zujalica od 12 volti je povezana na pin 3 preko tranzistora, a dugme koje se koristi za onemogućavanje alarma je povezano na pin 4.


Fotografija ispod pokazuje kako smo zalijepili senzore na okvir vrata za ovaj eksperiment. Naravno, u slučaju stalne upotrebe senzore biste instalirali drugačije.


Instalacija

  1. Povežite 5V i GND pinove Arduino ploče na pinove za napajanje i GND senzora. Možete im također snabdjeti vanjsko napajanje.
  2. Povežite izlazne pinove senzora na pinove A0 i A1 Arduino ploče.
  3. Povežite pin 3 Arduina na bazu tranzistora preko 1K otpornika.
  4. Stavite 12V na kolektor tranzistora.
  5. Povežite pozitivni vod zujalice od 12V na emiter, a negativni vod na šinu za uzemljenje.
  6. Povežite pin 4 na pin 5V preko dugmeta. Iz sigurnosnih razloga, uvijek je najbolje to učiniti preko dodatnog malog otpornika kako bi se izbjegao veliki protok struje.
  7. Povežite Arduino ploču sa računarom preko USB kabl i prenesite program na mikrokontroler koristeći Arduino IDE.
  8. Uključite Arduino ploču pomoću napajanja, baterije ili USB kabla.

Šifra

const int buzzer=3; // pin 3 je izlaz za zujalicu const int pushbutton=4; // pin 4 je gumb input void setup() ( pinMode(zujalica,OUTPUT); // postaviti pin 3 na izlaz pinMode(pushbutton,INPUT); // postaviti pin 4 na ulaz ) void loop() ( // pročitati izlaz oba senzora i uporedite rezultat sa vrijednošću praga int sensor1_value = analogRead(A0); int sensor2_value = analogRead(A1); if (sensor1_value > 400 || sensor2_value > 400) ( while(true) (digitalWrite( buzzer,HIGH) ; // omogući alarm if(digitalRead(pushbutton) == HIGH) break; ) ) else ( digitalWrite(buzzer,LOW); // onemogući alarm ) )

Video

Pozdrav svima, danas ćemo pogledati uređaj koji se zove senzor pokreta. Mnogi od nas su čuli za ovu stvar, neko se čak bavio ovim uređajem. Šta je senzor pokreta? Pokušajmo to shvatiti, pa:

Senzor pokreta ili senzor pomaka - uređaj (uređaj) koji detektuje kretanje bilo kojeg objekta. Vrlo često se ovi uređaji koriste u sigurnosnim, alarmnim i nadzornim sistemima. Postoji mnogo faktora oblika ovih senzora, ali ćemo razmotriti modul senzora pokreta za povezivanje na ploče. arduino,i iz kompanije RobotDyn. Zašto baš ova kompanija? Ne želim da reklamiram ovu radnju i njene proizvode, ali upravo su proizvodi ove radnje odabrani kao laboratorijski uzorci zbog kvalitetne prezentacije svojih proizvoda krajnjem potrošaču. Dakle, upoznajte - senzor pokreta(PIR senzor) od RobotDyn:


Ovi senzori su male veličine, troše malo energije i jednostavni su za korištenje. Osim toga, RobotDyn senzori pokreta imaju i kontakte označene sitotiskom, to je naravno sitnica, ali vrlo ugodno. Pa, za one koji koriste iste senzore, ali samo drugih kompanija, ne brinite - svi imaju istu funkcionalnost, a čak i ako kontakti nisu označeni, pinout takvih senzora je lako pronaći na internetu.

Main specifikacije senzor pokreta (PIR senzor):

Radna površina senzora: od 3 do 7 metara

Ugao praćenja: do 110 o

Radni napon: 4,5...6 Volti

Potrošnja struje: do 50uA

Bilješka: Standardna funkcionalnost senzora može se proširiti povezivanjem svjetlosnog senzora na IN i GND pinove, i tada će senzor pokreta raditi samo u mraku.

Inicijalizacija uređaja.

Kada je uključen, senzoru je potrebno skoro minut da se inicijalizira. U tom periodu senzor može davati lažne signale, to treba uzeti u obzir pri programiranju mikrokontrolera sa senzorom koji je na njega priključen, ili u krugovima aktuatora ako se povezivanje vrši bez korištenja mikrokontrolera.

Ugao i područje detekcije.

Ugao detekcije (praćenja) je 110 stepeni, domet detekcije je od 3 do 7 metara, ilustracija ispod pokazuje sve:

Podešavanje osjetljivosti (udaljenost detekcije) i vremenskog kašnjenja.

Tabela ispod prikazuje glavna podešavanja senzora pokreta, na lijevoj strani je kontrola vremenskog kašnjenja, odnosno u lijevoj koloni je opis mogućih postavki. Desna kolona opisuje podešavanja udaljenosti detekcije.


Veza senzora:

  • PIR senzor - Arduino Nano
  • PIR senzor - Arduino Nano
  • PIR senzor - Arduino Nano
  • PIR senzor - za svjetlosni senzor
  • PIR senzor - za svjetlosni senzor

Tipičan dijagram povezivanja je dat na dijagramu ispod, u našem slučaju senzor je prikazan uslovno sa stražnje strane i povezan je na Arduino Nano ploču.

Skica koja pokazuje rad senzora pokreta (koristimo program):

/* * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano */ void setup() ( //Postavite vezu sa monitorom porta Serial.begin(9600); ) void petlja () ( //Očitavanje vrijednosti praga sa porta A0 //obično je veća od 500 ako postoji signal if(analogRead(A0) > 500) ( //Signal sa senzora pokreta Serial.println("Postoji pomicanje !!!"); ) else ( / /Nema signala Serial.println("Sve je tiho..."); ) )

Skica je normalan test senzora pokreta, ima mnogo nedostataka, kao što su:

  1. Moguće lažno pozitivni, senzoru je potrebna samoinicijalizacija u roku od jedne minute.
  2. Čvrsto vezanje za port monitor, bez izlaznih pokretača (relej, sirena, LED)
  3. Vrijeme signala na izlazu senzora je prekratko; kada se detektuje pokret, potrebno je programski odgoditi signal na duži vremenski period.

Kompliciranjem strujnog kruga i proširenjem funkcionalnosti senzora mogu se izbjeći gore navedeni nedostaci. Da biste to učinili, morat ćete dopuniti krug relejnim modulom i spojiti običnu lampu od 220 volti kroz ovaj modul. Sam relejni modul će biti spojen na pin 3 na Arduino Nano ploči. Dakle, koncept je:

Sada je vrijeme da malo poboljšamo skicu, koja je testirala senzor pokreta. Na skici će biti implementirano kašnjenje isključenja releja, budući da sam senzor pokreta ima prekratko vrijeme izlaznog signala kada se aktivira. Program implementira odgodu od 10 sekundi kada se senzor aktivira. Po želji, ovo vrijeme se može povećati ili smanjiti promjenom vrijednosti varijable DelayValue. Ispod je skica i video rada cjeline sklopljeno kolo:

/* * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano * PIR senzor -> Arduino Nano * Relejni modul -> Arduino Nano */ //relaut - pin (izlazni signal) za relejni modul const int relout = 3 ; //prevMillis - varijabla za pohranjivanje vremena prethodnog ciklusa skeniranja programa //interval - vremenski interval za odbrojavanje sekundi dok se relej ne isključi unsigned long prevMillis = 0; int interval = 1000; //DelayValue - period tokom kojeg se relej drži na int DelayValue = 10; //initSecond - Varijabla iteracije inicijalizacijske petlje int initSecond = 60; //countDelayOff - brojač vremenskog intervala static int countDelayOff = 0; //okidač - zastavica za aktivaciju senzora pokreta static bool trigger = false; void setup() ( //Standardna procedura za inicijalizaciju porta na koji je relejni modul povezan //VAŽNO!!! - da bi relejni modul ostao u inicijalno isključenom stanju //i da ne bi radio tokom inicijalizacije, potrebno je da zapišete vrijednost HIGH na ulazni/izlazni port // , ovo će izbjeći lažne "klikove" i zadržat će // stanje releja kakvo je bilo prije nego što je cijeli krug stavljen u rad pinMode(relout, OUTPUT); digitalWrite(relout, HIGH); // Ovdje je sve jednostavno - čekamo kraj 60 ciklusa (varijabla initSecond) //trajanje od 1 sekunde, za to vrijeme senzor se "samoinicijalizira" for(int i = 0; i< initSecond; i ++) { delay(1000); } } void loop() { //Считать значение с аналогового порта А0 //Если значение выше 500 if(analogRead(A0) >500) ( //Postavi oznaku okidača senzora pokreta if(!trigger) ( trigger = true; ) ) //Dok je zastavica okidača senzora pokreta postavljena while(trigger) ( //Izvrši slijedeći upute//Sačuvaj u varijablu currMillis //vrijednost milisekundi koja je protekla od //početka izvođenja programa unsigned long currMillis = millis(); //Usporedi s prethodnom vrijednošću milisekundi //ako je razlika veća od navedenog intervala, tada: if(currMillis - prevMillis > interval) ( //Save sadašnja vrijednost milisekundi do varijable prevMillis prevMillis = currMillis; //Provjerite brojač kašnjenja upoređujući ga s vrijednošću perioda //tokom kojeg se relej mora držati u //uključenom stanju if(countDelayOff >= DelayValue) ( ​​//Ako je vrijednost jednaka, tada: //resetirajte okidač za aktivaciju senzora pokreta = false; //Resetirajte brojač kašnjenja countDelayOff = 0; //Isključite relej digitalWrite(relout, HIGH); //Prekinite prekid petlje; ) else ( //Ako je vrijednost je još manje, tada //Povećajte brojač kašnjenja za jedan countDelayOff ++; / /Zadržite relej na digitalWrite(relout, LOW); ) ) ) )

Program sadrži strukturu:

unsigned long prevMillis = 0;

int interval = 1000;

...

unsigned long currMillis = millis();

if(currMillis - prevMillis > interval)

{

prevMillis = currMillis;

....

// Naše operacije zatvorene u tijelu konstrukcije

....

}

Da pojasnimo, odlučeno je da se ova konstrukcija posebno komentira. dakle, ovaj dizajn omogućava vam da izvršite, takoreći, paralelni zadatak u programu. Tijelo strukture pali otprilike jednom u sekundi, što je olakšano varijablom interval. Prvo, varijabilna currMillis dodjeljuje se vrijednost vraćena kada se funkcija pozove millis(). Funkcija millis() vraća broj milisekundi proteklog od početka programa. Ako je razlika currMillis-prevMillis veća od vrijednosti varijable interval onda to znači da je već prošlo više od sekunde od početka izvršavanja programa i potrebno je da sačuvate vrijednost varijable currMillis u varijablu prevMillis zatim izvršite operacije zatvorene u tijelu strukture. Ako je razlika currMillis-prevMillis manje od vrijednosti varijable interval, tada još nije prošla sekunda između ciklusa skeniranja programa, a operacije sadržane u tijelu strukture se preskaču.

Pa, na kraju članka, video od autora:

Omogućite javascript da bi komentari radili.

Proljeće je, kao što znate, praćeno svakakvim zaoštravanjem, a sada je glavno "zaoštravanje" ispuzalo iz svojih rupa na ulicu kako bi sebi prisvojilo ono što mu ne pripada. To znači da tema zaštite nečije imovine postaje aktuelnija nego ikad.
Stranica već ima nekoliko recenzija o domaćim -. Oni su, naravno, funkcionalni, ali svi imaju zajednička karakteristika- zavisno od utičnice. Ako to nije problem sa nekretninama na kojima je struja već priključena, šta je sa nekretninama gdje je utičnica daleko ili je okolina potpuno bez struje? Odlučio sam ići drugim putem - sastaviti dugovječni, što jednostavniji i neovisni o tome mrežno napajanje uređaj koji će stalno spavati, a kada pljačkaši uđu, upalit će se i uzvratiti poziv vlasniku na telefon, signalizirajući jednostavnim alarmnim pozivom.

Pregledajte stavke

kupljeno:
1. Maska jednostrana 5x7 cm: getinaks- ili stakloplastike
* - fiberglas je mnogo bolji od getinaksa.
2. Modul Neoway M590 - , sa PCB antenom -
3. Arduino Pro Mini "RobotDyn" ATmega168PA 8MHz 3.3V -
4. Kontrolna ploča litijumskog punjenja i pražnjenja -

Dobijeno iz ruševina civilizacije:
1. Stalci za ploču, piljeni iz kućišta uređaja - 6 kom.
2. Litijumska plosna baterija 1300mAh
3. Spajalice koje se koriste za pričvršćivanje kabla na zid
4. Gumica za papir
5. Bakrene žice 1,5 mm debljine
6. Kućište za instrumente sa lokalnog radio tržišta - 1.5$
7. Par LED dioda različite boje(preuzeto sa VHS plejera)
8. Antena i dugme sa poklopcem (preuzeto sa Wi-Fi rutera)
9. 4-pinski terminalni blok (preuzet sa dimmera)
10. Konektor za napajanje (preuzet sa starog punjača za 18650)
11. 6-pinski konektor (preuzet sa DVD drajva)
12. Limenka (od kafe na primjer)

Arduino Pro Mini "RobotDyn" Atmega 168PA 3.3V 8MHz

specifikacije:
mikrokontroler: ATmega168PA
Direktan radni napon:.8 - 5.5 V
Radni napon kroz stabilizator LE33: 3,3 V ili 5 V (ovisno o modelu)
Radna temperatura:-40°C… 105°C
Ulazni napon: 3,35-12V (3,3V model) ili 5-12V (5V model)
Digitalni ulazi/izlazi: 14 (od kojih se 6 može koristiti kao PWM izlazi: 3, 5, 6, 9, 10 i 11)
Analogni ulazi: 6
Tajmeri-brojači: dva 8-bitna i jedan 16-bitni
Načini uštede energije: 6
DC struja kroz ulaz/izlaz: 40 mA
Fleš memorija: 16 KB (2 korišteno za bootloader)
RAM: 1 Kb
EEPROM: 512 bajtova
Resurs za pisanje/brisanje memorije: 10.000 Flash/100.000 EEPROM
Frekvencija sata: 8 MHz (3.3V model) ili 16 MHz (5V model)
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
I2C: A4 (SDA) i A5 (SCL)
UART TTL: 0 (RX) i 1 (TX)
Datasheet:

Izbor je na ovu atmegu pao sasvim slučajno. na jednom forumu gdje se raspravljalo o energetski efikasnim projektima, u komentarima sam dobio savjet da koristim upravo 168. atmega.
Međutim, morao sam da se pomučim da pronađem takvu ploču, pošto su vrlo često sve partije bile preplavljene sa 328 atmega na frekvenciji od 16 MHz, radeći od 5V. Za moj projekat takve karakteristike su od samog početka bile suvišne i nezgodne, pretraga je postala složenija.
Kao rezultat toga, na eBay-u sam naišao na 3,3-voltnu verziju Pro Mini na Atmega 168PA, i to ne samo kinesku, već pod robnom markom RobotDyn od ruskog programera. Da, i ja sam u početku, kao i ti, imao zrnce sumnje. Ali uzalud. Kada je projekat već bio sastavljen, a AliExpress je uveo obaveznu plaćenu dostavu za jeftinu robu (nakon čega su se paketi počeli mnogo češće gubiti), kasnije sam naručio obični Pro Mini Atmega168 (bez PA) 3.3V 8MHz. Malo sam eksperimentisao sa režimima uštede energije sa obe ploče, ubacujući u svaku posebnu skicu koja je mikrokontroler uronila u režim maksimalne uštede energije i evo šta se desilo:
1) Arduino Pro Mini "RobotDyn": ~250uA
2) Arduino Pro Mini "No Name": kada se napajanje napaja regulatoru napona (RAW izlaz) i LED dioda zalemljena, potrošnja struje je ~3.92mA




- kao što razumijete, razlika u potrošnji energije je skoro 16 puta, a sve zato što NoNameov Moscow Pro Mini koristi gomilu Atmega168 +, od kojih sam MK jede samo 20uA struja (provjerio sam ovo zasebno), sav ostatak proždrljivosti pada na linearni pretvarač napona AMS1117 - tablica samo to potvrđuje:


U slučaju ploče iz RobotDyn-a, veza je već nešto drugačija - ovo je Atmega168PA + - ovdje se već koristi još jedan LDO stabilizator, čije su se karakteristike u smislu uštede energije pokazale ugodnijim:


Nisam ga lemio, tako da ne mogu reći koliko struje Atmega168PA troši u čista forma. AT ovaj slučaj Bilo mi je dosta ~250uA kada pokreće Nokia litijumska baterija. Međutim, ako odlemite AMS1117 sa NoName "moskovske ploče, onda je ATmega168 običan, u svom čistom obliku, kao što sam rekao gore, troši 20uA.
LED diode za napajanje mogu se ugasiti nečim oštrim. Nije problem. Stabilizator je zalemljen fenom. Međutim, nemaju svi fen za kosu i vještine za rad s njim, tako da obje gore navedene opcije imaju pravo na postojanje.

Neoway M590E modul

specifikacije:
Frekvencije: EGSM900/DCS1800 Dual-band, ili GSM850/1900 ili Quad-band
Osjetljivost:-107dBm
Maksimalna snaga transferi: EGSM900 Class4(2W), DCS1800 Class1(1W)
vršna struja: 2A
Radna struja: 210mA
Struja spavanja: 2.5mA
Radna temperatura:-40°C… +85°C
Radni napon: 3,3V…4,5V (preporučeno 3,9V)
Protokoli: GSM/GPRS faza 2/2+, TCP/IP, FTP, UDP itd.
Internet: GPRS KLASA 10
Datasheet:

Najjeftiniji GSM modul koji se može naći na tržištu, obično polovan, ne uvijek odlemljen Kineske ruke od opreme. Zašto ne uvek pametan? Da, sve zbog lemljenja fenom - često ovi moduli dolaze ljudima sa kratkim plusom i minusom, što je jedan od razloga njihove neispravnosti. Stoga je prvi korak zvoniti na strujnim kontaktima zbog kratkog spoja.

Bilješka.Želio bih napomenuti posebnu, važnu, po mom mišljenju, tačku - ovi moduli mogu doći s okruglim koaksijalnim konektorom za antenu, što vam omogućava da zasebno naručite ozbiljniju antenu i spojite je na modul bez plesanja s tamburom . I mogu doći bez ovog konektora. Ovo ako govorimo o najjeftinijim setovima. Ako se ne želite pouzdati u sretnu priliku, onda postoje setovi koji su malo skuplji, gdje je prisutan ovaj konektor + komplet dolazi sa eksternom antenom na pločici od teksta.

Ovaj modul je također hirovit prije napajanja, jer na vrhuncu troši struju do 2A, a dioda koja dolazi uz kit izgleda je dizajnirana da snizi napon sa 5V (zbog čega na samoj ploči piše 5V ) na 4.2V, ali sudeći po žalbama ljudi, stvara više nevolje nego koristi.
Pretpostavimo da ste već sastavili ovaj modul, a umjesto diode je zalemljen kratkospojnik, jer na njega nećemo dovoditi napon od 5V, već ćemo ga napajati direktno iz litijumske baterije, koja je unutar dozvoljenog napona od 3,3 -4.2V.
Bit će potrebno nekako ga povezati s računalom i provjeriti da li radi. Za ovaj slučaj je bolje da se unaprijed kupimo - preko njega ćemo komunicirati sa Arduino modulom i pločama preko UART (USART) serijskog sučelja.
Veza je prikazana ispod na slici (ja sam je nacrtao najbolje što mogu):
TX modem >>> RX konverter
RX modem<<< TX конвертера
Battery Plus - Modem Plus
Minus litijumske baterije je u kombinaciji sa GND modema i GND pretvarača
Da biste pokrenuli modem, povežite BOOT izlaz preko otpornika od 4,7 kΩ na GND


U međuvremenu pokrenite program na računaru. Obratite pažnju na postavke:
1) Odaberite COM port na koji je spojen TTL konverter, u mom slučaju to je COM4, ​​vaš može biti drugačiji.
2) Odaberite brzinu prijenosa. (Ovdje postoji nijansa, jer se sami moduli mogu konfigurirati za različite brzine, najčešće 9600 baud ili 115200 baud. Ovdje morate odabrati empirijski, birajući neku brzinu, povezivanje i slanje AT komande, ako napukline dođu kao odgovor , zatim će se isključiti, odaberite drugu brzinu i ponavljajte naredbu dok odgovor ne bude OK).
3) Odaberite dužinu paketa (u ovom slučaju 8 bita), paritetni bit onemogućen (nema), stop bit (1).
4) Obavezno označite +CR, a zatim će se svakoj komandi koju pošaljemo modulu na kraju automatski dodati znak za vraćanje nosioca - modul razumije komande samo sa ovim znakom na kraju.
5) Veza, ovdje je sve jasno, kliknuto i možemo raditi sa modulom.

Ako kliknete na "Connection", a zatim pokrenete modul primjenom BOOT-a kroz 4,7K otpornik na masu, tada će se na terminalu prvo prikazati poruka "MODEM:STARTUP", a zatim, nakon nekog vremena, poruka "+ PBREADY" će se prikazati, što znači da je broj telefona pročitan. knjiga, iako je možda prazan:

Pod ovim spojlerom AT komande sa primjerima

Ispisujemo AT naredbu - kao odgovor, modul nam šalje našu naredbu, budući da je echo mod omogućen, i OK:

Provjerimo status modema komandom AT + CPAS - kao odgovor, opet naš tim, + CPAS: 0 i OK.
0 - znači da je modul spreman za rad, ali ovisno o situaciji, mogu postojati i drugi brojevi, na primjer, 3 - dolazni poziv, 4 - u načinu veze, 5 - u stanju mirovanja. Nisam mogao da nađem nikakve informacije o 1 i 2.

Promjena brzine prijenosa podataka preko UART-a se događa naredbom AT + IPR = 9600 - ovo je ako vam treba brzina od 9600. Ako neka druga, slična AT + IPR = 19200 na primjer ili AT + IPR = 115200.

Provjerimo mrežni signal. AT + CSQ, + CSQ dolazi kao odgovor: 22.1 - vrijednost prije decimalnog zareza ima raspon od 0 ... 31 (115 ... 52 dB) - ovo je nivo signala, što više, to bolje. Ali 99 znači njegovo odsustvo. Vrijednost iza decimalnog zareza - kvalitet signala 0 ... 7 - ovdje je suprotna, što je broj manji, to bolje.

Isključimo echo mod slanjem komande ATE0 tako da duple komande ne ometaju. Ovaj način rada se ponovo uključuje naredbom ATE1.

Pogledajte AT+GETVERS verziju firmvera



Ove i mnoge druge komande se mogu vidjeti

Kombinacija ploča

Ako Pro Mini nije teško zalemiti na matičnu ploču, onda je s GSM modulom situacija nešto složenija, jer. njegov kontaktni češalj nalazi se samo s jedne strane, a ako je samo zalemljen, onda će druga strana ploče jednostavno visjeti u zraku. Zatim, opet, na oko, morao sam izbušiti dodatne 3 rupe u blizini tri ugla na ploči. Područja oko svake od rupa su zatim demaskirana. Radi praktičnosti, odspojene vodove iz češlja postavio sam na matičnu ploču bez lemljenja (bijelu) i, nakon što sam instalirao ploču GSM modula na njih, normalno zalemio:

Kasnije sam morao napraviti još jednu rupu, u mom slučaju na slovu "I", gdje piše "Made In China", na ivici ploče.


Dogodilo se da je dodatni kontakt, koji je u suštini GND, postao blizak GND-u Pro Mini ploče, i tako je postalo moguće kombinovati uzemljenje GSM modula i Pro Mini sa kapljicom lemljenja (duga olovka u sredini i desno od njega je Pro Mini olovo) - označeno ih strelicama. Ispalo je krivo, naravno, ali sada sigurno drži:



Između ploča je ostalo malo prostora - postavio sam kontrolnu ploču litijumskog pražnjenja sa prethodno zalemljenim microUSB konektorom i zalemljenim žicama u nju.

Šal tamo ulazi vrlo čvrsto, dok će sjaj LED dioda sa strane biti jasno vidljiv kroz malu rupu na kućištu.



Stalci za daske

Da bih bezbedno pričvrstio ploču unutar kućišta, morao sam provesti nekoliko dana razmišljajući o tome kako bi se to moglo implementirati. Opcija s toplim ljepilom nije razmatrana iz nekoliko razloga - može pasti, deformirati se, i što je najvažnije, dizajn bi se pokazao teškim za rastavljanje.
Došao sam do zaključka da bi ovdje najjednostavnija i najispravnija opcija bila korištenje regala, koje naravno nisam imao. Međutim, bilo je nekoliko neradnih punjača, odakle je izrezan jedan dugačak stalak s navojem za samorezne vijke. Svaki stalak je prerezan na pola i završen turpijom na oko 9,5 mm - na ovoj visini baterija koja se nalazi ispod ploče ima dovoljnu marginu, oko 2 mm - to se radi tako da se zalemljeni kontakti ploče ne dodiruju vrhovima i tako da se između njih može staviti komad pjene za fiksiranje.
Što se tiče pričvršćivanja ploče direktno na kućište, ovdje sam izrezao četiri trake iz limenke za kavu, izbušio rupu na čijim krajevima, a zatim ih pričvrstio na iste samorezne vijke koji su zašrafljeni u police. Pogledajte fotografiju ispod da vidite kako to izgleda.
Sljedeći korak je zašrafiti par postolja s druge strane ploče, odnosno odozgo, tako da kada se kućište zatvori, poklopac se lagano naslanja na ove postolje, stvarajući dodatnu fiksaciju. Nešto kasnije, ispod ovog slučaja, naišao sam na zgradu ispod sovjetskog propagandnog radija (da je pronađen ranije, uzeo bih sve police odavde), gdje sam našao nekoliko manje-više odgovarajućih visina, ali prvo sam ih izbušio u sredini bušilicom ispod samoreznih vijaka. Zatim ih je isjekao i također ih završio turpijom, uklanjajući višak. Ovdje sam dobio jednu suptilnost - na fotografiji se vidi da je jedno bijelo postolje zašrafljeno na getinax ploču sa ivice, a drugo bijelo postolje je direktno na ploču modula, jer. sa jedne ivice modemska ploca u potpunosti pokriva donju plocu, a sa suprotne ivice, naprotiv, donja gleda van. Istovremeno su se na obje ploče morale dodatno izbušiti rupe kako bi glave samoreznih vijaka mogle slobodno prolaziti.
I na kraju, ostaje paziti da je ploča uvijek paralelna s kućištem - nosači koji se koriste za pričvršćivanje žica i kablova na zid savršeno se uklapaju ispod ovog kućišta, prethodno sam uklonio eksere s njih. Nosači dobro prijanjaju za ploču svojom konkavnom stranom bez ikakvih dodatnih uređaja, jedino što je desno od SIM kartice, širina nosača se pokazala prevelikom i trebalo je i brusiti.
Svi detalji su prilagođeni okom i empirijski, ispod je fotografija svega navedenog:



Konektori. LED diode. Dugme.

Pošto mi je ponestalo češlja, morao sam da demontiram 6-pinski konektor sa ploče DVD drajva, koji sam potom zalemio na Pro Mini, ovo je zbog pogodnosti flešovanja ploče. U blizini sam zalemio okrugli konektor (Nokiev 3.5mm) za punjenje litijuma.

Telo 6-pinskog konektora je malo završeno turpijom, jer su njegove ivice malo virile iznad kućišta. Utičnica za punjenje savršeno se uklapa u zid kućišta.

Sa druge strane ploče sam zalemio dugme za resetovanje uređaja i dve LED diode za otklanjanje grešaka u firmveru - crvena LED je povezana na GSM modul, druga zelena LED je povezana na 10. izlaz Pro Mini - to je lakše mi je da otklonim greške u programu.

Nadogradnja baterije

Prazna Nokian baterija iz Nokia telefona nije ništa manje uobičajena od modela 18650, ali mnogi jednostavno odbijaju da je koriste zbog neugodnosti povezivanja kontakata koji su uvučeni duboko u samu bateriju. Nepoželjno ih je lemiti, pa je odlučeno koristiti metodu koju su oni predložili, naime, da se napravi kontaktni blok od gumice za papir i bakrene žice (debljine 1,5 mm).
Prvo sam probušio komad gumice s dvije žice s prethodno ogoljenim krajevima i shvatio ga do kontakata baterije tako da se razmak između njih podudara,
savio je krajeve, kalajisao ih lemilom i malo ih povukao za dugačke krajeve tako da su nastali kontakti utonuli u gumicu.



Primjer baterije:

Priključnicu možete popraviti gumicom ili zamotati plavom izolacijskom trakom, što sam na kraju i učinio.

Skupština.

Glavni dio posla je obavljen, ostaje sve to prikupiti i popraviti.
Između baterije i ploče stavio sam komad pjenaste gume kako kasnije ne bi uvukao u kućište. Dodatno sam zalemio kondenzator od 2200 uF za napajanje modula.

Kada je punjenje povezano:

Okvir. Vanjski terminalni blok.

Futrola je na lokalnom radijskom tržištu stigla za oko 1,5 dolara, ako se prevede u dolare, dimenzija 95x60x25mm, skoro kao kutija cigareta. Probušio sam nekoliko rupa u njemu. Prvo, za 4-pinski terminalni blok preuzet iz neradnog dimmera.
Potpuno sam oslobodio dva krajnja kontakta od vijaka sa brtvama, izbušio rupe za duže vijke, na kojima će se cijeli terminal držati na kućištu. Na samom kućištu, naravno, dvije krajnje rupe će biti velike, a dvije u sredini će biti manje - kroz njih će biti provučeni kontakti, od kojih je jedan spojen na VCC Pro Mini, a drugi kontakt na pin 2.

Bušenje rupa, iako jednostavno na prvi pogled, nije ništa manje dugotrajno, vrlo je lako promašiti, pa sam to uradio prvo bušilicom manjeg prečnika, pa većom.

Za dugme sata uzeo sam kapu sa blago konkavnim vrhom, tako da je kroz usku rupu na kućištu bilo zgodno udariti šibicom ili spajalicom.

Ploča u kućištu sa povezanim USB-TTL konverterskim kablom:

O anteni.
Antena se, kao što ste mogli primijetiti tokom pregleda, stalno mijenjala, dok sam eksperimentirao sa različitim domaćim antenama. U početku je na ploči modula bio okrugli koaksijalni konektor, ali peti put je korišten za eksternu antenu jednostavno se raspao, pa imajte na umu da je slabašan. Kao rezultat toga, iz starog rutera sam izvadio tekstuolitnu antenu i zalemio je na ploču modula, jer. hvata mrežu malo bolje od opruge i žice.

Pa, potpuno sastavljeno sa povezanim punjenjem izgleda ovako:

Test. Kako radi:

Osim testova sa antenama, provjerio sam kako će se alarm ponašati na ulici, na mrazu -15. Da bih to učinio, jednostavno sam stavio cijelu unutrašnjost u posudu i ostavio je na balkonu preko noći, dok se alarm nije uključio, razlog se pokazao općenito očiglednim - litijum ne voli mraz. To je potvrdio još jedan test, gdje sam bateriju ostavio kod kuće, a ploču kroz duge žice iznio na ulicu i ostavio je tako jedan dan na istom mrazu - rad, kao da se ništa nije dogodilo. S druge strane, bilo bi čudno da alarm ne radi. u podacima za atmegu, za modul, za kvarc - dozvoljene radne temperature su do -40 stepeni.

Princip rada je organizovan eksternim prekidom, inicijalno je pin 2 zatvoren za VCC i tako se na izlazu održava logička 1, a kontroler spava. Čim se kontakt prekine i na pinu 2 se pojavi 0, mikrokontroler se budi, spušta 3. pin (na koji je BOOT modema povezan preko otpornika) na masu - modul se pokreće, MK periodično proziva modul za spremnosti, a čim uhvati mrežu, odmah šalje poziv na broj telefona vlasnika naveden u kodu. Nakon odbijanja poziva, uređaj se isključuje bez slanja više beskrajnih poziva nego što griješe mnogi kineski alarmi.

Dodatne informacije

#include #include // softverska UART biblioteka SoftwareSerial gsm(7, 6); // RX(7), TX(6) void wakeUp()() // prazan rukovalac prekida //////////////////////////// ////////// //////////////// void gsmOFF()( // PORTD|=(1<<3); // ВЫКЛЮЧЕНИЕ МОДУЛЯ _delay_ms(10); // gsm.println("AT+CPWROFF"); // ПЕЧАТАЕМ КОМАНДУ OFF PORTB &=~ (1<<2); // выключить LED 10 } // //========================================= void gsmON(){ // PORTD|=(1<<6); // 6-му порту (TX) назначить 1 PORTD &= ~(1<<3); // ЗАПУСК МОДУЛЯ _delay_ms(10); // while(!gsm.find("+PBREADY")); // ждём прочтения тел. книги PORTB |= (1<<2); // включить LED 10 _delay_ms(100); // while(1){ // gsm.println("AT+CREG?"); // проверяем в сети ли модуль if (gsm.find("0,1")) break; // если сеть есть, выходим из цикла _delay_ms(400); // проверка раз в 0,4 сек } // } // /////////////////////////////////////////// // void sleepNow(){ // функция засыпания ADCSRA = 0x00; // отключить подсистему АЦП (экономия 140 мкА) PORTD&=~(1<<6); // в вывод TX поставить 0 _delay_ms(100); // set_sleep_mode(SLEEP_MODE_PWR_DOWN); // режим сна PWR_DOWN sleep_enable(); // включение сна attachInterrupt(0, wakeUp, LOW); // включить прерывания sleep_mode(); // sleep_disable(); // detachInterrupt(0); // отключить прерывания } void setup(){ gsm.begin(9600); // скорость работы UART DDRD = B01001000; // 3-й и 6-й выводы на выход DDRB |= (1<<2); // вывод 10 на выход gsmON(); // запуск модуля для теста gsmOFF(); // выключаем модуль } void loop(){ if (!(PIND&(1<<2))){ // если на 0-ом прерывании появился 0 gsmON(); gsm.println("ATD+79xxxxxxxxx;"); // отзваниваемся, в ответ приходит OK и CONNECT _delay_ms(100); if (gsm.find("OK")) while(1){ // ожидание сброса вызова gsm.println("AT+CPAS"); // при каждой итерации опрашиваем модуль if (gsm.find("0")) break; // если 0, то выходим из цикла while _delay_ms(100); // проверка раз в 0,1 сек } for (char i=0; i<14; i++){ PORTB|=(1<<2); // LED 10 ON _delay_ms(200); PORTB&=~(1<<2); // LED 10 OFF _delay_ms(200); } gsmOFF(); // выключить модуль _delay_ms(10); while(1); // блокируем программу } else { sleepNow(); // укладываем контроллер спать } }

Dijagram (bez kontrolne ploče punjenja-pražnjenja)



Zaključci i razmišljanja. Planovi.

Alarm se koristi u zemlji, zadovoljan sam radom, međutim daljim proučavanjem AVR-a dolazi sve više ideja za njegovu dalju modifikaciju. Arduino sa svojim ožičenjem na pseudo-jeziku me je jako uznemirio, jer. Došao je jedan neugodan trenutak u radu. Kada sam koristio funkcije za rad sa portovima digitalWrite(); ili pinMode(); - onda je GSM-modul iz nekog razloga vrlo često prekinuo vezu. Ali vrijedilo ih je zamijeniti trikovima poput DDRB|=(1<Samo je rad direktnog pristupa portovima omogućio da uređaj radi kako je i zamišljeno.

Za uštedu energije...
Sastavljeni uređaj je radio puna četiri mjeseca bez punjenja i nastavlja da radi, iako je ispravnije reći "spavanje". Ovo se provjerava jednostavnim ponovnim pokretanjem putem bijelog dugmeta. Uz potrošnju energije od 250 μA (preko LE33 stabilizatora) i bateriju od ~1430 mAh, iako okej, zbog nenovosti baterije zaokružit ćemo na 1000 mAh, ispada da uređaj može spavati oko 5,5 mjeseci bez punjenja. Ako i dalje odlemite stabilizator, tada se vrijeme rada može sigurno pomnožiti 10 puta. Ali u mom slučaju nema potrebe za tim, jer i dalje morate trošiti saldo sa SIM kartice svaka tri mjeseca, a istovremeno se uređaj može provjeriti i napuniti.
Primjer uštede energije dat u pregledu daleko je od granice, jer. sudeći prema podacima iz datasheeta, moguće je sniziti takt mikrokontrolera (a to se radi ugradnjom osigurača) na 1 MHz i, ako se primeni napon od 1,8 V, potrošnja će pasti ispod bara od 1 μA u aktivni način rada. Veoma glupo! Ali ako se MK taktira iz internog RC generatora, tada će se pojaviti još jedan problem - UART eter će biti začepljen smećem i greškama, posebno ako se kontroler grije ili hladi.

Po završetku...
1) Obična žica koja se može prekinuti nije baš zgodna, planiram eksperimentirati s Hall senzorom i reed prekidačem, iako za potonje kažu da nije baš pouzdan, jer se kontakti unutar njega mogu zalijepiti.
2) Bilo bi lijepo dodati mogućnost promjene "broja vlasnika" bez sudjelovanja računara i treptanja. Ovo će već sa EEPROM-om morati raditi.
3) Isprobajte prekide sa watchdog tajmera, ali ne samo radi radoznalosti, već da bi se mikrokontroler povremeno sam budio, izmjerio napon baterije i slao rezultujuću vrijednost putem SMS-a da bude svjestan koliko je baterija slaba.
4) Solarni panel može u potpunosti eliminirati potrebu za punjenjem uređaja, a to će se posebno odnositi na baterije niskog kapaciteta.
5) Dugo sam želio kupiti LiFePo4 baterije, koje, prema recenzijama, inače podnose mraz, ali dok sam tražio odgovarajuću parcelu, proljeće je već neprimjetno došlo.
6) Radite na estetskoj komponenti

Koji Pro Mini da kupim?
Ako nema sušila za kosu, onda Pro Mini "RobotDyn" Atmega168PA 3.3V, pokupi LED nečim oštrim i ima ~ 250 μA.
Ako postoji sušilo za kosu, onda bilo koja ploča, lemite stabilizator i LED za napajanje - dobivate ~ 20 μA potrošnje struje.

To je sve za sada, nadam se da je recenzija bila zanimljiva i korisna.

Planiram kupiti +174 Dodaj u favorite Svidjela mi se recenzija +143 +278