Բովանդակություն:
- Քայլ 1: Կարգավորեք Raspberry Pi- ն
- Քայլ 2: MySQL- ի տեղադրում Raspberry Pi- ի վրա
- Քայլ 3: Կարգավորեք SensorBugs- ը
- Քայլ 4: Տեղադրեք Bluetooth LE Python Wrapper- ը
- Քայլ 5. Սկանավորեք և գտեք SensorBug- ի հասցեն
- Քայլ 6: Ավելացրեք Python Script
- Քայլ 7: Փորձարկեք Python Script- ը
- Քայլ 8: Ավելացրեք Python Scrip- ը Crontab- ին
- Քայլ 9. Լրացուցիչ. Կարգավորեք SensorBug- ը `Position Sensing Output- ի համար
Video: Վերահսկել և գրանցել ջերմաստիճանը Bluetooth LE- ով և ազնվամորիով ՝ 9 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
Այս խրատը այն մասին է, թե ինչպես կարելի է միավորել ջերմաստիճանի մոնիտորինգի բազմակողմանի համակարգ Bluetooth LE սենսորային սխալի միջոցով Blue Radios (BLEHome) և RaspberryPi 3B- ի շնորհիվ Bluetooth LE ստանդարտի զարգացման շնորհիվ այժմ շուկայում առկա են ցածր էներգիայի անլար տվիչներ: շատ ցածր գնով և կարող է ամիսներ շարունակ աշխատել մեկ մետաղադրամի բջիջի վրա: Այս սենսորներից մեկը, որ ես վերցրեցի, Blue Radio- ից է, որը կոչվում է Sensor Bugs: Amazon- ում արժե մոտ $ 25, դա Bluetooth LE սարք է `ջերմաստիճանի տվիչով, լուսային սենսորով և արագաչափով, որոնք բոլորը կառուցված են մի փոքր սարքի մեջ, որը կարող է անլար հաղորդակցվել: Սա հիանալի համընկնում է Raspberry Pi 3B- ի համար, որը ստեղծվել է Bluetooth LE ռադիոյի աջակցությամբ:.
Քայլ 1: Կարգավորեք Raspberry Pi- ն
Առաջին քայլը `ստանալ Raspberry Pi- ի աշխատանքային կարգավորում: Հետևեք Raspberry Pi- ի վեբ կայքի ցուցումներին, տեղադրեք Raspbian- ը SD քարտի վրա, տեղադրեք Raspberry Pi- ի մեջ և տեղադրեք այն: Ես իմ համակարգը կարգավորում եմ Raspbian Stretch Lite (No GUI) տարբերակով նոյեմբեր 2017 -ին: Անհրաժեշտության դեպքում WiFi- ի տեղադրում, ես նախընտրում եմ հարմարեցնել ժամային գոտի դեպի ընթացիկ ժամային գոտի UTC- ի փոխարեն: Դուք կարող եք դա անել, չնայած հրամանին ՝ $ sudo dpkg-reconfigure tzdata Հրահանգի մնացորդը ենթադրենք, որ կարգավորումը կատարվում է հրամանի տողի միջերեսով:
Քայլ 2: MySQL- ի տեղադրում Raspberry Pi- ի վրա
Օգտակար է տեղակայված տվյալների բազայի տեղադրումը `բոլոր գրավված տվյալները պահելու համար: Raspberry Pi- ի վրա MySQL- ի տեղադրումը չափազանց հեշտ է: Դժվար չէ նաև փոփոխել սցենարը SQL սերվերին արտաքին կապելու համար, կարող եք բաց թողնել այս քայլը, եթե ցանկանում եք օգտագործել SQL սերվեր ցանցում: instructionsանցում կան բազմաթիվ հրահանգներ, ես սա առաջարկում եմ ՝ https:// www.stewright.me/2014/06/tutorial-install-…
SQL սերվերը տեղադրվելուց հետո կարող եք օգտագործել MySQL CLI հաճախորդը ՝ օգտվող, տվյալների բազա և աղյուսակ ստեղծելու համար: MySQL CLI մուտքագրելու համար օգտագործեք հրամանը.
$ sudo mysql -uroot -p Նախ, ստեղծեք տեղացի օգտվող ՝ գրավված տվյալները տեղադրելու համար.> CREATE USER 'datasrc'@'localhost' IDENTIFYED BY 'datasrc000'; Հաջորդը, ստեղծեք տվյալների բազա և աղյուսակ.> CREATE DATABASE SensorBug; Օգտագործողի կարգավորում թույլտվություն.> ՏՐԱՄԱԴՐԵԼ ԲՈԼՈՐ ՊՐՈՎԻԼՅՈՆՆԵՐԸ SensorBug- ում:* Դեպի 'datasrc'@'localhost'; Այժմ ավելացրեք նոր աղյուսակ տվյալների բազայում: Այս օրինակի համար ես կավելացնեմ աղյուսակ հետևյալ սյունակներով ՝ DATE, TIME, ՀԱՍRԵ, ՏԵOCԱԿԱԼՈ,ԹՅՈՆ, EMԵՐՄԱՈՅ և ԱԿՍԵՐՈՄԵՏՐ
- DATE/TIME - Սա տվյալների գրանցման ամսաթիվն ու ժամն է
- ՀԱՍRԵ - Սա SensorBug- ի MAC- ն է, որտեղից հաղորդագրությունը վերցված է
- ՏԵOCԵԿՈԹՅՈՆ - Մարդկային ընթերցվող տող `նշելու, թե որտեղ է գտնվում սենսորը
- EMԵՐՄՈԹՅՈՆ - Սա գրանցված ջերմաստիճանն է
- ACCELE - Սա արագացուցիչի ելքի արժեքն է, որն օգտակար է սենսորային դիրքի գրանցման համար (եթե այն միացված է)
Հրամանը, որն անում է սա.> USE SensorBug; > ՍՏԵԵԼ ՍԵABԱՆԻ տվյալներ (ամսաթիվը DATE, ժամը TIME, հասցեն TINYTEXT, գտնվելու վայրը TINYTEXT, ջերմաստիճանը FLOAT, speed INT); Այժմ տվյալների բազան պատրաստ է, մենք կարող ենք անցնել sensorBugs- ի կարգավորմանը:
Քայլ 3: Կարգավորեք SensorBugs- ը
Սենսորային սխալները բավականին կոկիկ փոքր սարքեր են: Unfortunatelyավոք, արտադրողը միայն IOS ծրագիր է տրամադրել այն ծրագրավորելու համար: Այնուամենայնիվ, հնարավոր է աշխատել դրա հետ, եթե ունեք միայն Android սարք: Առաջին քայլը ՝ սարքը միացրեք հեռախոսի հետ: Առանց սարքը զուգակցելու, SensorBug- ը չի գովազդելու տվյալները: Փորձեցի պարզել ՝ կարո՞ղ եմ դա անել անմիջապես RaspberryPi- ի հետ, ցավոք, թվում է, թե RaspberryPi- ի Bluetooth LE վարորդը դեռ փորձնական է և պարունակում է սխալներ ՝ այն կանխելու համար Bluetooth LE սարքերի հետ զուգակցումը: BlueZ վարորդի ապագա տարբերակը կարող է շտկել դա, սակայն, ինչպես ներկայումս գրված է, SensorBug- ը RaspberryPi- ի հետ համատեղելու միջոց չկա: Բարեբախտաբար, մենք կարիք չունենք սարքը զուգակցելու ՝ գովազդվող տվյալները գրավելու համար: Միակ բանը, որ մեզ պետք է, հեռախոսն է ՝ SensorBug- ը կազմաձևելու համար: Լռելյայն, SensorBug- ը կսկսի գովազդել ջերմաստիճանի տվյալները 1 վրկ ընդմիջումով, երբ այն սարքի հետ զուգակցվի: Temperatureերմաստիճանի տվյալների գրավման համար դա այն ամենն է, ինչ անհրաժեշտ է: Եթե նախատեսում եք ընդլայնել դիրքի կամ լույսի սենսորի օգտագործման համար, ապա սարքի կազմաձևման կարիքը կլինի: Սկսելու համար մենք սարքը կմիավորենք և կապը կտրենք: Սա բավականաչափ լավ կլինի ջերմաստիճանի գրավման նպատակով: Սկսեք ՝ սեղմելով SensorBug- ի երկու կոճակները: Կապույտ/կանաչ լուսադիոդը կթարթվի, ինչը ցույց է տալիս, որ այն միացված է: Սեղմեք կոճակից մեկը, կանաչ LED- ը պետք է լուսավորվի, նշեք, որ հոսանքը միացված է: Եթե կանաչ լուսադիոդը լուսավորված չէ, սեղմեք երկու կոճակը ՝ սարքը նորից միացնելու համար: Սեղմեք և պահեք կոճակից մեկը, մինչև կապույտ LED- ը սկսի թարթել: Սա սարքը կդնի զույգ ռեժիմի: Մտեք հեռախոսի Bluetooth կազմաձևման ընտրացանկ և փնտրեք SensorBug սարքը: Երբ այն հայտնվի, ընտրեք այն սարքի հետ զուգակցելու համար: Դա այն է, որ այժմ SensorBug- ը սնուցվում է և գովազդում է ջերմաստիճանի տվյալները
Քայլ 4: Տեղադրեք Bluetooth LE Python Wrapper- ը
Հաջորդը, մենք պետք է տեղադրենք գրադարանը Python- ի համար ՝ Bluetooth LE կույտի հետ խոսելու համար: Հրահանգը կարող եք գտնել այստեղ ՝ https://github.com/IanHarvey/bluepy Python 2.7 -ի համար այն նույնքան պարզ է, որքան հետևյալ հրամանները մուտքագրելը.
$ sudo apt-get տեղադրել python-pip libglib2.0-dev $ sudo pip install bluepy
Քայլ 5. Սկանավորեք և գտեք SensorBug- ի հասցեն
SensorBug MAC հասցեն պարզելու համար օգտագործեք այս հրամանը ՝ $ sudo hcitool lescan Դուք պետք է տեսնեք ելք, ինչպիսին է ՝
EC: FE: 7E: 10: B1: 92 (անհայտ) Եթե ձեր կողքին կան շատ bluetooth LE սարքեր, գուցե դժվար լինի պարզել, թե որ մեկի հետ եք խոսում: Կարող եք փորձել bluetoothctl- ը, որն ավելի շատ մանրամասներ է տալիս.
$ sudo bluetoothctl [bluetooth]# սկան միացված է [NEW] Սարքի EC: FE: 7E: 10: B1: 92 SensorBug10B192 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 ԱրտադրողՏվյալների բանալին ՝ 0x0085 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 Արտադրող Տվյալների արժեքը `0x02 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը` 0x00 [CHG] Սարքը EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը: 0x3c [CHG] Սարքի EC: FE: 7E: 10: B1: 92 ԱրտադրողՏվյալների արժեքը `0x25 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 ManufacturerData արժեքը` 0x09 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 Արտադրող Տվյալների արժեքը `0x41 [CHG] Սարքի EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը` 0x02 [CHG] Սարքը EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը `0x02 [CHG] Սարքը EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը `0x43 [CHG] Սարքը EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալների արժեքը` 0x0b [CHG] Սարքը EC: FE: 7E: 10: B1: 92 Manufacturer Տվյալներ Արժեքը ՝ 0x01 [CHG] Սարքի EC ՝ FE: 7E: 10: B1: 92 Արտադրող Տվյալների արժեքը ՝ 0x6f
Գրանցեք MAC հասցեն, այն պետք է մուտքագրվի python սցենարի մեջ ՝ Bluetooth LE անցանկալի սարքերը զտելու համար:
Քայլ 6: Ավելացրեք Python Script
Python սցենարի պատճենը հասանելի է ՝
drive.google.com/open?id=10vOeEAbS7mi_eXn_…
Ահա նույն ֆայլը, պատճենելիս հոգ տանել կետի մասին.
Բացի այդ, թարմացրեք MAC հասցեն պիթոնի ֆայլում, որպեսզի համապատասխանի սկանավորման արդյունքից ստացված սենսորի հասցեին:
# Այս ծրագիրը անվճար ծրագրակազմ է. Կարող եք այն վերաբաշխել և/կամ փոփոխել
# այն GNU General Public License- ի պայմաններով, ինչպես հրապարակել է
# Free Software Foundation, կամ լիցենզիայի 3 -րդ տարբերակ, կամ
# (ըստ ձեր ցանկության) ցանկացած ավելի ուշ տարբերակ:
#
# Այս ծրագիրը տարածվում է այն հույսով, որ այն օգտակար կլինի, # բայց ԱՌԱՆ ԵՐԱՇԽԻՔԻ; առանց նույնիսկ ենթադրյալ երաշխիքի
# ԱՌԵՎՏՐՈԹՅՈՆ կամ համապատասխանություն ՝ հատուկ նպատակի համար: Տես ՝
# GNU General Public License ՝ ավելի մանրամասն:
#
# Դուք պետք է ստանայիք GNU General Public License- ի պատճենը
# այս ծրագրի հետ միասին: Եթե ոչ, տես.
# bscan.py - Պարզ bluetooth LE սկաներ և տվյալների արդյունահանող սարք
bluepy.btle ներմուծման սկաներից, DefaultDelegate- ից
ներմուծման ժամանակը
ներմուծել pymysql
ներմուծել կառուցվածքը
hostname = 'localhost'
օգտվողի անուն = 'datasrc'
գաղտնաբառ = 'datasrc000'
տվյալների բազա = 'SensorBug'
#Մուտքագրեք սենսորի MAC հասցեն lescan- ից
SENSOR_ADDRESS = ["ec: fe: 7e: 10: b9: 92", "ec: fe: 7e: 10: b9: 93"]
SENSOR_LOCATION = ["Ավտոտնակ", "Արտաքին"]
դասարան DecodeErrorException (Բացառություն):
def _init _ (ես, արժեք):
self.value = արժեքը
def _str _ (ինքն):
վերադարձ repr (self.value)
դաս ScanDelegate (DefaultDelegate):
def _init _ (self):
DefaultDelegate._ init _ (ինքնուրույն)
def handleDiscovery (self, dev, isNewDev, isNewData):
եթե isNewDev:
տպել «Հայտնաբերված սարք», dev.addr
elif isNewData:
տպել «Ստացվել են նոր տվյալներ», dev.addr
def doQueryInsert (conn, addr, loc, temp, accero):
#blesensor աղյուսակը ամսաթիվն է, ժամը, հասցեն, գտնվելու վայրը, ջերմաստիճանը, ավելացումը
cur = conn.cursor ()
dostr = 'ՄՏԱԵՔ տվյալների արժեքների մեջ (CURRENT_DATE (), NOW (), %s, %s, %s, %s);'
cur.execute (dostr, (addr, loc, temp, accero))
conn.commit ()
սկաներ = Սկաներ (). withDelegate (ScanDelegate ())
myConnection = pymysql.connect (հյուրընկալող = հյուրընկալողի անուն, օգտվող = օգտվողի անուն, passwd = գաղտնաբառ, db = տվյալների բազա)
ManuDataHex =
ReadLoop = իշտ է
փորձել:
while (ReadLoop):
սարքեր = սկաներ. սկան (2.0)
Մանուա տվյալներ = ""
սարքերի համար dev- ի համար.
մուտք = 0
AcceroData = 0
AcceroType = 0
TempData = 0
saddr- ի համար SENSOR_ADDRESS- ում ՝
մուտք += 1
եթե (dev.addr == saddr):
տպել "Սարքը %s (%s), RSSI = %d dB" %(dev.addr, dev.addrType, dev.rssi)
CurrentDevAddr = սադրիչ
CurrentDevLoc = SENSOR_LOCATION [մուտք -1]
for (adtype, desc, value) in dev.getScanData ():
տպել " %s = %s" %(նկարագրություն, արժեք)
եթե (desc == "Արտադրող"):
ManuData = արժեք
եթե (ManuData == ""):
տպել «Տվյալներ չկան, վերջ վերծանում»
շարունակել
#տպել ՄանուՏվյալներ
i- ի համար j zip- ում (ManuData [:: 2], ManuData [1:: 2]):
ManuDataHex.append (int (i+j, 16))
#Սկսեք վերծանել Արտադրողի հումքի տվյալները
եթե ((ManuDataHex [0] == 0x85) և (ManuDataHex [1] == 0x00)):
տպել «Գտնվել է վերնագրի բայթ 0x0085»
այլ:
տպել «Վերնագրի բայթ 0x0085 չի գտնվել, վերծանման կանգառ»
շարունակել
#Բաց թողնել մայորը/փոքրը
#Index 5 -ը 0x3c է, նշեք մարտկոցի մակարդակը և կազմաձևեք #
եթե (ManuDataHex [4] == 0x3c):
BatteryLevel = ManuDataHex [5]
ConfigCounter = ManuDataHex [6]
idx = 7
#տպել "TotalLen:" + փող (len (ManuDataHex))
while (idx <len (ManuDataHex)):
#տպել "Idx:" + փող (idx)
#տպել «Տվյալներ.» + վեցանկյուն (ManuDataHex [idx])
եթե (ManuDataHex [idx] == 0x41):
#Acerometer- ի տվյալները
idx += 1
AcceleroType = ManuDataHex [idx]
AcceleroData = ManuDataHex [idx+1]
idx += 2
elif (ManuDataHex [idx] == 0x43):
#Peratերմաստիճանի տվյալներ
idx += 1
TempData = ManuDataHex [idx]
TempData += ManuDataHex [idx +1] * 0x100
TempData = TempData * 0.0625
idx += 2
այլ:
idx += 1
տպել «Սարքի հասցե.» + CurrentDevAddr
տպել «Սարքի գտնվելու վայրը.» + CurrentDevLoc
տպել "Մարտկոցի մակարդակը." + փող (BatteryLevel) + "%"
տպել "Config Counter:" + str (ConfigCounter)
տպել "Accelero Data:" + hex (AcceleroType) + "" + hex (AcceleroData)
տպել "Temp Data:" + str (TempData)
doQueryInsert (myConnection, CurrentDevAddr, CurrentDevLoc, TempData, AcceleroData)
ReadLoop = Կեղծ
բացառությամբ DecodeErrorException:
անցնել
Քայլ 7: Փորձարկեք Python Script- ը
Սցենարը պետք է գործի արմատով, այնպես որ.
$ sudo python bscan.py Հայտնաբերված սարք ec: 6e: 7e: 10: b1: 92 Սարքի ec: 6e: 7e: 10: b1: 92 (հանրային), RSSI = -80 դԲ դրոշներ = 06 Անավարտ 16 բ ծառայություններ = 0a18 Արտադրող = 850002003c25094102024309016f Վերնագրի բայթ 0x0085 գտնված Սարքի հասցե ՝ ec: 6e: 7e: 10: b1: 92 Սարքի գտնվելու վայրը. Ավտոտնակ Մարտկոցի մակարդակ ՝ 37% Կազմաձևիչ հաշվիչ ՝ 9 Accero Data:
Քայլ 8: Ավելացրեք Python Scrip- ը Crontab- ին
Պիթոնի սցենարը պետք է գործի արմատով, այնպես որ, եթե ցանկանում եք տվյալները ավտոմատ կերպով գրավել, ապա այն պետք է ավելացվի արմատի crontab- ին: Այս օրինակի համար ես սցենարը գործարկում եմ յուրաքանչյուր 20 րոպեն մեկ Օգտագործեք հրամանը.
$ sudo crontab -e
# Խմբագրեք այս ֆայլը ՝ cron- ի կողմից առաջադրվող առաջադրանքները ներկայացնելու համար:
# # Յուրաքանչյուր առաջադրանք պետք է սահմանվի մեկ տողի միջոցով #, որը տարբեր դաշտերով ցույց է տալիս, թե երբ է առաջադրանքը կատարվելու #, և ինչ հրահանգ պետք է կատարել # # Toամանակը որոշելու համար կարող եք տրամադրել կոնկրետ արժեքներ # րոպեի համար (մ), ժամ (ժ), ամսվա օր (dom), ամիս (երկուշաբթի), # և շաբաթվա օր (dow) կամ օգտագործեք '*' այս դաշտերում («ցանկացածի համար»): # # Նշեք, որ առաջադրանքները կսկսվեն հիմնված քրոնի համակարգի # daemon հասկացության վրա ժամանակի և ժամային գոտիների մասին: # # Crontab- ի աշխատանքների ելքը (ներառյալ սխալները) ուղարկվում է # էլ. Փոստի միջոցով այն օգտվողին, որին պատկանում է crontab ֆայլը (եթե այն չի վերահղված): # # Օրինակ, ամեն շաբաթ առավոտյան ժամը 5 -ին կարող եք կատարել ձեր բոլոր օգտվողների հաշիվների կրկնօրինակը ՝ # 0 5 * * 1 tar -zcf /var/backups/home.tgz/home/ # # Լրացուցիչ տեղեկությունների համար տե՛ս crontab (5) և cron (8) # # mh dom mon dow հրաման 0 * * * * python /home/pi/bscan.py 20 * * * * python /home/pi/bscan.py 40 * * * * python /home/pi/bscan.py
Վերջ Պիթոնի սցենարը գործարկվելու է կանոնավոր պարբերականությամբ և արդյունքը վերակոդավորելու է SQL տվյալների բազայում
Քայլ 9. Լրացուցիչ. Կարգավորեք SensorBug- ը `Position Sensing Output- ի համար
Հնարավոր է կարգավորել SensorBug- ը Android- ում ՝ դիրքորոշման ելքի համար: Դիրքի փոփոխման զգայարանների համար, այսպես կոչված Ավտոտնակի դուռ: զգայարան, SensorBug- ը կբացահայտի, արդյոք սարքը կանգնած է կամ հարթ պառկած: Երբ սարքը հարթ է, գրանցված արժեքը 0x20 է: եթե սարքը կանգնած է, արժեքը 0x02 է: Այն չի տարբերվում, եթե X կամ Y դիրքերը վեր են, քանի դեռ Z առանցքը վեր կամ վար չէ: Դա անելու ամենահեշտ ձևը LightBlue հավելվածի օգտագործումն է: SensorBug- ը պետք է հայտնվի սկան ընտրացանկում: Ընտրեք այն սարքը, որը ցանկանում եք կարգավորել, անցեք արագացուցիչի կազմաձևման GATT- ի բնութագրերին UUID: 9DC84838-7619-4F09-A1CE-DDCF63225B11
Տես նկարը. Գրեք նոր կազմաձևման տող.
010d3f02020000002d00000002 Կարդացեք հետագծման տողը `գրությունը հաստատելու համար: Սա հնարավորություն է տալիս արագացուցիչը դիրքի զգայացման համար:
Խորհուրդ ենք տալիս:
Կոկտեյլային մեքենա GUI ազնվամորիով. 7 քայլ (նկարներով)
Cocktail Machine With GUI Raspberry: Ձեզ դուր է գալիս տեխնոլոգիան և երեկույթը: Այս նախագիծը պատրաստված է ձեզ համար: Այս ձեռնարկում մենք կստեղծենք ավտոմատացված կոկտեյլ մեքենա ՝ գրաֆիկական ինտերֆեյսով: Ամեն ինչ, որը վերահսկվում է ազնվամորու միջոցով: Խմբագրել. Ես այստեղ նորը դարձրեցի ավելի էժան և էժան:
Ինչպե՞ս գրանցել IOS 12 էկրանը Facecam- ով: 4 քայլ
Ինչպե՞ս ձայնագրել IOS 12 էկրանը Facecam- ով: Դուք կարող եք դա անել ձեր վրա, ինչպես նաև իմ փոքրիկ խորհուրդներով: Եթե ցանկանում եք օգտագործել iOS 12 էկրանի ձայնագրիչը ՝ ձեր էկրանը ֆոտոխցիկով ձայնագրելու համար, համոզվեք, որ
Pi Home, ազնվամորիով աշխատող վիրտուալ օգնական. 11 քայլ (նկարներով)
Pi Home, ազնվամորիով աշխատող վիրտուալ օգնական. Google Home- ը օգտակար է տանը ունենալ: Այն գեղեցիկ սարք է, որը ներկառուցված է Google Assistant- ով: Այն կարող է նվագարկել մեդիա, պահպանել ձեր հիշեցումներն ու գրառումները, պատմել ձեր ճանապարհորդության տևողությունը
ESP8266. Ինչպես վերահսկել ջերմաստիճանը և խոնավությունը. 12 քայլ
ESP8266. Ինչպես վերահսկել ջերմաստիճանը և խոնավությունը. Այսօրվա ձեռնարկում մենք DHT22 սենսորի ջերմաստիճանի և խոնավության ցուցանիշների համար կօգտագործենք ESP-01, որը ESP8266 է կոնֆիգուրացիայի 01-ում (ընդամենը 2 GPIO- ով): Ես ձեզ ցույց կտամ էլեկտրական սխեմա և ESP ծրագրավորման մասը Arduino- ով:
Ինչպես վերահսկել գարեջրի խմորման ջերմաստիճանը և ծանրությունը ձեր սմարթֆոնից. 4 քայլ (նկարներով)
Ինչպես վերահսկել գարեջրի խմորման ջերմաստիճանը և ծանրությունը ձեր սմարթֆոնից. Երբ գարեջուրը խմորում է, դուք պետք է ամեն օր վերահսկեք դրա ծանրությունն ու ջերմաստիճանը: Հեշտ է մոռանալ դա անելը, և անհնար է, եթե դու հեռու ես: Որոշ գուգլներ անելուց հետո ես գտա մի քանի լուծում ինքնահոս ծանրության մոնիտորինգի համար (մեկ, երկու, երեք): Մեկը ՝