Taula de continguts:

Sistema de jardí sense fils: 7 passos
Sistema de jardí sense fils: 7 passos

Vídeo: Sistema de jardí sense fils: 7 passos

Vídeo: Sistema de jardí sense fils: 7 passos
Vídeo: The Expert (Short Comedy Sketch) 2024, De novembre
Anonim
Sistema de jardí sense fils
Sistema de jardí sense fils

Aquest projecte es basa en Arduino i utilitza "mòduls" per ajudar-vos a regar les plantes i a iniciar la temperatura, el sòl i la pluja.

El sistema és sense fils fins a 2, 4 GHz i utilitza mòduls NRF24L01 per enviar i rebre dades. Deixeu-me explicar una mica el seu funcionament, PS! Perdoneu si l'anglès no és 100% correcte, sóc de Suècia.

Faig servir aquest sistema per controlar les meves plantes, tinc diferents plantes que necessitava per registrar-les diferents. Així que construeixo un sistema de registre basat en zones.

Els sensors del sòl que llegeixen la temperatura i la humitat del sòl (funcionen amb bateria) comproven cada hora i transmeten les dades a la màquina base que té connexió wifi. Les dades es carreguen a un servidor de casa meva i inicien sessió en una pàgina web.

Si el sòl necessita aigua, activarà la bomba correcta en funció del sensor de sòls que hagi comprovat. Però si plou no regarà. I si fa molta calor, regarà una mica més.

Suposem que teniu una terra de patata, una per al tabac i una per al tomàquet, i després podeu tenir 3 zones amb 3 sensors diferents i 3 bombes.

També hi ha sensors pir que comproven si hi ha moviments i, si s’activen a la pàgina web, una forta sirena començarà a espantar l’animal o la persona que camina a prop de les meves plantes.

Espero que ho entengueu una mica. Ara comencem a fer sensors som.

La meva pàgina de GitHub on ho descarregueu tot:

Pas 1: Sensors del sòl

Sensors del sòl
Sensors del sòl
Sensors del sòl
Sensors del sòl
Sensors del sòl
Sensors del sòl
Sensors del sòl
Sensors del sòl

Cada sensor té un número únic que s’afegeix a la pàgina web. Així, quan el sensor de sòl transmeti les dades d’aquest sensor de sòl s’afegiran a la zona correcta. Si el sensor no està registrat, no s’enviaran dades.

Per a aquesta compilació cal:

  • 1 xip Atmega328P-PU
  • 1 mòdul nRF24L01
  • 1x condensador de 100 uf
  • 1x transistor NPN BC547
  • Condensadors de 2x 22 pF
  • 1x 16.000 MHz de cristall
  • 1x sensor de humitat del sòl
  • 1x sensor de temperatura DS18B20
  • 1x led RGB (jo utilitzo ànode comú)
  • Resistències de 3x 270 ohm
  • 1x 4, 7 K ohm resistència
  • Bateria (faig servir bateria Li-Po de 3,7 V)
  • I si s’utilitza li-po, un mòdul de carregador per a bateria.

Per mantenir els sensors en funcionament molt de temps, no utilitzeu cap placa Arduino ja feta, ja que buidarà la bateria ràpidament. En lloc d’això, utilitzeu el xip Atmega328P.

Connecteu-ho tot tal com es mostra a la meva planxa elèctrica. (Consulteu la imatge o el fitxer PDF) Es recomana afegir un interruptor d’alimentació perquè pugueu tallar l’energia en carregar.

Quan pengeu el codi, no us oblideu de definir el sensor per donar-los un número d’identificació únic; el codi està disponible a la meva pàgina de GitHub.

Per mantenir vius els sensors del sòl durant molt de temps, faig servir un transistor NPN per encendre’ls, només quan comença la lectura. Per tant, no s’activen tot el temps. Cada sensor té un número d’ID de 45XX a 5000 (es pot canviar), de manera que cada sensor ha de tenir números únics, tot el que heu de fer és definir-los al codi.

Els sensors s’endormiran per estalviar bateria.

Pas 2: sensor animal

Sensor d’animals
Sensor d’animals
Sensor d’animals
Sensor d’animals
Sensor d’animals
Sensor d’animals
Sensor d’animals
Sensor d’animals

El sensor animal és un senzill sensor pir. Intueix la calor dels animals o dels humans. Si el sensor detecta moviment. Els enviaran a l’estació base.

Però no apareixerà cap alarma, per fer-ho, a la pàgina l’haureu d’activar o, si teniu configurat un temporitzador, s’activarà automàticament aquella vegada.

Si la base rep el senyal de moviment del sensor Animal, el transmetrà al sensor Siren i (espero) espantarà l'animal. La meva sirena és a 119 db.

El sensor pir funciona amb bateria i l’he col·locat en una funda antiga del sensor pir a partir d’una alarma antiga. El cable que surt del sensor animal només serveix per carregar la bateria.

Per a aquest sensor necessiteu:

  • Xip ATMEGA328P-PU
  • 1 x 16 000 MHz Cristall
  • Condensador de 2 x 22 pF
  • 1 mòdul de sensor Pir
  • Condensador 1 x 100 uF
  • 1 x mòdul NRF24L01
  • 1 x Led (aquí no faig servir cap led RGB)
  • 1 x 220 ohm resistència
  • Si necessiteu una bateria, necessiteu això (faig servir Li-Po)
  • Un mòdul de carregador de bateria si teniu una bateria recarregada.
  • Algun tipus d’interruptor d’alimentació.

Connecteu-ho tot tal com veieu al full elèctric. Comproveu que pugueu alimentar el sensor pir des de la bateria (alguns necessiten 5v per funcionar).

Obteniu el codi del meu GitHub i definiu el sensor de bruixa que utilitzarà (per exemple: SENS1, SENS2, etc.) perquè obtinguin números únics.

El xip ATMEGA només es despertarà quan es registri el moviment. Els pecats que el mòdul del sensor pir ha incorporat en el temporitzador per retard no hi ha res per això en el codi, així que ajusteu la pota del sensor pir per al retard que estarà despert.

Això és pel sensor animal, seguim endavant.

Pas 3: controlador de la bomba d'aigua

Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua
Controlador de bomba d'aigua

El controlador de la bomba d’aigua ha d’engegar una bomba o vàlvula d’aigua per regar els vostres camps. Per a aquest sistema no necessiteu bateria, necessiteu energia per fer funcionar la vostra bomba. Utilitzo un mòdul AC 230 a 5 V per fer funcionar un Arduino Nano. També tinc tipus de bomba, una que utilitza una vàlvula d'aigua que funciona amb 12 V, de manera que tinc un mòdul de CA 230 a CC 12 V a la placa de relés.

L'altre és 230 CA d'entrada al relé per poder alimentar una bomba de 230 V CA.

El sistema és bastant senzill, cada controlador de la bomba té números d’identificació únics, per tant, diguem que el camp de la patata està sec i que el sensor està configurat com a aigua automàtica. diu al sistema base que ha de començar el reg, de manera que el sistema base envia un senyal a aquesta bomba perquè s’activi.

Podeu definir quant de temps s’ha d’executar a la pàgina web (per exemple, 5 minuts) si els sensors només comproven cada hora. També quan la bomba s'aturarà, emmagatzemarà l'hora al sistema, de manera que el sistema automàtic no arrencarà la bomba aviat. (També es pot configurar a la pàgina web).

També podeu desactivar el reg a la pàgina web durant la nit / dia establint horaris especials. I també configureu temporitzadors per a cada bomba per començar a regar. I si plou no regaran.

Espero que ho entenguis:)

Per a aquest projecte necessiteu:

  • 1 x Arduino Nano
  • 1 x mòdul NRF24L01
  • Condensador 1 x 100 uF
  • 1 LED RGB (jo utilitzo ànode comú)
  • Resistències de 3 x 270 ohm
  • 1 x placa de relés

Connecteu-ho tot com a full elèctric (vegeu el fitxer pdf o la imatge) Baixeu-vos el codi de GitHub i no us oblideu de definir el número del sensor.

I ara teniu un controlador de bomba, el sistema pot gestionar més d’un.

Pas 4: sensor de pluja

Sensor de pluja
Sensor de pluja
Sensor de pluja
Sensor de pluja
Sensor de pluja
Sensor de pluja
Sensor de pluja
Sensor de pluja

El sensor de pluja s’utilitza per detectar la pluja. No en necessiteu més d’un. Però és possible afegir-ne més. Aquest sensor de pluja funciona amb bateria i comprova si hi ha pluja cada 30 minuts. També tenen un número únic per identificar-los ells mateixos.

El sensor de pluja utilitza pins analògics i digitals. El pin digital consisteix a comprovar si plou (la pantalla digital només mostra sí o no) i heu d’establir l’olla al mòdul del sensor de pluja quan estigui bé per advertir de "ploure" (el nivell d’aigua del sensor que indica que plou.)

El pin analògic s’utilitza per informar en percentatge de la humitat del sensor.

Si el pin digital detecta que plou, el sensor l’enviarà al sistema base. I el sistema base no regarà les plantes mentre “plogui”. El sensor també envia la humitat i l’estat de la bateria.

Només alimentem el sensor de pluja quan és hora de llegir a través del transistor que permet un pin digital.

Per a aquest sensor necessiteu:

  • Xip ATMEGA328P-PU
  • 1x Cristall de 16 000 MHz
  • Condensador de 2x 22 pF
  • 1x mòdul de sensor de pluja
  • 1x condensador de 100 uF
  • 1 mòdul NRF24L01
  • 1x led RGB (he utilitzat ànode comú, és VCC en lloc de GND)
  • Resistències de 3x 270 Ohm
  • 1x transistor NPN BC547
  • 1 bateria (faig servir Li-Po)
  • 1 mòdul de carregador Li-Po (si s’utilitza bateria Li-Po)

Connecteu-ho tot com veieu al full elèctric (en pdf o a la imatge) Després pengeu el codi al xip ATMEGA tal com podeu trobar a la meva pàgina de GitHub a sota de Sensor de pluja. No oblideu definir el sensor per obtenir el número d’identificació correcte.

I ara tindreu un sensor de pluja que funciona cada 30 minuts. Podeu canviar l’hora si no voleu que sigui menys o més.

A la funció counterHandler () podeu configurar el temps d’activació del xip. Calculeu així: els xips es desperten cada 8 segons i cada vegada que augmenten un valor. Així, durant 30 minuts, obtindreu 225 vegades abans que faci accions.. Per tant, hi ha 1800 segons en mitja hora. Per tant, dividiu-lo per 8 (1800/8) i obtindreu 225. Això vol dir que no comprovarà el sensor fins que funcioni 225 vegades i que durarà uns 30 minuts. També feu el mateix amb el sensor de sòl.

Pas 5: Animal Siren

Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren
Animal Siren

La sirena animal és senzilla quan el sensor animal detecta el moviment, la sirena s’activarà. Faig servir una sirena real perquè fins i tot pugui espantar la gent amb ella. Però també podeu utilitzar sirenes que només escolten els animals.

Utilitzo un Arduino nano en aquest projecte i l’alimento amb 12v. La sirena també és de 12 v, així que en lloc d’un relé faré servir un transistor 2N2222A per habilitar la sirena. Si utilitzeu un relé quan teniu la mateixa terra, podeu danyar el vostre Arduino. Per això, per això faig servir un transistor per habilitar la sirena.

Però si la sirena i l’Arduino no fan servir la mateixa terra, podeu utilitzar un relé. Omet el transistor i la resistència 2.2K i utilitza una placa de relé. I també canvieu el codi Arduino quan s’activa el canvi d’ALTA a BAIX i quan s’inactiva el canvi de BAIX a ALT och lectura digital per al pin 10, el relé utilitza BAIX per activar-lo i el transistor utilitza ALTA, de manera que cal canviar-ho.

Per a aquesta compilació cal:

  • 1x Arduino nano
  • 1x resistència de 2,2 K (ometeu si utilitzeu una placa de relé)
  • Transistor 1x 2N2222
  • 1x Sirena
  • Resistència de 3x 270 Ohm
  • 1x led RGB (faig servir ànode comú, VCC en lloc de GND)
  • Mòdul 1X NRF24L01
  • 1x condensador de 100 uF

Connecteu-ho tot com veieu a la planxa elèctrica en PDF o a la imatge. Pengeu el codi a l’Arduino que trobareu a la meva pàgina de GitHub a Animal Siren. No us oblideu de definir el sensor per obtenir el número d’identificació correcte.

I ara tens una sirena que funciona.

Pas 6: sistema principal

Sistema principal
Sistema principal
Sistema principal
Sistema principal
Sistema principal
Sistema principal

El sistema principal és el més important de tots els mòduls. Sense ell no es pot utilitzar aquest sistema. El sistema principal està connectat a Internet amb el mòdul ESP-01 i estem utilitzant pins Arduino Megas Serial1 per connectar-lo. El RX de Mega a TX a ESP, però hem de passar per dues resistències per baixar el voltatge a 3.3. I el TX a Mega a RX a ESP.

Configureu el mòdul ESP

Per utilitzar l’ESP, primer heu d’establir la velocitat de transmissió en 9600, és el que he utilitzat en aquest projecte i he trobat que l’ESP funciona millor així. Fora de la caixa es va establir a una velocitat de 115200 baud, podeu provar-ho, però el meu no era tan estable. Per fer-ho, necessiteu un Arduino (el Mega funciona bé) i heu de connectar el TX de l’ESP (a través de les resistències com veieu al full) al Serial TX (no Serial1 si utilitzeu Mega) i RX a ESP a Arduino Serial RX.

Pengeu un esbós parpellejant (o qualsevol esbós que no utilitzi sèrie) i obriu el monitor sèrie i configureu la velocitat de transmissió en 115200 i NR i CR a les línies

A la línia d'ordres escriviu AT i premeu Retorn. Hauríeu de rebre una resposta que digui D'acord, de manera que ara sabem que l'ESP funciona. (Si no, hi ha un problema de connexió o un mòdul ESP-01 defectuós)

Ara a la línia d’ordres escriviu AT + UART_DEF = 9600, 8, 1, 0, 0 i premeu Retorn.

Respondrà amb un OK i això vol dir que hem establert la velocitat de transmissió en 9600. Reinicieu l'ESP amb l'ordre següent: AT + RST i premeu Intro. Canvieu la velocitat en bauds del monitor sèrie a 9600 i introduïu AT i premeu Intro. Si torna a estar bé, l’ESP està configurat per a 9600 i el podeu utilitzar per al projecte.

El mòdul de la targeta SD

Vull que sigui fàcil canviar la configuració de WIFI del sistema, si es canvia una contrasenya nova o el nom del wifi. Per això, necessitem el mòdul de la targeta SD. Dins de la targeta SD, creeu un fitxer de text amb el nom config.txt i estem utilitzant JSON per llegir, de manera que necessitem un format JSON. Per tant, el fitxer de text hauria de tenir el text següent:

}

Canvieu el text amb les lletres BIG per corregir-lo per a la vostra xarxa wifi.

Els pecats que estem fent servir NRF24L01 que utilitza SPI i el lector de targetes SD també utilitza SPI. Hem d’utilitzar la biblioteca SDFat perquè puguem utilitzar SoftwareSPI (podem afegir el lector de targetes SD a qualsevol pin)

Sensor DHT

Aquest sistema es col·loca a l’exterior i té un sensor DHT perquè puguem comprovar la humitat i la temperatura de l’aire. S’utilitza per regar més els dies de calor.

Per a aquesta compilació cal:

  • 1x Arduino Mega
  • 1 mòdul NRF24L01
  • 1x mòdul ESP-01
  • 1 mòdul de targeta Micro SD SPI
  • 1 sensor DHT-22
  • 1x led RGB (he utilitzat ànode comú, VCC en lloc de GND)
  • Resistències de 3x 270 Ohm
  • 1x resistència de 22 K Ohm
  • Resistència de 2x 10 K Ohm

Tingueu en compte que si no teniu el mòdul ESP-01 estable, proveu d’alimentar-lo des d’una font d’alimentació externa de 3,3 V.

Connecteu-ho tot tal com veieu al full elèctric del fitxer PDF o de la imatge.

Pengeu el codi al vostre Arduino Mega i no us oblideu de comprovar si hi ha cap comentari, ja que heu d’establir l’amfitrió al servidor en diversos llocs (no és la millor solució que conec).

Ara el vostre sistema base està a punt per utilitzar-se. No cal que canvieu les variables del codi per als pecats d'humitat del sòl, podeu fer-ho des de la pàgina web.

Pas 7: el sistema web

El sistema web
El sistema web
El sistema web
El sistema web
El sistema web
El sistema web
El sistema web
El sistema web

Per utilitzar el sistema també necessiteu un servidor web. Utilitzo un raspberry pi amb Apache, PHP, Mysql, Gettext. El sistema web és multi idioma perquè pugueu fer-ho fàcilment en el vostre idioma. Ve amb suec i anglès (l'anglès pot tenir un anglès incorrecte, la meva traducció no és del 100%). Per tant, cal que tingueu instal·lat Gettext per al vostre servidor i també les configuracions regionals.

Us mostro algunes captures de pantalla del sistema.

Ve amb un sistema d’inici de sessió senzill i l’inici de sessió principal és: administrador com a usuari i aigua com a contrasenya.

Per utilitzar-lo heu de configurar tres treballs cron (els trobareu a la carpeta cronjob)

El fitxer timer.php que cal executar cada segon. Això conté tota l'automatització del sistema de forats. El nom del fitxer temperatura.php s'utilitza per indicar al sistema que llegeixi la temperatura de l'aire i la registri. Per tant, heu d’instal·lar un treball cron amb la freqüència amb què l’executareu. El tinc cada 5 minuts. Després, el fitxer anomenat dagstatistik.php només s’ha d’executar una vegada abans de mitjanit (com ara les 23:30 i les 23:30). Pren els valors reportats pels sensors durant el dia i els guarda per a estadístiques setmanals i mensuals.

Tingueu en compte que aquest sistema emmagatzema la temperatura en centígrads, però podeu canviar a Fahrenheit.

Al fitxer db.php configureu la connexió de base de dades mysql per al sistema.

En primer lloc, afegiu els sensors al sistema. I després creeu zones i afegiu-hi sensors.

Si teniu alguna pregunta o trobeu errors al sistema, informeu-los a la pàgina de GitHub. Podeu utilitzar el sistema web i no teniu permís per vendre-ho.

Si teniu problemes amb les configuracions regionals per a gettext, recordeu que, si utilitzeu raspberry com a servidor, sovint s’anomenen en_US. UTF-8, de manera que heu de fer aquests canvis al fitxer i18n_setup.php i a la carpeta regional. En cas contrari, quedareu enganxats amb la llengua sueca.

El descarregueu a la pàgina de GitHub.

Recomanat: