İçindekiler:
- Adım 1: Gerekli Malzemeler
- Adım 2: Sensörler, Atuadores E Conexões
- Adım 3: Aplicativo Para Controle Remoto
- Adım 4: Criando Uma "coisa" Na AWS IoT
- Adım 5: Programa Em Python
- Adım 6: Finalização
Video: Akıllı Bir Eve Başlamak - Projeto Final: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:19
Bir Akıllı Ev için IoT uygulaması için son projeyi sunmak
O projeto çoğu zaman bir bölüm sonu projeto son bir ser asunucu yok IoT uygulamaları bir Akıllı Ev, bütünleşik algılayıcılar ve atuadores conectados ve DrangonBoard + Linker Mezzanine, um aplikasyonları desenvolvido com o ionic (bir hizmet dahil) em bre AWS'de bulutta bilgi/das "coisas" serão salvados. DragonBoard ve Nesnelerin İnterneti ile ilgili tüm işlemler, otomatikleştirme, aydınlatma, aydınlatma, iletişim sensörleri için tüm aşamalar için geçerlidir. - Yakın çevredeki sensörler için herhangi bir bağlantı noktası kurulumu yok, aynı zamanda enformasyon dışında da özel mülkler için en uygun bağlantı noktası.
Adım 1: Gerekli Malzemeler
- DragonBoard'u yerleştirin.
- 96Boards Linker Mezzanine
- Sensör de luminozidade (LDR) ve bir Linker Mezzanine ile birlikte.
- Bir Linker Mezzanine ile birlikte sıcaklık sensörü.
- Botão touch que acompanha a Linker Mezzanine.
- Relé acompanha a Linker Mezzanine, A/C sistemi için utlizado para ligar.
- LED ile birlikte bir Bağlantı Ara Kat, aydınlatma ve aydınlatma için.
- Instalação das bibliotecas citadas no passo 5.
Adım 2: Sensörler, Atuadores E Conexões
1. Bağlayıcı Ara Kat:
Será necessário conectar bir placa Asma kat ve dragonboard. Ayrıntılar için, danışman bağlantısı
2. Sensör aydınlatması (LDR)
O sensör ve kısmi bağlantı Kiti ve Bağlantı Aralığı ve ADC1 girişi. Teknik bilgilerle ilgili ayrıntılar:
3. Sıcaklık Sensörü
O sensör ve kısmi bağlantı Kiti ve Bağlayıcı Ara Kat ve ADC2 girişli bağlantı. Teknik bilgiler:
4. Botão Dokunuşu
O sensor é parte do Kit ve Linker Mezzanine ve devera seri bağlantı D1. Este botão irá lig/desligar o sistema como um todo. O acesso a este botão é bazı yerel. Ayrıntılar için teknik bilgiler:https://linksprite.com/wiki/index.php5?title=Touch_…
5. Rele
D2'ye bağlı olarak Bağlayıcı Ara Kat ve Deverá'ya bağlı olarak. A/C. Para detalhes técnicos sistemi/desligar o sistema utiizado para birimi:
6. LED
O LED é parte do kit ve Linker Mezzanine ve D4 girişli bağlantı serileri. O LED temsili sistemi, aydınlatma sistemi de uma casa, seja algum cômodo interno da casa ou externo, como a iluminação de um jardim. 10k ohm'luk bir dizi direnç için foi ek rezistör, mevcut parasal olarak azalan bir doğrultu kullanımı, pelo sistema, já que em experiências önceki ve doğrulanmış conflitos com gibi portas analógicas com. Teknik ayrıntılar için:
7. Manyetik sensör
En iyi sensörler için bir parça satın alın ve bir parça Linker Mezzanine yapın. Amerika Birleşik Devletleri'nde, garajda herhangi bir yere gitmeden önce, bir janela/garagem'i ziyaret edin. O sensör, 2 pequenas peças (ver foto do Step acima), o sensör proprimamente dito um pequeno "imã", que ao aproximar-se sensör irá alterar o estado do sensörü. O sensör kullanımı, projeto foi um N/A (normalmente aberto). Sensörü araştırmak için araştırma yapmak, sensör raporlarını denetlemek. Quando o imã estiver próximo do sensor, o estado raporu será fechado.
Adım 3: Aplicativo Para Controle Remoto
O aplicativo foi desenvolvido com o Ionic Framework, https://ionicframework.com/. En son sürümü yüklemek için gerekli güncellemeleri indirin.
AWS'de (AWS IoT- https://aws.amazon.com/iot/) bir bulut ile iletişim kurun.
- Sistema de Iluminação Mostra o estado do sitelerima de iluminação, ligado ou desligado. Otomatik güncellemeler olarak, yeni bir ışıklandırma işlevi görüyor. Quando a intensidade de luz aumentar além do valor definido, luzes se apagarão olarak.
- Klima sistemi veya klima sistemi. Também é olasılık tanımı veya yiğitlik desejado da sıcaklık. Sıcaklığı en aza indirgemek için şu ana kadar bekleyin: Klima, klima, klima, klima, hava sıcaklığı, sıcaklık kontrolü. Örnek olarak, sıcaklığın 23'e ulaştığını düşünün. 24 graus'luk bir sıcaklık iç kabini, o Klima ligado ve permanecerá ligado até bir temperatura chegar bir 20 graus, en son. Depois veya ciclo se tekrar.
- Garagem enformasyon, gerçek bir garajda, se aberta ou fechada.
- Temperatura é apenas informativa ve çoğu zaman bir iç mekan sıcaklığı.
- Luminosidade é apesas informativa ve en fazla yiğitlik ve luminosidade gerçek.
Ana sayfa.html ve ana sayfa.ts uygulamaları için bir bulut AWS ve uygulama ile iletişim kurun.
Adım 4: Criando Uma "coisa" Na AWS IoT
Para fazer o kurulum yapmak IoT ve AWS, os seguintes passos deverão ser seguidos:
1) Criar um projeto no AWS IoT atravé do bağlantısı:
2) Clique "bir şey yarat" ve "tek bir şey yarat". Sıradaki.
3) Na tela seguinte, clique em "Sertifika olmadan bir şey yaratın". Nesse öğreticisi mevcut değil, uygulamalar ve uygulamalar için sertifikalar ve uygulamalar için tavsiyeler.
4) Nesse anı, sua "coisa" já estará criada. Clique no botão da "coisa" que foi criado para abrir bir tela com olarak opções. Nessa tela podemos ver os picosMQTT que podem ser usados para fazer bir atualização dos dados bir serem enviados para a Sorun giderme için sorun giderme. Python'dan hiçbir kod yazmaz. AWS Cloud'da bir "gölge" için en iyi uygulamalar, en güncel bilgiler.
Adım 5: Programa Em Python
Seguintes bibliotecas serão necessárias para a execução do programa olarak:
içe aktarma spidevimport zamanı içe aktarma günlüğü içe aktarma json içe aktarma argparse
libsoc ithalat gpio'dan
zamandan itibaren uykuyu datetime'dan içe aktarma tarihinden, gpio_96boards'tan datetime'ı AWSIoTPythonSDK'dan içe aktarın. MQTTLib AWSIoTMQTTClient'i AWSIoTPythonSDK. MQTTLib'den içe aktarın
Programlamayı tamamlayın:
içe aktarma spidevimport zamanı içe aktarma günlüğü içe aktarma json içe aktarma argparse
libsoc import gpio'dan
zamandan itibaren uykuyu datetime'dan içe aktarma tarihinden, tarihsaati gpio_96boards'tan içe aktarma GPIO'yu AWSIoTPythonSDK'dan içe aktarma. MQTTLib AWSIoTMQTTClient'i AWSIoTPythonSDK'dan içe aktarma. MQTTLib'den içe aktarma AWSIoTMQTTShadowClient
GPIO_CS = GPIO.gpio_id('GPIO_CS') #Analog Bağlantı Noktası
DÜĞME = GPIO.gpio_id('GPIO_A') RELE = GPIO.gpio_id('GPIO_C') LED = GPIO.gpio_id('GPIO_G')
pinler = ((GPIO_CS, 'çıkış'), (BUTTON, 'in'), (RELE, 'out'), (LED, 'out'),)
def setdevices(deltaMessagePython):
System_Status = deltaMessagePython['SystemStatus'] Rele_Status = deltaMessagePython['AC'] Led_Status = deltaMessagePython['SisIlumi']
##### AC
ise Rele_Status == 1: gpio.digital_write(RELE, GPIO. HIGH)
eğer Rele_Status == 0:
gpio.digital_write(RELE, GPIO. LOW)
##### Sistema de Iluminacao
Led_Status == 1: ise gpio.digital_write(LED, GPIO. HIGH) Led_Status == 0 ise: 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 - Sıcaklık 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 - Parlaklık 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') sıcaklık = "{:.2f}".format(adc_temp) payload_temp = '{"durum":{"arzu edilen": {"Luminosidade": ' + adcoutldr + ', "Temperatura": ' + sıcaklık + '}}}' 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 çalıştır(gpio):
sistem_durumu = 1
Doğru iken:
time.sleep(2) button_value = gpio.digital_read(BUTTON) print ("----") time.sleep(0.25) ise button_value == 1: if system_status == 0: system_status = 1 else: system_status = 0 desliga () eğer system_status == 1: değer = readadc(gpio) "SYSTEM_STATUS %d" yazdırın %system_status time.sleep(3)
sınıf shadowCallbackContainer:
def _init_(self, deviceShadowInstance): self.deviceShadowInstance = deviceShadowInstance
# Özel Gölge geri arama
def customShadowCallback_Delta(self, payload, responseStatus, token): print("Bir delta mesajı alındı:") ### payload güncelleme komut dosyası payloadDict = json.loads(payload) deltaMessage = json.dumps(payloadDict["durum"]) yazdır "DELTA MESAJI %s" %deltaMessage ### Bildirilen durumu güncelleme isteği newPayload = '{"state":{"reported":' + 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
####### Şey tanımı
# AWS IoT sertifikası tabanlı bağlantı
myMQTTClient = AWSIoTMQTTClient("DBpyAWS1116") myMQTTClient.configureEndpoint("a28rqf8gnpw7g.iot.us-west-2.amazonaws.com", 8883) myMQTTClient.configureCredentials("/home/linaro/root-CAAWSrt", "/home/linaro/shared/AWS/"SUA CHAVE"-private.pem.key", "/home/linaro/shared/AWS/"SEU CERTIFICADO"-certificate.pem.crt") myMQTTClient.configureOfflinePublishQueueing(- 1) # Sonsuz çevrimdışı Yayın kuyruğu myMQTTClient.configureDrainingFrequency(2) # Boşaltma: 2 Hz myMQTTClient.configureConnectDisconnectTimeout(10) # 10 sn myMQTTClient.configureMQTTOperationTimeout(5) # 5 sec #connect ve myMQTTClient.connect() myMQ(TT yayınlayın) coisajsb", "bağlı", 0)
########################
####### Gölge tanımı
# AWSIoTMQTTShadowClient'i başlat
myAWSIoTMQTTShadowClient = Yok myAWSIoTMQTTShadowClient = AWSIoTMQTTShadowClient("DBpyAWS1116") myAWSIoTMQTTShadowClient.configureEndpoint("SEU END-POINT.us-west-2.amazonaws.com", 8883) myAWSIoTMQTTShadowClient/redhome/root/ CA.crt", "/home/linaro/shared/AWS/"SUA CHAVE"-private.pem.key", "/home/linaro/shared/AWS/"SEU CERTIFICADO-certificate.pem.crt")
# AWSIoTMQTTShadowClient yapılandırmamyAWSIoTMQTTShadowClient.configureAutoReconnectBackoffTime(1, 32, 20) myAWSIoTMQTTShadowClient.configureConnectDisconnectTimeout(10) # 10 sn myAWSIoTMQTTShadowClient.configureMQTTOperationTimeout(5) # 5 sec
# AWS IoT'ye bağlanın
myAWSIoTMQTTShadowClient.connect()
# Kalıcı aboneliğe sahip bir deviceShadow oluşturun
deviceShadowHandler = myAWSIoTMQTTShadowClient.createShadowHandlerWithName("DBpyAWS1116", True) shadowCallbackContainer_Bot = shadowCallbackContainer(deviceShadowHandler)
# Deltaları dinle
deviceShadowHandler.shadowRegisterDeltaCallback(shadowCallbackContainer_Bot.customShadowCallback_Delta)
#########################
myMQTTClient.publish("$aws/things/DBpyAWS1116/shadow/update", '{"durum":{"istenen": {"SystemStatus":1, "SisIlumi":0, "AC":0, "Garagem": "Fechada", "Sıcaklık": 25, "Luminosidade": 123}}}', 0)
eğer _name_ == "_main_":
gpio olarak GPIO(pinler) ile: run(gpio)
Adım 6: Finalização
İyonik, İyonik hizmetlerden yararlanma, İyonik hizmetlerden yararlanma.
Olası sorun giderme, bir MQTT İstemcisinin AWS'yi test etmesi için bir işlev önermesi, AWS Cloud'u doğrulamak için onde é é-possive e as mensagens enviadas pela dragonboard está gönderilebilir: https://us-west-2.console.aws.amazon.com/iotv2/hom…
Önerilen:
Akıllı Masa LED Işık - Arduino ile Akıllı Aydınlatma - Neopiksel Çalışma Alanı: 10 Adım (Resimlerle)
Akıllı Masa LED Işık | Arduino ile Akıllı Aydınlatma | Neopixels Çalışma Alanı: Artık evde çok fazla zaman geçirdiğimiz, sanal olarak çalıştığımız ve çalıştığımız bir gün, öyleyse neden çalışma alanımızı özel ve akıllı bir aydınlatma sistemi Arduino ve Ws2812b LED'leri ile büyütmeyelim. Burada size Smart'ınızı nasıl oluşturacağınızı gösteriyorum. Masa LED Işık o
Kullanılmayan Akıllı Telefonu Akıllı Ekrana Dönüştürün: 6 Adım (Resimlerle)
Kullanılmayan bir Akıllı Telefonu Akıllı Ekrana Dönüştürün: Deze öğreticisi, Hollanda'da çok iyi. Kullanılmayan (eski) bir akıllı telefonunuz var mı? Bu kolay adım adım öğreticiyi izleyerek Google E-Tablolar ve biraz kağıt kalem kullanarak akıllı bir ekrana dönüştürün. Bitirdiğinizde
SONOFF Akıllı Anahtarlarla Akıllı Stor Perdeler Nasıl Kendin Yapılır?: 14 Adım
SONOFF Akıllı Anahtarlarla Akıllı Stor Perde Kendin Yap Nasıl Yapılır?: Sıradan stor perdelerinizi/panjurlarınızı akıllı hale getirmek için SONOFF akıllı anahtarlarında Kilitleme Modundan yararlanın Çoğunuz bunun sabahları storları/panjurları çekmenizin bir angarya olduğunu kabul edecek mi? ve akşam aşağı çekmek? Her neyse, ben
Bluetooth Akıllı Telefon Kontrollü Akıllı LED Lamba: 7 Adım
Bluetooth Akıllı Telefon Kontrollü Akıllı LED Lamba: Her zaman aydınlatma cihazlarımı kontrol etmeyi hayal ediyorum. Sonra biri inanılmaz renkli bir LED lamba yaptı. Geçenlerde Youtube'da Joseph Casha'nın bir LED Lambasına rastladım. Ondan ilham alarak, bağlantıyı korurken birkaç işlev eklemeye karar verdim
Elektronikle Başlamak İçin Basit Püf Noktaları: 6 Adım
Elektronikle Başlamak için Basit Püf Noktaları: Elektroniğe olan ilgi, pilli bir ledin parlatılmasıyla başlayabilir. Bu talimatta, kolayca bulunabilen parçalardan bazı harika elektronik test araçlarını ve bileşenlerini nasıl oluşturabileceğinizi açıklayacağım. Bu araçların f