Съдържание:
- Стъпка 1: Получаване на данни за накланяне в Python
- Стъпка 2: Свързване на устройството към облака
- Стъпка 3: Изпращане на данни в облака
- Стъпка 4: Краен резултат
Видео: Как да контролирате температурата и тежестта на ферментацията на бирата от вашия смартфон: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Когато бирата ферментира, трябва да следите нейната гравитация и температура всеки ден. Лесно е да забравите да направите това и е невъзможно, ако сте далеч.
След малко гугъл открих няколко решения за автоматичен мониторинг на гравитацията (едно, две, три). Един от тях, с много умна концепция, се нарича Tilt. Наклонът се носи във вашата бира и измерва своя собствен ъгъл на наклон. Този ъгъл зависи от плътността на течността и следователно може да измери тежестта на ферментиралата бира.
Tilt идва с мобилно приложение, което се свързва с него и може да публикува данни във всяка уеб услуга. Проблемът е, че трябва да сте далеч от Tilt, за да можете да го направите. Има и програма Raspberry Pi, която работи с Tilt.
Стъпка 1: Получаване на данни за накланяне в Python
Вече използвам Raspberry Pi за наблюдение на температурата в мазето и услуга за облачен контролен панел cloud4rpi.io. Ако Tilt може да говори с Raspberry Pi, трябва да е възможно да свържете cloud4rpi към него. Tilt използва безжичен протокол, така че ще ви е необходим Raspberry Pi с безжичен чип (Rasbperry Pi 3 или Zero W).
За щастие има GitHub репо за софтуер Tilt с някои мостри. Гледайки https://github.com/baronbrew/tilt-scan, можете да видите, че Tilt изглежда за другите като BLE iBeacon, с „Цвят“, кодиран в UUID, а температурата и гравитацията са в големи и малки байтове.
Примерният им код е за Node.js и аз имам програма за контрол на Python, базирана на шаблон cloud4rpi
Така че трябва да получа данни за Tilt в Python. След малко гугъл намерих https://github.com/switchdoclabs/iBeacon-Scanner-- скенер Python iBeacon. Това е програма, а не библиотека, затова я модифицирах, за да върна речник вместо низ. Написах и модул, специфичен за Tilt, за да получа цвета, температурата и тежестта на първия намерен Tilt (имам само един) и проста програма за тестване, за да проверя дали може да види моя Tilt:
време за импортиране импорт наклон
докато е вярно:
res = tilt.getFirstTilt () печат res time.sleep (2)
Стартирайте и проверете дали работи. Сега мога да го включа към моята програма за управление. Вече имам програма за python, свързана с cloud4rpi.io, но нека покажа как да го направя от нулата.
Стъпка 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
след това вземете примерно приложение на python за Raspberry Pi (в контролна папка):
git clone https://github.com/cloud4rpi/cloud4rpi-raspberryp… контрол
cd контрол
модифицирайте control.py - посочете маркера на вашето устройство в реда
DEVICE_TOKEN = ‘_YOUR_DEVICE_TOKEN_’
Премахнете ненужните записи от декларациите на променливите на устройството, оставете само CPUTemp за тестване на връзката с устройството:
# Поставете декларации на променливи тук променливи = {'CPU Temp': {'type': 'numeric', 'bind': rpi.cpu_temp}}
Сега направете пробно пускане:
sudo python control.py
Ако всичко е наред, страницата на вашето устройство веднага ще бъде актуализирана с диагностични данни.
Стъпка 3: Изпращане на данни в облака
Сега трябва да променим control.py, за да четем и докладваме цвета, температурата и гравитацията на Tilt. Резултатът изглежда така:
от os импортиране uname от гнездо импортиране 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 ms
маяк = {}
def F2C (градусиF):
връщане (градусиF - 32) / 1.8
def getTemp ():
връщане F2C (int (beacon ['Temp']))), ако beacon else None
def getGravity ():
return beacon ['Gravity'] ако маяк иначе Няма
def main ():
# Поставете декларации на променливи тук
variables = {'Gravity': {'type': 'numeric', 'bind': getGravity}, 'Beer Temp': {'type': 'numeric', 'bind': 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 секунда, за да гарантира създаването на променливи на устройството
time.sleep (1)
опитвам:
data_timer = 0 diag_timer = 0 while True: if data_timer <= 0: global beacon beacon = tilt.getFirstTilt () device.publish_data () data_timer = DATA_SENDING_INTERVAL
ако diag_timer <= 0: device.publish_diag () diag_timer = DIAG_SENDING_INTERVAL
time.sleep (POLL_INTERVAL)
diag_timer -= POLL_INTERVAL data_timer -= POLL_INTERVAL
с изключение на KeyboardInterrupt:
cloud4rpi.log.info ('Получено прекъсване на клавиатурата. Спиране …')
с изключение на изключение като e:
грешка = cloud4rpi.get_error_message (e) cloud4rpi.log.error ("ГРЕШКА! %s %s", грешка, sys.exc_info () [0])
накрая:
sys.exit (0)
ако _name_ == '_main_':
main ()
Сега го стартирайте ръчно, за да видите дали работи:
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 and Beer Temp като източник на данни. Сега мога да наблюдавам какво се случва, дори ако съм далеч от дома.
Кодът, който копирах и написах, е достъпен тук: https://github.com/superroma/tilt-cloud4rpi. Той далеч не е перфектен, работи само с един наклон, не го интересува „Цветът“на устройството, каквото и да означава, и изобщо не съм човек на Python, така че поправки, предложения или вилици са добре дошли !
Препоръчано:
Как да изградите 8x8x8 LED куб и да го контролирате с Arduino: 7 стъпки (със снимки)
Как да изградим 8x8x8 LED куб и да го контролираме с Arduino: януари 2020 г. редакция: Оставям това в случай, че някой иска да го използва за генериране на идеи, но вече няма смисъл да изграждате куб въз основа на тези инструкции. Интегралните схеми на LED драйвера вече не се правят и двете скици са написани в стара версия
Как да контролирате светлината/домашните светлини с помощта на Arduino и Amazon Alexa: 16 стъпки (със снимки)
Как да контролираме светлината/домашните светлини с помощта на Arduino и Amazon Alexa: Обясних как се контролира светлината, която е свързана с UNO и се контролира от Alexa
Как да контролирате домакински уреди с дистанционно за телевизор с функция таймер: 7 стъпки (със снимки)
Как да контролираме домакинските уреди с дистанционно за телевизор с функция таймер: Дори след 25 години от въвеждането му на потребителския пазар, инфрачервената комуникация все още е много актуална през последните дни. Независимо дали става въпрос за вашия 55 -инчов 4K телевизор или аудиосистема на вашия автомобил, всичко се нуждае от IR дистанционно управление, за да отговори на нашите
Управлявайте домашните уреди от вашия смартфон с приложението Blynk и Raspberry Pi: 5 стъпки (със снимки)
Управлявайте домашните уреди от вашия смартфон с приложението Blynk и Raspberry Pi: В този проект ще научим как да използваме приложението Blynk и Raspberry Pi 3, за да контролираме домакински уреди (кафе машина, лампа, завеса за прозорци и др.) ). Хардуерни компоненти: Raspberry Pi 3 Релейна лампа Проектиране на платки Софтуерни приложения: Blynk A
Тестер за стойност на ускорението на тежестта: 5 стъпки (със снимки)
Измервател на стойността на ускорението на гравитацията: Въз основа на кинематиката този проект измерва стойността на константата на ускорението на тежестта („l " g ’)” чрез измерване на данните за движението при свободно падане. , стъклена топка, стоманена топка и т.н.) падат