Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

WARAN - Domotica

Componenten en benodigdheden

Raspberry Pi 2 Model B
× 1
Arduino UNO
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 2
Bodemhygrometer
× 1
Arduino Pro Mini 5V
× 2
9V-batterij (algemeen)
× 3
Waterpomp
Optioneel
× 1
nRF24l01+
× 3
nRF24l01+ Socket
Optioneel
× 1
NPN-transistor
Optioneel
× 1
3.3V Spanningsregelaar
× 2
10kΩ weerstand
× 2
10 µF condensator
× 4
47µF condensator
× 2
Perfboard
× 3

Benodigde gereedschappen en machines

Soldeermachine
Draadstripper
Draadtang
Jumperdraden

Apps en online services

Microsoft Windows 10 IoT Core
Microsoft Azure
PubNub Publish/Subscribe API

Over dit project

Ik was van plan om een ​​goedkoop domoticasysteem te bouwen. Ik wil dat dit een modulair systeem wordt, zodat ik er zonder veel veranderingen sensoren en apparaten aan kan blijven toevoegen. WARAN (W indows IoT, A zure, R aspberry Pi, A rduino, N RF24L01+) is een modulair domoticasysteem dat bestaat uit een enkele Hub en meerdere modules. De module zal een combinatie zijn van een microcontroller en sensoren die gegevens verzamelen van verschillende locaties in het huis en de gegevens via RF naar Hub verzenden. Alle communicatie tussen Hub en modules gebeurt via RF. Er komt ook een bijbehorende Windows Phone-app voor de Hub. Hier is een eenvoudig stroomdiagram waarin de installatie wordt uitgelegd.

Waarom Windows IoT?

Ik ben een softwareontwikkelaar die zich momenteel bezighoudt met IoT. Met mijn eerdere ervaring met XAML/C# en Visual Studio (die ik beschouw als de beste IDE ooit) was het erg nuttig voor mij om deze zeer snel te implementeren.

Waarom NRF24L01+?

Toen ik op zoek was naar draadloze opties, kwam NRF24L01+ naar voren als een goedkope en energiezuinige oplossing. Met een aantal echt krachtige bibliotheken beschikbaar, was dit voor mij de beste oplossing.

Waarom Windows Azure

Windows Azure zeer eenvoudig te leren en aan te passen. Omdat er weinig configuratie nodig is om de service op de markt te brengen, kunnen we ons meer richten op ontwikkeling dan op configuratie en implementatie. Mijn eerdere ervaring met Azure heeft me geholpen bij een snelle integratie.

De hub

De Hub is een centraal controlecentrum van WARAN. Het bestaat uit RPI2, Arduino Uno en nRF24L01+. De RPI2 draait op de Windows IoT-kern. Het draait een universele app die fungeert als het controlecentrum. De Hub zou worden aangesloten op een groot scherm (meestal een tv of monitor) waarmee we de gegevens van de modules kunnen zien en ook de modules kunnen bedienen. Een toetsenbord en muis aangesloten op de RPI2 helpen bij het toevoegen en verwijderen van modules uit het controlecentrum. Hier is het schakelschema ervan (raadpleeg het bestand WARAN.Hub.fzz. in het project)

Hoe werkt het?

Elke module heeft een uniek adres waarmee de hub ermee communiceert. We zullen een module aan het controlecentrum toevoegen met dit adres en een naam aan de module geven. Eenmaal toegevoegd, stuurt het controlecentrum (Universal App) gegevens naar Arduino Uno via I2C. Arduino Uno stuurt gegevens naar de module via nRF24L01+ en de module leest gegevens van de sensoren of start/stopt een apparaat op basis van de ontvangen gegevens en stuurt gegevens terug naar Arduino Uno. De Arduino Uno stuurt de gegevens via I2C naar het controlecentrum. Deze gegevens worden weergegeven op de tv/monitor en ook naar de cloud verzonden. De Arduino Uno zal gewoon fungeren als een interface voor RPI2 om de sensorgegevens van andere modules te krijgen. Het bovenstaande proces vindt plaats in drie scenario's

  1. Met bepaalde tussenpozen, afhankelijk van de module
  2. Wanneer de gebruiker communiceert met het controlecentrum (via muis/toetsenbord)
  3. Wanneer een trigger wordt verzonden vanuit de cloud (vis PubNub)

Hier is een typische stroom

En dit is hoe componenten in de hub en modules met elkaar samenwerken.

Het controlecentrum

Het controlecentrum is een universele app die draait in de RPI2. Het controlecentrum is de interface waarmee de gebruiker kan communiceren. Het communiceert met de modules en ook met de cloud. Het WARAN-controlecentrum gebruikt Azure Mobile Services en PubNub als cloud-back-end. Elke module-informatie die we toevoegen, wordt lokaal opgeslagen in sqlite db en ook verzonden naar azure mobiele service. Dit stuurt op zijn beurt een PubNub-bericht of pushmelding naar de mobiele app. Ik wil het coderingsgedeelte hier niet uitleggen en van dit artikel een puinhoop maken. De broncode, documentatie en implementatiedetails van het project zijn te vinden in https://bitbucket.org/arjunganesan/waran (ik ben bezig de documentatie volledig bij te werken, wat binnenkort zal gebeuren). Zo werkt het controlecentrum

De mobiele app

De mobiele app is een Windows Phone-app (die later voor andere platforms zal worden ontwikkeld) die zal fungeren als een bijbehorende app voor de hub. We kunnen overal ter wereld alle sensorgerelateerde gegevens op de mobiel zien. Als er belangrijke informatie van de module wordt ontvangen (zoals een waarschuwing voor een gaslek van een gaslekmonitormodule), krijgen we ook een pushmelding. We kunnen ook een actie op de module activeren (zoals het starten van een pomp op de Plant Waterer-module) vanaf de mobiel zelf. Aangezien dit allemaal via de cloud gebeurt, hoeft er geen mobiel apparaat in de buurt van de hub aanwezig te zijn om al deze acties uit te voeren.

Zo ziet de mobiele app eruit


Modules

De module is een combinatie van componenten die samenwerken en gegevens ontvangen en verzenden van en naar Hub via RF. Het kan een combinatie zijn zoals Arduino Pro Mini met sensoren of RPI2 met sensoren enz. Het enige wat het hoeft te doen is de gegevens/opdracht van de hub via RF ontvangen en op de juiste manier reageren. Dit geeft een oneindige mogelijkheid aan modules. Om te beginnen voeg ik 2 modules toe

  1. Plantenwaterbak
  2. Temperatuurmonitor

Plantenwaterbak

De plantenwaterer houdt het waterpeil in de planten in de gaten en ook de temperatuur in de omgeving rond de plant. Als er niet voldoende water is, wordt er een waarschuwing naar de mobiele app gestuurd. We kunnen de pomp overal starten vanuit de mobiele app. We kunnen het ook configureren om de pomp automatisch te starten wanneer het waterniveau onder de drempel komt. Het bestaat uit Arduino Pro Mini, DHT11, Bodemhygrometer en nRF24L01+. Hier is het schakelschema (zie PlantWaterer.fzz in het project)

De stroom van de 9V-batterij gaat naar de RAW-pin van de Arduino Pro Mini. De ingebouwde spanningsregelaar in arduino geeft 5V output in Vcc. We zullen dit gebruiken om DHT11 van stroom te voorzien. We geven ook de 9V-voeding als invoer voor de 3.3V-spanningsregelaar die we zullen gebruiken om de nRF24L01+ van stroom te voorzien. Het waterniveau van de hygrometer wordt afgelezen op analoge pin A3. De temperatuurmeting van de DHT11 wordt in digitale pin 6 uitgelezen. In digitale pin 5 sturen we een signaal naar een transistor of een relais waarmee we een pomp starten en stoppen. Voor demo-doeleinden zal ik een DC-pomp gebruiken en een transistor als schakelaar gebruiken. En hier is de stroom van hoe het werkt

Ik wilde niet dat het circuit in breadboard zou blijven, dus heb ik het overgezet naar een perfboard. Ik wil het compact houden, dus ik heb het op deze manier gemaakt. U kunt het schakelschema raadplegen en uw eigen lay-out bedenken.

En hieronder is een video over hoe het werkt.

Temperatuurmonitor

De temperatuurmonitor houdt de temperatuur in een kamer (bijvoorbeeld slaapkamer) in de gaten en houdt de temperatuur en vochtigheidsgraad bij. Ook kunnen we een apparaat (Thermostaat, AC etc.) aan/uit zetten of aanpassen vanaf de hub of mobiel. Omwille van de demo zal ik een LED die op de arduino is aangesloten, in-/uitschakelen. Het circuit bestaat uit Arduino Pro Mini, DHT11 en nRF24L01+. Hieronder staat het schakelschema (raadpleeg het bestand TemperatureMonitor.fzz in het project)

De stroom van de 9V-batterij gaat naar de RAW-pin van de Arduino Pro Mini. De ingebouwde spanningsregelaar in arduino geeft 5V output in Vcc. We zullen dit gebruiken om DHT11 van stroom te voorzien. We geven ook de 9V-voeding als invoer voor de 3.3V-spanningsregelaar die we zullen gebruiken om de nRF24L01+ van stroom te voorzien. De temperatuur- en vochtigheidswaarde van DHT11 wordt afgelezen in digitale pin 5. In pin 6 sturen we een signaal naar een transistor of een relais waarmee we een apparaat starten (bijv. Thermostaat, AC enz.). Voor demo-doeleinden zal ik een LED-lampje gebruiken om het in- en uitschakelen van het apparaat te laten zien. En hier is de stroom van hoe het werkt

Hier is hoe ik het in een perfboard heb gelegd. Op basis van het schakelschema kun je je eigen indeling bedenken.

En zo werkt het

Bekende problemen

  • Voeding - De batterij is in beide modules binnen enkele uren leeg. Noodzaak om een ​​efficiënte en draagbare stroombron te vinden. Ik ben van plan om attiny-processors te gebruiken in plaats van pro mini in welke modules dan ook. Het zou efficiënter zijn op het gebied van stroom. Mijn eerdere artikelen over attiny zijn hier te vinden.
  • I2C-gelijktijdigheid - Als RPI2 2-draads verzoek tegelijk naar Arduino uno stuurt, mislukt een van hen. Ik werk aan een manier om dit te voorkomen en probeer ook een mechanisme voor opnieuw proberen te implementeren.
  • Eenrichtingscommunicatie - Op dit moment initieert de Hub een verzoek en de module reageert erop. Hoewel dit in veel scenario's goed werkt, kan het voor sommige nieuwe modules nodig zijn om gegevens naar Hub te verzenden zonder dat de hub een verzoek verzendt.
  • Bereik - Ik heb de modules in de volgende kamer bewaard en gegevens correct ontvangen. Maar als je het bereik wilt vergroten, vervang dan de nRF24L01 in Hub door NRF24L01+PA+LNA die een externe antenne heeft.
  • Beveiliging - Aangezien dit is ontwikkeld in de veronderstelling dat het eigendom is van de ontwikkelaar, heb ik geen authenticatiemechanisme toegevoegd. Als je wilt, kun je de Identity-service van Azure Mobile-service gebruiken om Microsoft, FB, Twitter, Google-authenticatie te integreren met de mobiele app en de hub.

Toekomstplannen

Ik zou dit willen maken als een open platform voor mensen om hun eigen domoticasysteem te implementeren. Ik zal de Hub en de mobiele app stabiliseren. Ik zou graag nog veel meer modules aan dit project willen toevoegen. Op spraak gebaseerde commando's en reacties staan ​​ook op de routekaart. Op dit moment werk ik aan de onderstaande modules

  • Gasleksensor
  • Inbraakdetector
  • Apparaatcontrollers (bijv. Koffiezetapparaatcontroller, lichtcontrollers, enz.)
  • Garagedeuropener
  • Enkele draagbare modules
  • Internetdiensten zonder hardware (weer, Azure Logic-app, aandelenrapport enz.)
  • Modules die buiten het bereik van Hub werken en ermee communiceren via internet (bijv. Car tracker, Pet Tracker, Pedometer etc.)

Al deze modules gecombineerd en werkend als een enkele eenheid via Hub, zal me het domoticasysteem geven dat ik altijd al wilde hebben. Ik zal de nieuwe modules blijven toevoegen als afzonderlijke projecten in Hackster. Iedereen is welkom om nieuwe modules toe te voegen en uit te breiden. Zal de wiki-pagina bijwerken over hoe nieuwe modules aan het project kunnen worden toegevoegd.

Code

Bitbucket

Schema's

WARAN.Hub.fzz PlantWaterer.fzz TemperatureMonitor.fzz

Productieproces

  1. Toepassingen van domotica
  2. RASPBERRY PI HOME AUTOMATION
  3. Arduino digitale dobbelstenen
  4. Arduino-gamecontroller
  5. Fysieke domotica-interface
  6. Pixel Chaser-game
  7. Bewateringssysteem voor planten voor thuis
  8. Arduino afstotende elektromagnetische levitatie
  9. Arduino Home Controller geactiveerd door Alexa
  10. NeoMatrix Arduino Pong
  11. LED-roulettespel