Bluetooth modul + AT parancsok

Az előző cikkben tárgyalt „Akkulminátor ” készülék bluetooth modulját egyedivé alakíthatod néhány AT paranccsal, úgy mint név, pin, egyéb, sőt magát a modult is használhatod vezérlésre ha egyéb kimenetei ki vannak vezetve. (ezt most nem tárgyalom, mivel 6 lábbal rendelkező modullal foglalkozok)

Kapcsolási rajz:

A modul TTL szintű soros portját össze kell kapcsolni egy soros -> usb átalakító panellal. Így könnyen a számítógépre csatlakoztathatjuk. Az AT parancsok beviteléhez elegendő egy putty terminál program, vagy az Arduino soros monitorát is használhatjuk, sok egyéb soros kommunikációs program mellett amit most nem tárgyalunk. A tápellátást a modul az FTDI232 modulon keresztül a számítógép usb portjáról kapja.

HC-05 bluetooth modul

 

Az ellenállások csak 3,3 V nem illesztett modul esetén szükségesek. Némelyik modulnál a nyomógomb már be van ültetve.

 

Kommunikáció a géppel:

Terminál beállítása – Com 1 (az FTDI232 modul Kommunikációs portja amelyen települt a gépre ) baud 38400

Kocsi vissza új sor 🙂 (küldje el ezeket a karaktereket enter lenyomása után)

Fontosabb AT parancsok (teljesség igénye nélkül):

Ha több parancsra van szükséged: letöltés innen

  • AT : ha jó a kapcsolat OK-val válaszol
  • AT+NAMExyz : modul nevének lekérdezése/beállítása
  • AT+ADDR : modul címe
  • AT+VERSION : firmware verzió
  • AT+UART : kommunikációs adatok lekérdezése/beállítása; mint  baud, stop bit szám, paritás.
  • AT+ROLE: master vagy slave beállítása lekérdezése(1=master/0=slave)
  • AT+RESET : Reset és kilépés AT módból
  • AT+ORGL : Gyári állapot vissza állítása
  • AT+PSWD: PIN lekérdezés/beállítás

 

Megosztás:

Akkulminátor :D

De nevezhetném  L.A.É.M.K. (Laptop Akku Élet Meghosszabbító Készüléknek) (Végig éltem a PC fejlődés jelentősebb részét nekem laptop marad! Még-hogy notebook!) esetleg angolul B.L.E.M. (Battery Life Expander Module) mondjon valaki valami jót, addig Akkulminátor marad. És hogy mi ez ? Laptop akkumulátor élettartamának meghosszabbítására szolgáló készülék.

Szóval ahogy egy félisten mondaná: „Kezdjük már el!

És ahogy a reklámszöveg:

Tapasztaltad már, hogy laptopod (akkor sem lesz notebook) egyre kevesebbet bírja az akkuról működést és mind több ideig tart a a feltöltése, a végén már ott lóg a kábel végén, oda a mobilitás, oda a szabadság? Nos azt nem állítom, hogy ez nem fog bekövetkezni de talán kicsit később.

A probléma oka természetesen Te vagy kedves laptop használó (akkor sem lesz notebook!), aki töltőn felejti a készüléket, emberek vagyunk néha előfordul.  Elárulom, hogy a töltést szabályozza a laptop, de nem kapcsolja le a töltőt az akkuról. HOLOTT MEGTEHETNÉ !!! (kedves gyártók ugye figyeltek) Még csak áramkörben sem igen kéne módosítani. Ebből származik némi túltöltés akku ellustulás és kész a baj.

csupakabra:

Vehetsz újat 20 rongyért.

break

Vagy a másik véglet. Te kedves felhasználó, tisztában vagy ezzel és előre látó módon ki veszed az akkut (már amelyikből manapság lehet) , elteszed az almáriumba, jó lesz az majd ha kell, megesszük befőtt helyett… Csak-hogy  ha nincs töltve akkor is lemerül idővel és elérhet egy olyan pontot ahonnan nincs visszaút tehát

go to csupakabra

(a teljesség igénye nélkül)

Fentieket orvosolandó, kell egy készülék ami figyeli az akku töltöttséget. 100% töltöttség esetén lekapcsolja a töltést, ha az akku töltöttség egy beállított százalék alá esik vissza kapcsolja azt. Így kondicionálja az akkumulátort. Az akkumulátor a tervezett módon van használva és több ideig bírja. Főleg asztalon használt állandóan töltőre dugott készülékekhez ajánlom. Előre bocsájtom nem kell szétszedned a note… izé… laptopod. Természetesen az megoldási is jó ha csak kihúzod a töltőt ha a készülék feltöltött, de elektronika őrültként ez a megoldás kicsit snassz. 😀

Hogy kompatibilis legyen minden típussal, a készülék a konnektor felöli oldalon fogja megszakítani az áramkört vagy bekapcsolni és bluetooth-on tartja a kapcsolatot a laptoppal. És akkor…

 

Szükséges anyagok:

Csak a burkolata 🙂
Arduino Pro Mini 5V
Arduino Pro Mini 5V
12V kapcsolóüzemű tápegység 400mA
5V kapcsolóüzemű tápegység 400mA
HC-05 Bluetooth modul

Egyéb hozzávalók:

  • ellenállás R1  1K   1db
  • tranzisztor Q1 BC817 1db
  • dióda D1 1N4148 1db
  • 5V relé 2A tudjon kapcsolni AC-ben (nagyon fontos, hogy a fogyasztó által felvett teljesítményhez igazítsd)

Működés:

Ahogy az előbbiekben is írtam a készülék egy köztes aljzatként beékelődik a töltő és a hálózat közé, buetooth-on párosítani kell a laptoppal, ahol egy virtuális soros portként fog jelentkezni. A laptopon fut 2 percenként egy kötegfájl (.bat) ami lekérdezi a töltöttség állapotát az operációs rendszertől, ha ez eléri a kötegfájlban megadott értéket mondjuk 10%-ot akkor meghív egy egyszerű soros kommunikációra alkalmas programot, és ennek segítségével küld egy 1-est a virtuális soros porton keresztül a készüléknek ami bekapcsolja a töltőt.  Ha eléri a 100% a töltés ugyanez megy végbe de ezúttal 0-át küld a készülék felé ami kikapcsolja a töltőt. A visszacsatolás maga a töltés megjelenése. A készülék a bekapcsolás után már csak 0-át fogad el. A dolgot picit bonyolítja, hogy a kötegfájlt ugyan meg lehet hívni direktben taskmanagerből, de akkor 2 percenként felvillanó sötét ablakokat kapunk ami eléggé zavaró, így egy szkriptet hívogatunk meg ami meghívja a kötegfájlt, így nem nyílnak ablakok. Aki tud jobb megoldást, hajrá.

Felhívom a figyelmet aki érez magában affinitást írni hozzá egy programot és hajlandó megosztani azt közzéteszem.

Egyébként egy egyszerű bluetooth-on vezérelhető kapcsoló, bármi egyéb bekapcsolására is alkalmas.

Kapcsolási rajz:

FONTOS! Az áramkör egyes részei életveszélyes feszültségen vannak, ennek figyelembevételével építsd meg. Bármilyen anyagi, illetve nem anyagi kár esetén engem felelősség nem terhel. Én szóltam!!! 🙂 Másrészt olyan bluetooth modult használj aminek illesztettek 5V-ra az RX-TX  lábai.

Program:

byte x = 0;

void setup() {
// soros kommunikáció 9600 baud
Serial.begin(9600);

pinMode(13, OUTPUT); // 13 láb a kimenet
establishContact(); // folamatos nagy A betű küldés debug célból elhagyható
}

void loop() {
// soros port figyelése
if (Serial.available() > 0) {
// bejövő adat elkapása
int inByte = Serial.parseInt();
if(inByte==1 && x==0){ //csak 1-et fogad el
x=1;
digitalWrite(13, HIGH); // bekapcsol
Serial.write(„ACK”); // visszajelzés debug célból

}
if(inByte==0 && x==1){ //csak 0-át fogad el
x=0;
digitalWrite(13, LOW);// kikapcsol
Serial.write(„ACK”);// visszajelzés debug célból

}

}
}
// A betűt küldő funkció,nem fontos
void establishContact() {
while (Serial.available() <= 0) {
Serial.print(‘A’); // küldj egy A-t
delay(300);
}
}

Program letöltése (tartalmazza a vezérlő kötegfájlokat magyarázat  readme.txt)

Végeredmény:

Működés közben (szimuláció):

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Megosztás:

Vasaló Őr :)

Kezdjük valami egyszerűvel.

Találkoztatok már azzal a jelenséggel, (főleg gyerekes családoknál fordul elő) hogy a frissen megszáradt ruha utolsó percben lesz kivasalva indulás előtt, és a vasaló bekapcsolva marad és ott kattog a vasalódeszkán ameddig hazajössz és észre nem veszed, hogy furcsán meleg van ebben a szobában pedig itt a fűtés alapjáraton szokott menni. 🙂

Aztán rájössz, hogy a vasaló volt és hogy tűzveszélyes meg, hogy 8 órán keresztül 1500W lógott a hálózaton és vámpírkodott a villanyszámládon.

A következő projekt ezt hivatott orvosolni.

Szükséges kellékek:

Csak a burkolata 🙂
Arduino Pro Mini 5V
Arduino Pro Mini 5V
12V kapcsolóüzemű tápegység 400mA
5V kapcsolóüzemű tápegység 400mA

Egyéb hozzávalók:

  • ellenállás R1,R2 1K   2db
  • ellenállás R3 10K 1db
  • tranzisztor Q1 BC817 1db
  • dióda D1 1N4148 1db
  • 3mm piros LED DS1 1db (nem kötelező)
  • 5V relé 10A tudjon kapcsolni AC-ben (nagyon fontos, hogy a vasaló által felvett teljesítményhez igazítsd)
  • mikrokapcsoló S1 1db
  • pc speeker (hangszóró) LS1 1db

Működés:

Az áramkör feladata időzítés, hogy a rákapcsolt eszköz csak bizonyos ideig működjön. A készüléken található egy bekapcsoló gomb, ezt megnyomva a készülék bekapcsolja a rádugott eszközt, jelzi a bekapcsolást zenével, leszámolja a programban megadott időt jelen estben 30 percet majd kikapcsol. 29 percnél zenével jelzi hogy ki fog kapcsolni, ha tovább akarunk vasalni meg kell nyomni a bekapcsoló gombot és újabb 30 perc áll rendelkezésre. 30-dik perc végén kikapcsol. (a hosszabbítás bármikor indítható a gomb benyomásával) Így megelőzi a bekapcsolva felejtett vasaló jelenségét. 🙂

NAGYON FONTOS, hogy a relé kapcsolási teljesítményét a fogyasztó, jelen estben vasaló által felvett teljesítményhez igazítsd, különben egy olvadt műanyag pacát találsz a helyén és tűzveszélyes is lehet. A vasalón fel van tüntetve mennyit fogyaszt pl.:1500W a relén viszont az átfolyatható áram van megadva pl.:10A. Mivel 230V feszültségen  és 10A fog átfolyni rajta ezért P=U x I x cos(Fi) jelen esetben a fázisszög elhanyagolható, mivel rezisztív  fogyasztónk van. Tehát a kapcsolható teljesítmény P= 230 x 10 tehát 2300W ami elegendő a vasalóhoz.

MÉG-FONTOSABB! Az áramkör egyes részei életveszélyes feszültségen vannak, ennek figyelembevételével építsd meg. Bármilyen anyagi, illetve nem anyagi kár esetén engem felelősség nem terhel. Én szóltam!!! 🙂

Program:

A programot több Arduino példaprogramból ollóztam össze (főleg csak a saját részeket fogom lefordítani). Az Arduino pro mini panel gyárilag beépített LED-jét hagytam villogni. A programban nincsenek késleltetések (delay) ugyanis egy delay idejére tulajdonképpen szünetel a mikrokontrollerben a programfutás, várakozik.

#include „pitches.h”

// hangok:
int melody[] = {
NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

// hangok ideje: 4 = quarter note, 8 = eighth note, etc.:
int noteDurations[] = {
4, 8, 8, 4, 4, 4, 4, 4
};
// kimenetek, bemenetek és változók megadása
const int ledPin = LED_BUILTIN;// the number of the LED pin
int rele=6; // relé a 6 lábon
int gomb=A1; // nyomógomb az A1 bemeneten
int g_allapot; // változó a nyomógomb állapotának tárolására
long kikapcs = 0;//ennyit várjon kikapcsolás előtt változó

// Variables will change :
int ledState = LOW; // ledState used to set the LED

// Generally, you should use „unsigned long” for variables that hold time
// The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated

// constants won’t change :
const long interval = 1000; // interval at which to blink (milliseconds)

void setup() {

pinMode(ledPin, OUTPUT);
pinMode(rele, OUTPUT);
digitalWrite(rele, LOW);
pinMode(gomb, INPUT);
}

void loop() {
g_allapot=analogRead(gomb); // gomb állapotának beolvasása
if(g_allapot<=100){ // mivel beépített AD átalakítót használunk ha 100 alá esik az AD által mért érték
kikapcs=1800000; // 30 perc milliszekundumban
digitalWrite(rele, HIGH); // relé behúz
hang(); // nóta indul 🙂
}
unsigned long currentMillis = millis();

if (currentMillis – previousMillis >= interval) {
// save the last time you blinked the LED
previousMillis = currentMillis;
kikapcs=kikapcs-interval;

if(kikapcs==60000){ // mivel visszaszámlálás folyik ha kikapcs változó elérte az 1 percet

hang(); // nóta indul
}

if(kikapcs<=0){ // ha kikapcs változó elérte a 0-át
kikapcs=0;
digitalWrite(rele, LOW); // relé elenged
}
// if the LED is off turn it on and vice-versa:
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}

// set the LED with the ledState of the variable:
digitalWrite(ledPin, ledState);
}
}

// hang lejátszó funkció 8 lábon a hangszóró

void hang(){

// iterate over the notes of the melody:
for (int thisNote = 0; thisNote < 8; thisNote++) {

// to calculate the note duration, take one second
// divided by the note type.
//e.g. quarter note = 1000 / 4, eighth note = 1000/8, etc.
int noteDuration = 1000 / noteDurations[thisNote];
tone(8, melody[thisNote], noteDuration);

// to distinguish the notes, set a minimum time between them.
// the note’s duration + 30% seems to work well:
int pauseBetweenNotes = noteDuration * 1.30;
delay(pauseBetweenNotes);
// stop the tone playing:
noTone(8);
}

}

 

Program letöltése

Végeredmény:

Indul:

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Többszöri újraindítás (fárasztó tartani a telefont 🙂 ):

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

Kikapcsolás jelzése és kikapcsolás:

A tartalom nem elérhető.
A sütik használatát az "Elfogadás" gombra kattintva lehet jóváhagyni.

 

Megosztás:

Helló világ!

Üdvözlök minden, elektronika, mikrokontroller varázslót az oldalon ahol saját projektjeimet publikálom. Idővel igyekszem felületet biztosítani olyan lelkes amatőröknek akik szintén publikálni szeretnék a munkájukat, hobbijukat.

Hogy miért híre-hamva?

Mondhatnám azt is, hogy mire itt olvasod a projekteket, már rég elavulttá váltak. Értelmüknek híre-hamva sincs. De még jó szórakozni velük.

Valójában, a domain megmaradt korábbról és újrahasznosítottam. Egy barátommal készítettünk egy többfelhasználós hírlevélküldő oldalt Webgalambhoz hasonló, csak szolgáltatásként üzemeltettük volna. De rossz volt az üzleti modell. 🙂 Így oldal megszűnt domain megmaradt.

 

Megosztás:

Ez a weboldal sütiket használ. Az Uniós törvények értelmében kérem, engedélyezze a sütik használatát, vagy zárja be az oldalt. További információ

Az Uniós törvények értelmében fel kell hívnunk a figyelmét arra, hogy ez a weboldal ún. "cookie"-kat vagy "sütiket" használ. A sütik kicsik, teljesen veszélytelen fájlok, amelyeket a weboldal azért helyez el az Ön számítógépén, hogy minél egyszerűbbé tegye Ön számára a böngészést. A sütiket letilthatja a böngészője beállításaiban. Amennyiben ezt nem teszi meg, illetve ha az "Elfogadom" feliratú gombra kattint, azzal elfogadja a sütik használatát.

Bezárás