Orodha ya maudhui:

Jinsi ya Kutengeneza Kaunta ya Hatua ?: Hatua 3 (na Picha)
Jinsi ya Kutengeneza Kaunta ya Hatua ?: Hatua 3 (na Picha)

Video: Jinsi ya Kutengeneza Kaunta ya Hatua ?: Hatua 3 (na Picha)

Video: Jinsi ya Kutengeneza Kaunta ya Hatua ?: Hatua 3 (na Picha)
Video: Majambazi walipopambana na Polisi baada ya kuiba pesa NMB Bank 2024, Novemba
Anonim
Image
Image
Unda Mradi wa Blynk
Unda Mradi wa Blynk

Nilikuwa nikifanya vizuri kwenye michezo mingi: kutembea, kukimbia, kuendesha baiskeli, kucheza badminton nk.

Ninapenda kusafiri kuzunguka kabla ya muda mrefu. Naam, angalia tumbo langu la portly ……

Kweli, hata hivyo, ninaamua kuanza tena mazoezi. Je! Ninafaa kuandaa vifaa gani? Mbali na kituo cha michezo, ndio! Nahitaji chombo! Ninaamini nayo, ninaweza kuweka mazoezi sahihi. Hapa chombo kinapatikana. Wacha tuanze na video ~

Chombo hicho sio tu kinaweza kurekodi hatua (na kalori) kwa wakati halisi, lakini onyesha wakati. Kilicho maalum ni kwamba fomati ya kuonyesha ni pointer ~ poa sana! Ninaipenda sana!

Unaweza kupakia rekodi zako kwenye mtandao

kwa kubofya moja tu. Rekodi zote zinaweza kuonyeshwa na Blynk (programu mahiri ya simu iliyoletwa hapo awali). Sawa na saa inayoweza kuvaliwa, chombo hupata wakati kwenye laini (Kwa hivyo hauitaji kuogopa nguvu na uppdatering wa wakati).

Vifaa katika vifaa:

Bodi ya FireBeetle-ESP32

Bodi ya FireBeetle inashughulikia-Proto

Skrini ya OLED12864 ya kuondoa

Moduli ya kuongeza kasi

Betri ya 3.7V (imenunuliwa mkondoni, ujazo ni karibu 600mAH)

Chupa 3 (zilizonunuliwa mkondoni)

Ni rahisi sana kujenga mradi huu na Blybk.

Hatua ya 1: Unda Mradi wa Blynk

Ongeza vidhibiti viwili:

Onyesha Thamani * 1

Saa ya wakati halisi * 1

Jina la Onyesho la Thamani linapaswa kuwekwa kwa hatua, lakini hakuna mpangilio wa mali ya Saa ya wakati halisi. Chagua V1 kama pini ya kuingiza ili kurekebisha mpangilio wa vidhibiti, kama ilivyoonyeshwa hapo chini.

Hatua ya 2: Pakua Programu kwa Bodi ya FireBeetle-ESP32

Bonyeza hapa kupakua nambari ya chanzo kwa esp32. Nambari ya chanzo ina faili za maktaba na faili za uchapishaji za 3D. Unapaswa kuhifadhi faili ya maktaba kwa lib ya arduino. Na faili za 3D zinaweza kuchapisha ganda moja kwa moja.

Chini ni programu kuu

# pamoja # ikiwa ni pamoja // Inahitajika tu kwa Arduino 1.6.5 na mapema #jumuisha # SSD1306.h "// alias kwa" # pamoja na "SSD1306Wire.h" "# pamoja na" OLEDDisplayUi.h "# pamoja na" picha.h "# ni pamoja na #jumuisha # pamoja na # pamoja # # pamoja #fafanua POWER_KEY 1 #fafanua MENU_KEY 2 #fafanua UPLOAD_KEY 3 boolean upload = false; Onyesho la SSD1306 (0x3c, 18, 0); OLEDDisplayUi ui (& onyesha); Kipima muda cha SimpleTimer; WidgetRTC rtc; skrini ya ndaniW = 128; skrini ya ndaniH = 64; saa ya saaCenterX = skriniW / 2; saa ya saaCenterY = ((skriniH-16) / 2) +16; // sehemu ya njano ya juu ni urefu wa 16 px int saaRadius = 23; #fafanua DEVICE (0x53) // ADXL345 anwani ya kifaa #fafanua TO_READ (6) // idadi ya ka tutasoma kila wakati (ka mbili kwa kila mhimili) baiti [TO_READ]; // bafa 6 ya kuhifadhi data iliyosomwa kutoka kwa kifaa char str [100]; // bafa ya kamba kubadilisha data kabla ya kuipeleka kwa bandari ya serial int regAddress = 0x32; // daftari la kwanza la mhimili-kuongeza kasi-ya data kwenye ADXL345 int xx, yy, zz; // data tatu za kuongeza kasi ya mhimili tuli int currentValue = 0; hatua ndefu ambazo hazijasainiwaSum = 0; char auth = "YourAuthToken"; // Kitambulisho chako cha WiFi. // Weka nenosiri kwa "" kwa mitandao wazi. char ssid = "YourNetworkName"; char pass = "Neno lako Nywila"; const char mbio_Logo_bits PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x03, 0x00, 0x00, 0x00, 0x00 0xF8, 0x01, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0xFC, 0x05, 0x00 0x00 Nambari 0xFC, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0xF8, 0x01, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00 Kupakiwa kwenye tovuti: 0 | Jumla ya kura: 0 | 0xFE, 0x03, 0x00, 0x00, 0x00, 0xF9, 0x03, 0x00, 0x00, 0x00, 0xFA, 0x03, 0x00, 0x00, 0x00, 0xF8, 0x03, 0x00, 0x00, 0x00, 0xF0 0x0 0xF4, 0x07, 0x00, 0x00, 0x00, 0xF4, 0x0F, 0x00, 0x00, 0x00, 0xF9, 0x0F, 0x00, 0x00, 0x00, 0xFC, 0x1F 0x00 0xFF, 0x1F, 0x00, 0x00, 0xA0, 0xFF, 0x5F, 0x00, 0x00, 0xC0, 0x3F, 0x3F, 0x00, 0x0 Nambari 0, 0xE8, 0x1F, 0x3F, 0x00, 0x00, 0xE8, 0xA7, 0x3E, 0x00, 0x00, 0xF0, 0x03, 0x7C, 0x00, 0x00, 0xE0, 0x05 Kupakiwa kwenye tovuti: 0 | Jumla ya kura: 0 | 0x00, 0x80, 0x03, 0x00, 0xF8, 0x01, 0x00, 0x07, 0x00, 0xF4, 0x00, 0x00, 0x07, 0x00, 0xE8, 0x00, 0x80 0x0F 0x00, 0xE8, 0x0F, 0x00, 0xE8, 0x00, 0xF0, 0x09, 0x00, 0x60, 0x01, 0xF0, 0x04, 0x00, 0x00, 0x00,}; // kazi ya matumizi ya onyesho la saa ya dijiti: prints zinazoongoza 0 Kamba mbiliDigits (nambari za int) {if (tarakimu <10) {String i = '0' + String (tarakimu); kurudi i; } mwingine {kurudi Kamba (tarakimu); }} saa batiliOverlay (OLEDDisplay * onyesho, OLEDDisplayUiState * state) {if ((hour () == 0) && (minute () == 0) && (second () == 0)) stepsSum = 0; } batili ya AnalogClockFrame (OLEDDisplay * onyesho, OLEDDisplayUiState * hali, int16_t x, int16_t y) {onyesha> kuteka Mzunguko (saaCenterX + x, saaCenterY + y, 2); kupe ya saa kwa (int z = 0; z DrawLine (x2 + x, y2 + y, x3 + x, y3 + y); / 57.29577951); onyesha-> choraLine (saaCenterX + x, saaCenterY + y, x3 + x, y3 + y); // onyesha kona ya mkono wa dakika = dakika () * 6; angle = (angle / 57.29577951); // Badilisha digrii kuwa radians x3 = (saaCenterX + (dhambi (angle) * (saaRadius - (saaRadius / 4)))); onyesha-> choraLine (saaCenterX + x, saaCenterY + y, x3 + x, y3 + y); // onyesha saa ya mkono wa saa = saa () * 30 + int ((dakika () / 12) * 6); angle = (angle / 57.29577951); SaaRadius - (saaRa dius / 2))))); onyesha-> choraLine (saaCenterX + x, saaCenterY + y, x3 + x, y3 + y); } utupu wa DigitalClockFrame (OLEDDisplay * onyesho, OLEDDisplayUiState * hali, int16_t x, int16_t y) {String date = String (year ()) + "/" + twoDigits (month ()) + "/" + TwoDigits (day ()); Timenow ya kamba = Kamba (saa ()) + ":" + mbiliDigits (dakika ()) + ":" + mbiliDigits (pili ()); onyesha-> setTextAlignment (TEXT_ALIGN_CENTER); onyesha-> setFont (ArialMT_Plain_24); onyesha-> drawString (clockCenterX + x, 20, timenow); onyesha-> setFont (ArialMT_Plain_16); onyesha-> DrawString (60, 45, tarehe); } utupu kuandika // kuanza maambukizi kwa kifaa Wire.write (anwani); // tuma anwani ya rejista Wire.write (val); // tuma thamani ya kuandika Wire.endTransmission (); // uwasilishaji wa mwisho} // inasoma baiti za nambari kutoka kwa rejista ya anwani kwenye kifaa ili kupanga safu tupu ya kusomaFrom (kifaa cha ndani, anwani ya baiti, nambari ya nambari, baiti ) {Wire.beginTransmission (kifaa); // kuanza maambukizi kwa kifaa Wire.write (anwani); // hutuma anwani kusoma kutoka kwa Wire.endTransmission (); // mwisho wa kupitisha waya.anza Uhamisho (kifaa); // kuanza maambukizi kwa kifaa Wire.requestFrom (kifaa, num); // ombi ka 6 kutoka kwa kifaa int i = 0; wakati (Wire.available ()) // kifaa kinaweza kutuma chini ya ombi (isiyo ya kawaida) {buff = Wire.read (); // pokea baiti i ++; } Uwasilishaji wa waya (); // uhamisho wa mwisho} batili mbioFrame (OLEDDisplay * onyesho, OLEDDisplayUiState * hali, int16_t x, int16_t y) {float calValue = stepsSum * 0.4487; onyesha-> setTextAlignment (TEXT_ALIGN_CENTER); onyesha-> setFont (ArialMT_Plain_24); onyesha-> kutekaString (saaCenterX, saaCenterY, str); sprintf (str, "%.2fcal", calValue); onyesha-> setTextAlignment (TEXT_ALIGN_CENTER); onyesha-> setFont (ArialMT_Plain_10); onyesha-> kutekaString (100, 20, str); onyesha-> kutekaXbm (10, 14, 34, 50, mbio_Logo_bits); } upakiaji batiliFrame (OLEDDisplay * display, OLEDDisplayUiState * state, int16_t x, int16_t y) {display-> setFont (ArialMT_Plain_16); onyesha-> kutekaString (60, 45, "pakia data…"); } // Safu hii inaweka viashiria vya kazi kwa fremu zote // muafaka ni maoni moja ambayo huteleza katika fremu za FrameCallback = {AnalogClockFrame, DigitalClockFrame, RunFrame, uploadFrame}; // kuna fremu ngapi? fremu ya hesabu = 4; // Vifuniko vinawekwa juu ya sura kwa mfano. saa Kufunikwa kwa upigaji simu

Tahadhari: Unapaswa kurekebisha mpangilio wa Wi-Fi, pasipoti na AUTHTOKENS kwako mwenyewe.

char auth = "YourAuthToken"; // Kitambulisho chako cha WiFi. // Weka nenosiri kwa "" kwa mitandao wazi. char ssid = "YourNetworkName"; char pass = "Nenosiri lako";

Hatua ya 3: Uunganisho wa vifaa

Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa
Uunganisho wa vifaa

Unganisha OLED12864 na moduli ya kuongeza kasi kwa I2C, chini kwa D2, D3, D4. Kwa kuongezea, ongeza vipinga vya kuvuta 51k kwenye vifuniko ili kufikia 3.3V, iliyoonyeshwa hapa chini.

Tahadhari: Ni makosa kuunganisha vipinga-kuvuta kwa AREF, moja ya haki ni 3.3V

Picha ya kuuza vifaa, iliyoonyeshwa kama ilivyo hapo chini:

Baada ya solder, kukusanya moduli ya vifaa kwenye ganda, iliyoonyeshwa kama ilivyo hapo chini:

Picha ya athari kamili

Ilipendekeza: