Агуулгын хүснэгт:

Ухаалаг гэрийг эхлүүлэх - Projeto Final: 6 алхам
Ухаалаг гэрийг эхлүүлэх - Projeto Final: 6 алхам

Видео: Ухаалаг гэрийг эхлүүлэх - Projeto Final: 6 алхам

Видео: Ухаалаг гэрийг эхлүүлэх - Projeto Final: 6 алхам
Видео: Какого числа от 1 до 31, родился человек, такая у него и вся жизнь 2024, Долдугаар сарын
Anonim
Ухаалаг гэрийг эхлүүлэх - Projeto Final
Ухаалаг гэрийг эхлүүлэх - Projeto Final

Projeto apresentado é parte do project to final to curso de IoT aplicado a Smart Home

Төгсгөлийн төгсгөлд нь IoT -ийг ашиглахгүй байхын тулд Smart Home -ийг ашиглах боломжтой болно. AWS -д үүлдрийн мэдээлэл "эцэг эхчүүд" -ийг ашиглах боломжтой болно. Энэ нь DragonBoard e IoT комо ашиглах боломжтой, автомат систем, машины мэдрэгч, мэдрэгч, гэрэл мэдрэгч, компьютерийн тоног төхөөрөмж, тоног төхөөрөмж ашиглах зэрэг болно. -Мэдээллийн мэдрэгч ойролцоо байх болно, энэ нь танд ямар ч мэдээлэл өгөхгүй байх болно.

Алхам 1: Материас Нетариариос

Материас Надерариос
Материас Надерариос
Материас Надерариос
Материас Надерариос
  1. DragonBoard -ийг байрлуул.
  2. 96Boards Linker Mezzanine
  3. Мэдрэгч де luminozidade (LDR) нь Linker Mezzanine -тэй ажилладаг.
  4. Мэдрэгч нь Linker Mezzanine компанид ажилладаг.
  5. Linker Mezzanine -тэй холбоо бариарай.
  6. A/C холболтын системд холбогдсон холбогчийг холбох боломжтой.
  7. LED нь холбогчийг хооронд нь холбох үүргийг гүйцэтгэдэг.
  8. Номын сангийн библиотекас оруулах боломжгүй 5.

Алхам 2: Sensores, Atuadores E Conexões

Sensores, Atuadores E Conexões
Sensores, Atuadores E Conexões
Sensores, Atuadores E Conexões
Sensores, Atuadores E Conexões

1. Холбогч Mezzanine:

Луузны самбар дээр Mezzanine -ийг холбох шаардлагатай байна. Деталууд, зөвлөх линк

2. Luminosidade мэдрэгч (LDR)

Kit мэдрэгч нь ADC1 -тэй холбогддог. Пара -г арилгаж өгдөг:

3. Температурын мэдрэгч

Kit мэдрэгч нь ADC2 -тэй холбогддог. Пара -г арилгаж өгдөг:

4. Botão Touch

O мэдрэгч нь Kit da Linker Mezzanine -ийг ашиглаж болно D1. Тохиромжтой байх ёстой. Өө, орон нутгийн уу? Пара -г тайлж болно: https://linksprite.com/wiki/index.php5? Title = Touch_ …

5. Реле

D2 холбоосыг ашиглахын тулд Kit da Linker Mezzanine -ийг сонгоно уу. A/C. програмыг ашиглахын тулд компьютерийн сүлжээг ашиглана уу:

6. LED

D4 -ийн LED холбоосыг холбох линзийг сонгоно уу. O LED систем нь олон нийтийн сүлжээний систем, гадаад харилцаа холбоо, интернэт, гадаад харилцаа холбоо, гадаад харилцаа холбоо зэргийг харуулдаг. Эсэргүүцлийн эсэргүүцэл нь 10км-ээс хэтрэхгүй байх ёстой бөгөөд энэ нь системийг ашиглах боломжтой болно. Пара -г арилгаж өгдөг:

7. Мэдрэгч de contato magnético

Kit эсвэл Linker Mezzanine -ийн хамгийн сайн мэдрэгч нь компьютерийн холбоос юм. Энэ нь танд ямар ч мэдээлэл өгөхгүй байх болно. 2 мэдрэгчтэй (алхам алхамаар), эсвэл "мэдрэгч", "мэдрэгч" гэсэн хоёр мэдрэгч, өөр өөр мэдрэгчтэй болно. Мэдрэгч нь ямар ч тохиолдолд N/A (хэвийн хэмжигдэхүүн) гэсэн ойлголтыг өгдөг. Мэдрэгч эсвэл мэдрэгчийг тайлагнах боломжтой. Мэдрэгч эсвэл мэдрэгчийг шалгана уу.

Алхам 3: Хяналтын ремото програмыг ашиглана уу

Хяналтын ремотыг ашиглах боломжтой
Хяналтын ремотыг ашиглах боломжтой

Ionic Framework, https://ionicframework.com/ вэбсайтуудыг ашиглана уу. Шаардлагатай гэж үзвэл програмыг татаж авах боломжтой.

A coms comicic (l e e atualizar os dados) com a cloud da AWS (AWS IoT- https://aws.amazon.com/iot/), мөн арын самбар дээр луугийн хавтанг байрлуулах, мэдрэх чадвартай байх..

- Илуминажа систем, сайтууд эсвэл сайтууд. Маш чухал үүрэг гүйцэтгэдэг бөгөөд энэ нь автоматаар хийгддэг. Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах уу?

- A/C acionará o relé, a por a sua vez acionará o systema de A/C da casa. Тэмдэглэл нь температурын хэмжээсээр тодорхойлогддог. Агаарын температурыг хэмжихийн тулд агаарын температурыг хэмжиж, агааржуулагчийг цэвэрлэ. Жишээлбэл, энэ нь 23 -ийн температурын хувьд чухал юм. Дотоод температурын хязгаарлалт нь 24 цаг, агааржуулагчтай, агаарын температурын хувьд 20 хэм хүртэл өндөр температуртай байдаг. Дахин давтана уу.

- Гарагемийн мэдээлэл нь танд ямар ч мэдээлэл өгөх болно.

- Дотоод засал чимэглэлийн температур, температурын горим.

- Luminosidade é apesas informativa e morttra o valor da luminosidade atual.

Sexue em anexo os arquivos home.html e home.ts contendos os códigos para comunicação com a cloud AWS e atualização do app.

Алхам 4: Криандо Ума Na AWS IoT "coisa"

Криандо Ума
Криандо Ума

AWS дээр IoT -ийг тохируулахдаа дараах тохиргоог хийх хэрэгтэй:

1) AWS IoT -ийн холбоосгүй линкийг үзэхийн тулд:

2) "Нэг зүйлийг бүтээх", "Нэг зүйлийг бий болгох". Дараа нь товчлох хэрэгтэй.

3) "Гэрчилгээгүй зүйлийг бүтээ" гэж хэлээрэй. Зааварчилгаа өгөх заавар нь IoT семальт сертификатуудын аль алинд нь зориулагдсан болно.

4) Нэн чухал биш, "coisa" гэж хэлэх хэрэгтэй. Богино хугацаанд "coisa" гэж нэрлэхийн тулд компьютерийн командыг сонгоно уу. Nessa tela podemos to tópicosMQTT нь ямар ч асуудал үүсгэж, алдааг олж засварлах боломжийг танд олгоно. Python програмыг ажиллуулахад ямар ч үүрэг гүйцэтгэдэггүй. "Сүүдэр" -ийг сонгохдоо AWS Cloud дээр луугийн самбарыг шинэчлэх боломжтой болно.

Алхам 5: Python програм

Хөтөлбөрийг гүйцэтгэх явцад библиотека хийх шаардлагатай байна.

импортлох spidevimport цаг импортлох бүртгэл импорт json импорт argparse

libsoc импортын gpio -аас

datetime импортлох огнооноос унтах цаг, gpio_96boards -аас datetime нь AWSIoTPythonSDK. MQTTLib -аас GPIO импортлох

Хөтөлбөрийг дуусгахын тулд:

импортлох spidevimport цаг импортлох бүртгэл импорт json импорт argparse

libsoc импортын gpio -аас

datetime импортлох огнооноос унтах цаг, gpio_96boards -аас datetime нь AWSIoTPythonSDK. MQTTLib -аас GPIO импортлох 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)

##### Систем де Илуминакао

хэрэв Led_Status == 1: gpio.digital_write (LED, GPIO. HIGH) бол 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) now = datetime.utcnow () now_str = now.strftime ('%Y-%m-%dT%H:%M:%SZ') температур = "{:.2f} ". Формат (adc_temp) payload_temp = '{" төлөв ": {" хүссэн ": {" Luminosidade ":' + adcoutldr + '," Температура ":' + температур + '}}}' myMQTTClient.publish ("$ aws/things/DBpyAWS1116/shadow/update", payload_temp, 0) буцах 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 () хэрэв system_status == 1: утга = readadc (gpio) хэвлэх "SYSTEM_STATUS %d" %system_status time.sleep (3)

class shadowCallbackContainer:

def _init _ (өөрөө, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance

# Custom Shadow дуудлага хийх

def customShadowCallback_Delta (өөрөө, ачаа, хариуStatus, токен): хэвлэх ("Дельта мессеж хүлээн авсан:") ### ачааллын шинэчлэлтийн скрипт payloadDict = json.loads (payload) deltaMessage = json.dumps (payloadDict ["төлөв"]) хэвлэх "DELTA MESSAGE %s" %deltaMessage ### Мэдээлэгдсэн төлөвийг шинэчлэх хүсэлт newPayload = '{"төлөв": {"мэдээлсэн":' + 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) # Infinite offline Publish myMQTTClient.configureDrainingFrequency (2) # Draining: 2 Hz myMQTTClient.configureConnectDisconnectTimeout (10) # 10 sec myMQTTClient.configureMQTTOperationTimeout (5) # 5 секундынMinQntect (5) coisajsb "," холбогдсон ", 0)

########################

####### Сүүдрийн тодорхойлолт

# AWSIoTMQTTShadowClient -ийг эхлүүлнэ үү

myAWSIoTMQTTShadowClient = Байхгүй myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient ("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint ("SEU 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 configurationmyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime (1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout (10) #ToTMTMTM

# 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: Эцсийн шат

Эцсийн шатны шалгаруулалт
Эцсийн шатны шалгаруулалт

Após ter concluido os passos anteriores, deve-se inicializar or systema performando or código fornecido no passo 5 e inicializar o app através do Ionic, usando o comando Ionic serve.

AWS Cloud-ийн алдааг олж засварлах, MQTT-ийн үйлчлүүлэгчийг AWS-ээр хийх тестийг AWS дээр туршиж үзэх боломжтой..amazon.com/iotv2/hom…

Зөвлөмж болгож буй: