Мазмуну:
- 1 -кадам: Materias Necesários
- 2 -кадам: Sensores, Atuadores E Conexões
- 3 -кадам: Апликативдик көзөмөлдөө ремотосу
- 4 -кадам: Криандо Ума "coisa" Na AWS IoT
- 5 -кадам: Python программасы
- 6 -кадам: Финал
Video: Акылдуу үйдү баштоо - Projeto Final: 6 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Акылдуу үйдүн IoT апликациясынын акыркы бөлүгүн түзүү
Акылдуу үйдө IoT колдонулбаган финалдык презентациялардын акыркы бөлүктөрү, алар сенсорлордун жана конструкциялардын DrangonBoard + Linker Mezzanine, ошондой эле интерфейске кирүү мүмкүнчүлүгүн камтыйт AWS булутунда "кошумча" маалыматы бар. Биринчиден, DragonBoard жана IoT комо умтулат, автоматтык түрдө автоматтык түрдө автоматтык түрдө иштейт, сенсор да, люминессация да, ошондой эле ар кандай шарттарда да иштейт. -сенсор сенсорлорду орнотууга мүмкүндүк бербейт, бирок алар эч кандай маалыматтын жоктугунан жана информациялоодон баш тартышат.
1 -кадам: Materias Necesários
- DragonBoard кой.
- 96Boards Linker Mezzanine
- Sensor de luminozidade (LDR) a Linkomp Mezzanine.
- Сенсор де Linker Mezzanine менен иштейт.
- Linker Mezzanine менен байланышыңыз.
- Link/Mezzanine менен байланышыңыз, ал A/C системасында иштейт.
- Светодиод бир Linker Mezzanine менен, жана башка кызматтарды көрсөтөт.
- Библиотекалардын көчүрмөлөрүн орнотуу 5.
2 -кадам: Sensores, Atuadores E Conexões
1. Linker Mezzanine:
Ажыдаар тактасында Mezzanine орнотулган. Пара алуу, кеңеш берүүчү шилтеме
2. Sensor luminosidade (LDR)
ADC1 каталогуна кирүү үчүн сенсордук бөлүкчөлөрдүн жардамы менен катталуучу катмары иштейт. Техничаларды тазалоо:
3. Сенсордук температура
ADC2 каталогуна кирүү үчүн сенсордук бөлүкчөлөрдүн жардамы менен каттоодон өтүңүз. Техничаларды тазалоо:
4. Botão Touch
Оюн сенсорунун жардамы менен D1 катталуучу линзалар менен жабдылган. Кирүү же жок кылуу системасы бул жерде. O acesso a este botão é somente local. Пикирлерди тазалоо: https://linksprite.com/wiki/index.php5? Title = Touch_…
5. Relé
D2ге киргенде, бул дагы Kit2 Linker Mezzanine менен байланышыңыз. A/C. системасынын негизги функциялары бул жерде:/
6. LED
Жарыктандыруучу D4 үчүн Linker Mezzanine менен байланышыңыз. Бул LEDдын системасы дагы, сиз дагы интернетте, тышкы жана тышкы системаңызда, ошондой эле сырттагы маалымат менен да тааныша аласыз. Каршылык көрсөтүүчү резистор 10км болгон учурда, бул системанын жоктугунан, колдонулуучу системанын анализдеринен жана антифриздеринен турат. Техничаларды тазалоо:
7. Sensato de contato magnético
Сенсорлор комплект менен иштөөдө, ошондой эле Linker Mezzanine. Бул жерде эч кандай маалымат жок болгондуктан, сиз өзүңүздү эч нерсе менен байланыштыра албайсыз. Сенсор é um conjunto formado 2 pequenas peças (ver photo do Step acima), or sensors proprimamente dito e um pequeno "imã", que ao aproximar-se do sensor alterar or estado do sensors. Сенсор колдонулбагандан кийин, N/A (нормалдуу аброй). Бул сенсорго же сенсорго отчет берүү. Бул сенсор менен иштөө үчүн эң маанилүү болуп саналат.
3 -кадам: Апликативдик көзөмөлдөө ремотосу
Ionic Framework, https://ionicframework.com/ колдонмолору. Жүктөө жана орнотуу керек.
Комуникарды колдонуу (AWS IoT- AWS IoT- https://aws.amazon.com/iot/), бул пункттун ажыдаар тактасы жана абалын аныктоо үчүн сенсордук статуска ээ болуу үчүн..
- Система иллюминациянын сайттары, ошондой эле сайттар. Күчтүү конфигурацияларды жасоо үчүн, алар автоматтык түрдө орнотулат. Күчтүү мааниге ээ болгондой эле, биз дагы буларды көрөбүз.
- A/C акционердик системасы, A/C жана башка системалар менен иштейт. Темпераменттүү мааниге ээ болуу. Температура жана аба ырайынын температурасы дагы өзгөрөт, ал A/C режиминдеги аба ырайынын температурасы абанын температурасынын 2 даражасына чейин жетет. Мисалы, 23 күндүн ичинде кандайдыр бир температураны карап көрүңүз. Ички абанын температурасы 24 сааттан ашпаган абада, аба жана муздак аба температурасы 20 градуска чейин жетет. Кайталоо.
- Карапайым маалымат, ошондой эле сиз өзүңүздү кармайсыз.
- Температура жана информация интерьерде да, температурада да.
- Luminosidade же luminosidade atual информациялык маалымат.
Бул жерде AWS электрондук почта колдонмосу менен байланышыңыз.
4 -кадам: Криандо Ума "coisa" Na AWS IoT
AWS менен IoT орнотулганда, орнотулган жөндөөлөр төмөнкүдөй:
1) AWS IoT шилтемеси жок проектке шилтеме жасаңыз:
2) Clique "бир нерсени түзүү" жана "Бир нерсени түзүү". Кийинкиге долбоорлоо керек.
3) "Тастыктамасы жок нерсени жаратуу" керек. Үйрөткүчтөр сертификаттардын жардамы менен сертификаттарга ээ болуп, IoT сертификаттарын тапшырууну сунуштайт.
4) Эч нерсеге көңүл бурбоо керек. "Коиса" деген сөз жок болгондуктан, телекоммуникацияны өчүрүү керек. Nessa телеманалдын жардамы менен көйгөйлөрдү оңдоп -түзөө үчүн, сиз өзүңүздүн компьютериңизди оңдоп -түзөй аласыз. Python программасы эч кандай ката кетирген жок, алфавиттик программалар дагы жок кылынат. "Көлөкө" дегенди тандап алгыла, бул AWS Cloud үчүн ажыдаар тактасын жаңыртууга мүмкүндүк берет.
5 -кадам: Python программасы
Библиотекалардын программасы боюнча программаны аткаруу керек:
импорттоо spidevimport убактысын импорттоо журналын импорттоо json import argparse
libsoc импорттук gpio тартып
убакыттан импорттук датадан импорттук датага чейин, gpio_96boardsтен датага GPIO AWSIoTPythonSDK. MQTTLib импорттоо AWSIoTMQTTClient AWSIoTPythonSDK. MQTTLib
Төмөнкү программаны аткарыңыз:
импорттоо spidevimport убактысын импорттоо журналын импорттоо json import argparse
libsoc импорттук gpio тартып
убакыттан импорттук убакыттан datetime импорттоо күнүнө чейин, gpio_96boardsтен датага GPIO AWSIoTPythonSDK. MQTTLib импорттоо AWSIoTMQTTClientтен AWSIoTPythonSDK. MQTTLib импорттоого AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id ('GPIO_CS') #аналог порту
BUTTON = GPIO.gpio_id ('GPIO_A') RELE = GPIO.gpio_id ('GPIO_C') LED = GPIO.gpio_id ('GPIO_G')
казыктар = ((GPIO_CS, 'чыгуу'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'),)
def setdevices (deltaMessagePython):
System_Status = deltaMessagePython ['SystemStatus'] Rele_Status = deltaMessagePython ['AC'] Led_Status = deltaMessagePython ['SisIlumi']
##### AC
эгер Rele_Status == 1: gpio.digital_write (RELE, GPIO. HIGH)
эгер Rele_Status == 0:
gpio.digital_write (RELE, GPIO. LOW)
##### Система де Илуминакао
if Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) if Led_Status == 0: gpio.digital_write (LED, GPIO. LOW)
def readadc (gpio):
gpio.digital_write (GPIO_CS, GPIO. HIGH)
time.sleep (0.0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0xA0, 0x00])#ADC2 - Температура gpio.digital_write (GPIO_CS, GPIO. HIGH) adcout = (r [1)] << 8) & 0b1100000000 adcout = adcout | (r [2] & 0xff) adc_temp = (adcout *5.0/1023-0.5) *100
gpio.digital_write (GPIO_CS, GPIO. HIGH)
time.sleep (0.0002) gpio.digital_write (GPIO_CS, GPIO. LOW) r = spi.xfer2 ([0x01, 0x80, 0x00])#ADC1 - Жарыктык gpio.digital_write (GPIO_CS, GPIO. HIGH) adcoutldr = (r [1] << 8) & 0b1100000000 adcoutldr = adcoutldr | (r [2] & 0xff) adcoutldr = str (adcoutldr) азыр = datetime.utcnow () now_str = азыр.strftime ('%Y-%m-%dT%H:%M:%SZ') тематура = "{:.2f} ". Формат (adc_temp) payload_temp = '{" абал ": {" каалаган ": {" Luminosidade ":' + adcoutldr + '," Temperatura ":' + температура + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) return r
def desliga ():
gpio.digital_write (RELE, GPIO. LOW) gpio.digital_write (LED, GPIO. LOW)
def run (gpio):
system_status = 1
чын болсо:
time.sleep (2) button_value = gpio.digital_read (BUTTON) басып чыгаруу ("----") time.sleep (0.25) if button_value == 1: if system_status == 0: system_status = 1 other: system_status = 0 desliga () if system_status == 1: value = readadc (gpio) print "SYSTEM_STATUS %d" %system_status time.sleep (3)
класс shadowCallbackContainer:
def _init _ (өзүн, deviceShadowInstance): self.deviceShadowInstance = түзмөкShadowInstance
# Көнүмүш Shadow кайра чалуу
def customShadowCallback_Delta (өзүнчө, жүктөм, жоопStatus, токен): басып чыгаруу ("Дельта билдирүүсү алынды:") ### пайдалуу жүктөмөнүн скрипт payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["state"]) басып чыгаруу "DELTA MESSAGE %s" %deltaMessage ### Кабарланган абалды жаңыртуу өтүнүчү newPayload = '{"state": {"report":' + deltaMessage + '}}' deltaMessagePython = json.loads (deltaMessage) setdevices (deltaMessagePython)
spi = spidev. SpiDev ()
spi.open (0, 0) spi.max_speed_hz = 10000 spi.mode = 0b00 spi.bits_per_word = 8
####### Заттын аныктамасы
# AWS IoT тастыктамасына негизделген байланыш
myMQTTClient = AWSIoTMQTTClient ("DBpyAWS1116") myMQTTClient.configureEndpoint ("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configure/Credentials/"-, "/home/linaro/shared/AWS/" SUA CHAVE "-private.pem.key", "/home/linaro/shared/AWS/" SEU CERTIFICADO "-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing (- 1) # Чексиз оффлайнда жарыялоо кезекке туруу myMQTTClient.configureDrainingFrequency (2) # Дренаж: 2 Гц myMQTTClient.configureConnectDisconnectTimeout (10) # 10 сек myMQTTClient.configureMQTTOperationTimeout (5) # 5 сек. MnQntect (my) QualTM coisajsb "," туташкан ", 0)
########################
####### Көлөкө аныктамасы
# Inw AWSIoTMQTTShadowClient
myAWSIoTMQTTShadowClient = эч myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("Ачкыч END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient.configureCredentials ("/ Башкы бет / linaro / бөлүштү / AWS / root- CA.crt ","/home/linaro/shared/AWS/"SUA CHAVE" -private.pem.key ","/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient конфигурациясыAAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) # 5TMTimeTimeTimeTM
# AWS IoT менен туташуу
myAWSIoTMQTTShadowClient.connect ()
# Туруктуу жазылуу менен түзмөк көлөкөсүн түзүңүз
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName ("DBpyAWS1116", Чыныгы) shadowCallbackContainer_Bot = shadowCallbackContainer (deviceShadowHandler)
# Дельталарды угуңуз
түзмөкShadowHandler.shadowRegisterDeltaCallback (shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", '{"state": {"хүссэн": {"SystemStatus": 1, "SisIlumi": 0, "AC": 0, "Garagem"): "Fechada", "Temperatura": 25, "Luminosidade": 123}}} ', 0)
эгер _name_ == "_main_":
GPIO (казыктар) менен gpio катары: чуркоо (gpio)
6 -кадам: Финал
Түшүндүрмөлөр анонтерлерде, системанын аткарылышында же аткарылышында эч кандай пароль жок, 5 электрондук почта колдонмосу ионикалык, иондондук же комондук Иондук кызматты аткарат.
Мүмкүн болгон көйгөйлөрдү чечүү, MWTT Кардарынын AWSти TEST кылуу, AWS Булуттары менен иштөө үчүн, AWS булактарын текшерүү:
Сунушталууда:
SONOFF акылдуу өчүргүчтөрү менен DIY акылдуу ролик жалюзи кантип жасалат ?: 14 кадам
SONOFF акылдуу өчүргүчтөрү менен кантип DIY акылдуу ролик жалюзи? жана аны кечинде түшүрөсүзбү? Кандай болбосун, мен
Акылдуу ойготкуч саат: Raspberry Pi менен жасалган акылдуу ойготкуч саат: 10 кадам (сүрөттөр менен)
Smart Alarm Clock: Raspberry Pi менен жасалган акылдуу ойготкуч: Сиз качандыр бир убакта акылдуу саатты кааладыңыз беле? Андай болсо, бул сиз үчүн чечим! Мен Smart Alarm Clock жасадым, бул веб -сайтка ылайык ойготкуч убактысын өзгөртө турган саат. Ойготкуч өчкөндө, үн чыгат (зумбул) жана 2 жарык күйөт
Үйдү автоматташтырууну баштоо: Үй жардамчысын орнотуу: 3 кадам
Үйдү автоматташтырууну баштоо: Үйдүн жардамчысын орнотуу: Биз азыр үйдүн автоматташтыруу сериясын баштайлы, анда акылдуу үйдү түзөбүз, ал бизге борбордук хабдын жардамы менен жарыктар, динамиктер, сенсорлор жана башка ушул сыяктуу нерселерди башкарууга мүмкүнчүлүк берет. үн жардамчысы. Бул постто биз кантип кирүүнү үйрөнөбүз
Акылдуу үйүңүздү акылдуу түрдө коргоңуз: 14 кадам
Акылдуу үйүңүздү Smartly Secure: Мен коопсуз жана коопсуз конкурс үчүн күрөшүп жатам. Эгерде сизге менин көрсөтмөм жакса, ага добуш бериңиз! Мен сизге үйүңүздү жана анын айлана -чөйрөсүн кантип оңой жана арзан коргоону көрсөтөм. Конфигурациялоо
Үйдү автоматташтыруу - акылдуу жалюзи: 8 кадам
Үйдү автоматташтыруу - акылдуу жалюзи: Бул көрсөтмөдө биз өзүңүздүн жалюзиңизди серво мотору менен кантип жөндөө керектигин карап чыгабыз жана үйүңүздөгү жалюзиңизди автоматташтырылган акылдуу жалюзига айландырыңыз, ал сизге үй автоматчысы менен толукталып берет. уландысы