Мазмұны:
- 1 -қадам: Python -да көлбеу деректерді алу
- 2 -қадам: құрылғыны бұлтқа қосу
- 3 -қадам: деректерді бұлтқа жіберу
- 4 -қадам: Қорытынды нәтиже
Бейне: Смартфоннан сыра ашыту температурасы мен гравитациясын қалай басқаруға болады: 4 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:27
Сыра ашытылған кезде оның ауырлығы мен температурасын күнделікті бақылау керек. Мұны ұмыту оңай, ал егер сіз алыс болсаңыз - мүмкін емес.
Біраз гуглингтен кейін мен гравитацияны автоматты бақылауға арналған бірнеше шешімдерді таптым (бір, екі, үш). Олардың бірі, өте ақылды тұжырымдамасы бар, Tilt деп аталады. Еңкейту сіздің сыраңызда жүзіп жүреді және көлбеу бұрышын өлшейді. Бұл бұрыш сұйықтықтың тығыздығына байланысты, сондықтан ашытатын сыраның ауырлығын өлшей алады.
Tilt мобильді қосымшамен бірге келеді, ол оған қосылады және кез келген веб -қызметке деректерді жібере алады. Мәселе мынада, бұл үшін Tilt -тен алыс емес болу керек. Сондай -ақ, Tilt -пен жұмыс істейтін Raspberry Pi бағдарламасы бар.
1 -қадам: Python -да көлбеу деректерді алу
Мен жертөле температурасын бақылау үшін Raspberry Pi мен cloud4rpi.io бұлтты басқару панелін қолданамын. Егер Tilt Raspberry Pi -мен сөйлесе алатын болса, оған cloud4rpi қосылуы мүмкін. Tilt сымсыз протоколды қолданады, сондықтан сізге сымсыз чипі бар Raspberry Pi қажет болады (Rasbperry Pi 3 немесе Zero W).
Бақытымызға орай, кейбір үлгілері бар Tilt бағдарламалық жасақтамасы үшін GitHub репо бар. Https://github.com/baronbrew/tilt-scan сілтемесіне қарап, Tilt басқаларға ULEID кодында «Түсі» бар, BLE iBeacon ретінде көрінеді, ал температура мен ауырлық үлкен және кіші байттарда болады.
Олардың үлгі коды Node.js үшін, менде cloud4rpi үлгісіне негізделген Python басқару бағдарламасы бар
Сондықтан мен Python -да Tilt деректерін алуым керек. Біраз гуглингтен кейін мен https://github.com/switchdoclabs/iBeacon-Scanner-- Python iBeacon сканерін таптым. Бұл кітапхана емес, бағдарлама, сондықтан мен оны жолдың орнына сөздікті қайтару үшін өзгерттім. Сондай-ақ, мен ең бірінші табылған көлбеудің түсі, температурасы мен ауырлығын алу үшін Tilt арнайы модулін жаздым (менде бір ғана) және менің көлбеуімді көре алатынын тексеру үшін қарапайым тест бағдарламасы:
импорттық уақыт импорт қисайту
шындық кезінде:
res = tilt.getFirstTilt () басып шығару res time.sleep (2)
Жүгіріп, оның жұмыс істейтінін тексеріңіз. Енді мен оны басқару бағдарламасына қосуға болады. Менде cloud4rpi.io -ға қосылған python бағдарламасы бар, бірақ мен оны қалай нөлден қалай жасау керектігін көрсетуге рұқсат етіңіз.
2 -қадам: құрылғыны бұлтқа қосу
Алдымен cloud4rpi.io жүйесіне кіріңіз, содан кейін жаңа құрылғы жасаңыз.
Сізге құрылғы белгісі мен орнату нұсқаулары беріледі. Raspberry Pi үшін мына нұсқауларды орындаңыз https://docs.cloud4rpi.io/start/rpi/-сіздің жүйенің жаңартылғанына көз жеткізіңіз:
sudo apt update && sudo apt upgrade
Алғышарттарды орнатыңыз:
sudo apt install git python python-pip орнатыңыз
Cloud4rpi python бумаларын орнатыңыз:
sudo pip cloud4rpi орнатады
содан кейін Raspberry Pi үшін питон қосымшасының үлгісін алыңыз (басқару қалтасына):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… басқару
CD бақылауы
modify control.py - құрылғы белгісін жолда көрсетіңіз
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Құрылғының айнымалы декларациясынан қажет емес жазбаларды алып тастаңыз, құрылғы қосылымын тексеру үшін тек CPUTemp қалдырыңыз:
# Мұнда айнымалы мәлімдемелерді қойыңыз айнымалылар = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Енді тест жүгіруді орындаңыз:
sudo python control.py
Егер бәрі жақсы болса, сіздің құрылғыңыздың беті диагностикалық деректермен дереу жаңартылады.
3 -қадам: деректерді бұлтқа жіберу
Енді бізге Tilt түсін, температурасы мен ауырлық күшін оқу және хабарлау үшін control.py өзгерту керек. Нәтиже келесідей көрінеді:
os импортынан unamefrom розетка импорт gethostname импорт sys импорт уақыты импорт cloud4rpi импорт rpi импорт қисайту
# Құрылғыңыздың белгісін осында қойыңыз. Белгіні алу үшін, # https://cloud4rpi.io сайтына тіркеліңіз және құрылғы жасаңыз. DEVICE_TOKEN = '_YOUR_DEVICE_TOKEN_'
# Тұрақтылар
DATA_SENDING_INTERVAL = 60 # сек DIAG_SENDING_INTERVAL = 600 # сек POLL_INTERVAL = 0,5 # 500 мс
маяк = {}
def F2C (градус F):
қайтару (градус F - 32) / 1.8
def getTemp ():
қайтару F2C (int (маяк ['Temp']))) егер басқа маяк Жоқ
def getGravity ():
қайтару маягы ['Гравитация'] егер басқа маяк Жоқ
def main ():
# Мұнда айнымалы мәлімдемелерді қойыңыз
айнымалылар = {'Ауырлық күші': {'түрі': 'сандық', 'байланыстыру': getGravity}, 'Сыра темпі': {'түрі': 'сандық', 'байланыстыру': getTemp}}
диагностика = {
'CPU Temp': rpi.cpu_temp, 'IP Address': rpi.ip_address, 'Host': gethostname (), 'Operating System': «».join (uname ())}
құрылғы = cloud4rpi.connect (DEVICE_TOKEN)
device.declare (айнымалылар) device.declare_diag (диагностика)
device.publish_config ()
# Құрылғы айнымалыларының жасалуын қамтамасыз ету үшін 1 секундтық кідіріс қосады
уақыт.ұйқы (1)
тырысу:
data_timer = 0 diag_timer = 0, ал True: егер data_timer <= 0: жаһандық маяк маягы = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
егер diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
уақыт.ұйқы (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
KeyboardInterrupt қоспағанда:
cloud4rpi.log.info ('Пернетақта үзілісі алынды. Тоқтатылуда …')
e сияқты ерекшеліктерді қоспағанда:
error = cloud4rpi.get_error_message (e) cloud4rpi.log.error («ERROR! %s %s», қате, sys.exc_info () [0])
соңында:
sys.exit (0)
егер _ аты _ == '_ негізгі _':
негізгі ()
Енді оны қолмен іске қосып, жұмыс істейтінін көріңіз:
sudo python control.py
Егер бәрі жақсы болса, сіз айнымалыларды желіде көресіз.
Жүйе іске қосылған кезде control.py іске қосу үшін оны қызмет ретінде орнатыңыз. Cloud4rpi бұл үшін service_install.sh сценарийін ұсынады. Мен оны репоға енгіздім. Control.py қызметін қызмет ретінде орнату үшін іске қосыңыз
sudo bash service_install.sh control.py
Енді сіз бастай аласыз | тоқтату | бұл қызметті пәрменді іске қосу арқылы қайта іске қосыңыз
sudo systemctl cloud4rpi.service іске қосыңыз
Қызмет бұрынғы күйін қосады, сондықтан егер ол жұмыс істеп тұрса, ол қайта жүктеуден немесе қуат жоғалғаннан кейін жұмыс істейді.
4 -қадам: Қорытынды нәтиже
Міне, енді менде Tilt параметрлері бұлтқа жіберілді, сондықтан мен бұлтқа арналған жақсы басқару тақтасын орната аламын. Https://cloud4rpi.io/control-panels өтіңіз және жаңа басқару тақтасын жасаңыз, виджетті қосыңыз және деректер көзі ретінде/Gravity және Beer Temp таңдаңыз. Енді мен үйде болмасам да, не болып жатқанын бақылай аламын.
Мен көшірген және жазған код мына жерде: https://github.com/superroma/tilt-cloud4rpi. Бұл мінсіз емес, ол тек бір ғана көлбеуде жұмыс істейді, ол құрылғының «түсі» туралы маңызды емес, және мен мүлде Python жігіті емеспін, сондықтан түзетулер, ұсыныстар немесе шанышқылар құпталады. !
Ұсынылған:
BLDC моторын Arduino мен джойстикпен қалай басқаруға болады: 6 қадам
BLDC моторын Arduino мен Joystick көмегімен қалай басқаруға болады: Сәлеметсіздер ме, бұл оқулықта мен щеткасыз тұрақты қозғалтқышты BLDC моторымен Arduino мен джойстикпен қалай басқаруға болатынын көрсетемін
Raspberry Pi мен реле арқылы құрылғыны қалай басқаруға болады - НЕГІЗДЕРІ: 6 қадам
Raspberry Pi мен реле арқылы құрылғыны қалай басқаруға болады - НЕГІЗДЕРІ: Бұл IoT жобаларын жасауға көмектесетін Raspberry Pi мен реле арқылы құрылғыны басқаруға арналған негізгі және тікелей нұсқаулық Бұл оқулық жаңадан бастаушыларға арналған таңқурай қолдану туралы мүлдем білмесеңіз де жалғастырыңыз
160А щеткалы электронды жылдамдық реттегіші мен сервистік сынағышты қолдана отырып, тұрақты берілісті қозғалтқышты қалай басқаруға болады: 3 қадам
Тұрақты ток беріліс моторын 160А щеткалы электронды жылдамдық реттегіші мен сервистік сынақ құралының көмегімен қалай басқаруға болады: Техникалық сипаттамасы: Кернеу: 2-3S Lipo немесе 6-9 NiMH Үздіксіз ток: 35А Жарылу тогы: 160A BEC: 5V / 1A, сызықтық режим режимдері: 1. алға &кері; 2. алға &тежеу; 3. алға & тежеу & кері Салмағы: 34г Өлшемі: 42*28*17мм
DHT11 температура сенсорын Arduino мен басып шығару температурасы мен жылу мен ылғалдылықта қалай қолдануға болады: 5 қадам
DHT11 температура сенсоры Arduino мен басып шығару температурасы бар жылу мен ылғалдылықта қалай қолданылады: DHT11 сенсоры температура мен ылғалдылықты өлшеу үшін қолданылады. DHT11 ылғалдылық пен температура сенсоры электрониканың өте танымал әуесқойлары, DIY электроникасының жобаларына ылғалдылық пен температура туралы мәліметтерді қосуды жеңілдетеді. Бұл әр
Үй телефондарын смартфоннан Blynk қосымшасы мен Raspberry Pi көмегімен басқарыңыз: 5 қадам (суреттермен)
Үй телефондарын смартфоннан Blynk қосымшасы мен Raspberry Pi көмегімен басқарыңыз: Бұл жобада біз тұрмыстық техниканы басқару үшін Blynk қосымшасы мен Raspberry Pi 3 -ті қолдануды үйренеміз (кофеқайнатқыш, шам, терезе пердесі және т.б.). Жабдықтың құрамдас бөліктері: Raspberry Pi 3 релелік лампа тақтасының сымдары Бағдарламалық жасақтаманың қосымшалары: Blynk A