Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Particle Photon: Hatua 4
Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Particle Photon: Hatua 4
Anonim
Image
Image

HMC5883 ni dira ya dijiti iliyoundwa kwa kuhisi nguvu ya uwanja wa chini. Kifaa hiki kina upeo wa uwanja wa sumaku pana wa +/- 8 Oe na kiwango cha pato la 160 Hz. Sensorer ya HMC5883 inajumuisha madereva ya kamba ya kiotomatiki ya kusambaza, kufuta kukabiliana, na 12-bit ADC inayowezesha usahihi wa kichwa cha 1 ° hadi 2 °. Moduli zote za Mini I²C zimeundwa kufanya kazi kwa 5VDC.

Katika mafunzo haya, tutaelezea kazi ya kina ya HMC5883 na chembe chembe. Particle photon ni bodi ambayo inawezesha kutuma na kupokea data kutoka kwa wavuti, ambayo inasaidia kipengele cha msingi cha Internet Of Things (IoT).

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo tunahitaji kutimiza lengo letu ni pamoja na vifaa vifuatavyo vya vifaa:

1. HMC5883

2. Particle Photon

3. Cable ya I2C

4. I2C Shield kwa Particle Photon

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uhusiano wa wiring unaohitajika kati ya sensa na chembe chembe. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

HMC5883 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic. Unachohitaji ni waya nne!

Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Nambari ya Kupima Uzito wa Shamba la Magnetic:

Nambari ya Kupima Ukali wa Shamba la Magnetic
Nambari ya Kupima Ukali wa Shamba la Magnetic

Wacha tuanze na nambari ya chembe sasa.

Wakati tunatumia moduli ya sensorer na Arduino, tunajumuisha application.h na maktaba ya spark_wiring_i2c.h. "application.h" na maktaba ya spark_wiring_i2c.h ina kazi ambazo zinawezesha mawasiliano ya i2c kati ya sensa na chembe.

Nambari nzima ya chembe imepewa hapa chini kwa urahisi wa mtumiaji:

# pamoja

# pamoja

// Anwani ya HMC5883 I2C ni 0x1E (30)

#fafanua Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

kuanzisha batili ()

{

// Weka tofauti

Chembe. Hubadilika ("i2cdevice", "HMC5883");

Chembe. Hubadilika ("xMag", xMag);

Chembe. Hubadilika ("yMag", yMag);

Chembe. Hubadilika ("zMag", zMag);

// Anzisha mawasiliano ya I2C kama MASTER

Wire.begin ();

// Awali Mawasiliano ya Siri, weka kiwango cha baud = 9600

Kuanzia Serial (9600);

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua sanidi sajili A.

Andika waya (0x00);

// Weka usanidi wa kawaida wa kipimo, kiwango cha pato la data = 0.75Hz

Andika waya (0x60);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua Usajili wa Njia

Andika waya (0x02);

// Weka kipimo kinachoendelea

Andika waya (0x00);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

kuchelewesha (300);

}

kitanzi batili ()

{

data isiyoingia [6];

// Anza Uhamisho wa I2C

Uwasilishaji wa waya (Addr);

// Chagua rejista ya data

Andika waya (0x03);

// Acha Uhamisho wa I2C

Uwasilishaji wa waya ();

// Omba ka 6 za data

Ombi la Wire. Toka (Addr, 6);

// Soma ka 6 za data

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

ikiwa (Waya haipatikani () == 6)

{

data [0] = Wire.read ();

data [1] = soma kwa waya ();

data [2] = soma kwa waya ();

data [3] = soma kwa waya ();

data [4] = soma kwa waya ();

data [5] = soma kwa waya ();

}

kuchelewesha (300);

// Badilisha data

xMag = ((data [0] * 256) + data [1]);

ikiwa (xMag> 32767)

{

xMag - = 65536;

}

zMag = ((data [2] * 256) + data [3]);

ikiwa (zMag> 32767)

{

zMag - = 65536;

}

yMag = ((data [4] * 256) + data [5]);

ikiwa (yMag> 32767)

{

yMag - = 65536;

}

// Pato la data kwenye dashibodi

Kuchapisha ("Sehemu ya Magnetic katika X-Axis:", Kamba (xMag));

kuchelewesha (1000);

Kuchapisha chembe ("Uwanja wa Magnetic katika Y-Axis:", Kamba (yMag));

kuchelewesha (1000);

Kuchapisha chembe ("Uwanja wa Magnetic katika Z-Axis:", Kamba (zMag));

kuchelewesha (1000);

}

Kazi ya Particle.variable () huunda vigeuzi vya kuhifadhi pato la sensor na Particle.publish () kazi inaonyesha pato kwenye dashibodi ya tovuti.

Pato la sensorer linaonyeshwa kwenye picha hapo juu kwa kumbukumbu yako.

Hatua ya 4: Maombi:

Maombi
Maombi

HMC5883 ni mlima wa uso, moduli ya chip nyingi iliyoundwa kwa kuhisi uwanja wa chini na kiolesura cha dijiti kwa programu kama kuzunguka kwa gharama nafuu na sumaku. Usahihi wa kiwango cha juu cha kiwango cha moja hadi mbili na usahihi huwezesha Urambazaji wa Watembea kwa miguu na Maombi ya LBS.

Ilipendekeza: