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

WaterPi:Bewaterings- en bewakingssysteem op afstand voor kamerplanten

Componenten en benodigdheden

Raspberry Pi 1 Model B
× 1
Arduino UNO
× 1
DHT11 temperatuur- en vochtigheidssensor (4 pinnen)
× 1
YL-69 Bodemvochtsensor
× 1
Waterniveausensor
× 1
Standaard LCD 16x2
× 1
Waterpompmotor
× 1
5V-relais
× 1
4xAA-batterijhouder
× 1

Apps en online services

Amazon Web Services AWS IoT
Amazon Web Services AWS DynamoDB
Johnny-Five

Over dit project

Inleiding

Het systeem is een geschikte oplossing voor mensen die van planten houden en deze in huis willen verzorgen, maar die het erg druk hebben met hun dagelijkse werkzaamheden. Het kweken van planten vereist tijd en inspanning om succesvol te zijn, omdat er een aantal regelmatige dingen zijn die u moet doen, zoals elke dag water geven. Mensen vergeten wel eens om voor hun planten te zorgen. Sommige mensen reizen ook veel en brengen minder tijd door in hun huis. In deze context vragen ze over het algemeen om hulp bij het verzorgen van hun kamerplanten, anders geven ze het gewoon op om ze te hebben. WaterPican helpt die mensen om regelmatig dingen voor planten te doen. Omdat het op afstand kan worden bestuurd, kunnen planteigenaren het watergeefproces ook gemakkelijk verstoren wanneer dat nodig is.


Het systeem bewaakt de temperatuur en vochtigheid van de plaats en het bodemvocht van de grond, geeft de plant op afstand water en slaat vervolgens alle gegevens op in DynamoDB via AWS IoT. De verzamelde gegevens worden gevisualiseerd door verschillende grafieken en figuren om een ​​beter inzicht te krijgen in de omstandigheden waarin de plant gedijt.


Raspberry Pi voert een nodejs-toepassing uit om alle sensoren en waterpomp te besturen. Voor dat doel gebruikte ik liever de Johnny-Five-bibliotheek. Om met AWS te communiceren, gebruikte ik AWS IoT SDK voor javascript.


Stap 1:DynamoDB instellen

DynamoDB wordt gebruikt om door sensoren verzamelde gegevens op te slaan. Ga naar de DynamoDB-pagina en maak een nieuwe tabel met de volgende kenmerken:

  • Tabelnaam:waterpi_sensor_data
  • Partitiesleutel: sleutel
  • Klik op Sorteersleutel toevoegen en tijdstempel toevoegen

Belangrijk is dat de sleutel en het type tijdstempel String moeten zijn.

Stap 2:AWS IoT instellen

Ga naar de AWS IoT Console-pagina en doe het volgende:

Maak een ding met de naam raspi-water-pump

Maak een nieuw beleid. Beleidsnaam pompbeleid, Actie iot:*, bron * , selecteer Toestaan, klik vervolgens op Verklaring toevoegen en Maken.

Maak een certificaat met 1-Click certificate create . Download vervolgens de openbare sleutel, de persoonlijke sleutel en het certificaat.

Selecteer vervolgens het certificaat dat u hebt gemaakt en doe het volgende:

  • klik op Acties > Activeren knop het certificaat
  • klik op Acties> Een beleid bijvoegen , typ de beleidsnaam die u heeft gemaakt en klik op Bijvoegen
  • klik op Acties> Iets toevoegen , typ raspi-water-pump en klik op Bijvoegen

Maak een regel met het volgende:

  • name saveToDynamoDB
  • Kenmerk *
  • Onderwerpfilter sensor/gegevens
  • Kies een actie Voeg bericht in een databasetabel in
  • Tabelnaam waterpi_sensor_data
  • Hash-sleutelwaarde ${topic()}
  • Waarde bereiksleutel ${timestamp()}
  • Rolnaam> Klik op een nieuwe rol maken  en klik op Toestaan  knop op de openingspagina en selecteer deze vervolgens in de vervolgkeuzelijst Rolnaam

Stap 3:Arduino voorbereiden

Waterniveau- en bodemvochtsensoruitgangen zijn analoge uitgangen. Dus in plaats van ze rechtstreeks naar de Raspberry Pi te bedraden, gebruik ik liever Arduino om die analoge waarden te nemen en vervolgens via Arduino naar Pi te sturen als een digitale waarde. Arduino-codes worden bijgewerkt door pi, dus het enige dat we in deze stap moeten doen, is Arduino op onze computer aansluiten en standaard firmata ernaar uploaden.

Als je geen Arduino IDE hebt, volg dan de stappen hier om het te installeren.

  • Open  Arduino IDE
  • Open Bestand> Voorbeelden> Firmata> StandardFirmata voorbeeld
  • Uploaden schets naar Arduino




Bedrading Bodemvocht naar Arduino-schema zou als volgt moeten zijn;

  • VCC (voeding) -> PIN 7
  • GND (aarde) -> GND
  • AO (analoge uitgang) -> A1

De bedrading van de waterniveausensor naar het Arduino-schema zou als volgt moeten zijn;

  • (+) -> PIN 4
  • (-)  -> GND
  • S   -> A0

Daarna moet je je arduino verbinden met raspberry pi via een usb-kabel. Vergeet ook niet je bodemvochtsensor in de bloempot te plaatsen en je waterniveausensor in je watertank.

Stap 4:Raspberry Pi voorbereiden

Draad lcd-scherm, dht11, waterpomp via relais met raspberry pi.

Bedrading DHT11 naar Pi

  • S   -> GPIO4 (pin 7)
  • (+) -> 3V3 (pin 1)
  • (-)  -> GND (pin 25)

Bedrading LCD-scherm

  • VCC -> 5V (pin 2)
  • GND -> GND (pin 6)
  • SDA -> GPIO2 (pin 3)
  • SCL -> GPIO3 (pin 5)

Bedradingsrelais voor waterpomp

  • S   -> GPIO18 (pin 12)
  • (+) -> 5V (pin 4)
  • (-)  -> GND (pin 20)


Bedrading waterpomp met relais en accupack

  • Waterpomp heeft twee kabels. De ene moet worden aangesloten op het relais, de andere moet worden bedraad met een accukabel.
  • Er moet een andere accukabel op het relais worden aangesloten. Bekijk het bovenstaande diagram om te zien hoe u ze kunt aansluiten.

Stap 5:Nodejs-app uitvoeren op Pi

In dit deel gaan we de nodejs-toepassing op pi uitvoeren om sensorgegevens te verzamelen en de waterpomp te besturen. Raspberry pi moet verbonden zijn met internet. Je zou het kunnen doen via ethernet of wifi.

Node moet op pi worden geïnstalleerd voordat je verder gaat. Als je nodejs nog niet eerder hebt geïnstalleerd, volg dan de tutorial hier om het te installeren.

Sluit je Raspberry Pi aan en voer het volgende uit:

git clone [email protected]:demirhanaydin/waterpi-node.gitcd waterpi-nodenpm install 

Plaats uw openbare sleutel, privésleutel en certificaatbestanden die u heeft gedownload van de aws iot-pagina onder certificaten map. U moet ook het root-CA-certificaatbestand downloaden van het rootcertificaat. Sla dat bestand op als rootCA.pem en plaats het onder certs map.

Open vervolgens device.js bestand met uw favoriete teksteditor en update deze regels met uw bestandspaden. U zou uw IOT_DEVICE_URL . moeten krijgen van het AWS IoT-platform door op je ding te klikken. Het zou moeten zijn als https://XXXXXXXXX.iot.us-east-1.amazonaws.com

Ren dan

sudo node index.js 

Als alles correct is, zou u de sensorwaarden op het lcd-scherm moeten kunnen zien.

U zou ook de waarden in uw DynamoDB-tabel moeten zien. De applicatie stuurt elke 20 seconden sensorgegevens naar het IoT-platform

Stap 6:Webapplicatie draaien

De basistoepassing van sinatra visualiseert de gegevens die op de dynamodb-tabel staan ​​met behulp van highcharts. Ook kan het de waterpomp op afstand bedienen. Wat het doet, is dat wanneer de gebruiker op een start/stop-knop klikt, het een evenement publiceert op het AWS IoT-platform. Raspberry Pi neemt deze gebeurtenis en verwerkt deze of de pomp moet worden gestart of gestopt.

Ruby moet op uw computer zijn geïnstalleerd om door te gaan met de tutorial. Als dit niet het geval is, ga dan naar deze pagina om het te installeren.

Open uw Terminal en voer de volgende opdrachten uit

git kloon [email protected]:demirhanaydin/waterpi-web.gitcd waterpi-webbundle installatie 

Plaats uw openbare sleutel, privésleutel, certificaat en rootCA-bestanden onder certs map. Open vervolgens boot.rb en update deze regels met de juiste waarden. U moet uw aws-toegangssleutel en geheim van de pagina Beveiligingsreferenties op de AWS Management Console nemen.

Als u klaar bent, moet u het project uitvoeren zoals

ruby app.rb 

Open uw browser en typ http://localhost:4567/ Je zou de verzamelde sensorgegevens van dynamodb in de grafieken moeten kunnen zien.

Wanneer u op start klikt, begint de pomp met het bewateren van de plant.

Hier zijn enkele foto's die ik heb gemaakt toen ik het project aan het ontwikkelen was

Gefeliciteerd!

Code

Raspberry Pi Nodejs-broncode
kloon de broncode naar raspberry pi en voeg uw aws iot-certificaatbestanden toe in de map certs. je moet ook device.js updaten met je aws iot thing urlhttps://github.com/demirhanaydin/waterpi-node
WaterPi-webclient
vergeet niet om boot.rb bij te werken met uw inloggegevenshttps://github.com/demirhanaydin/waterpi-web

Schema's

pi-wout-camera.fzz arduino.fzz

Productieproces

  1. ADLINK's MCM-oplossing maakt monitoring en beheer op afstand mogelijk
  2. Raspberry Pi-gestuurde aquaponics
  3. Kamertemperaturen bewaken met Moteino's en Raspberry Pi
  4. Bewaking op afstand van het weer met Raspberry Pi
  5. Raspberry Pi temperatuur- en lichtsensor
  6. Raspberry Pi-sensor en actuatorbediening
  7. Raspberry Pi-huisbeveiligingssysteem met camera en PIR-sensor
  8. GE neemt SmartSignal voor bewaking en diagnose op afstand over
  9. Cisco introduceert IoT Remote Monitoring-oplossingen voor IT en OT
  10. Op IoT gebaseerd extern olie- en dieseltankbewakingssysteem
  11. Cloud monitoring, een afstandsbedieningssysteem