Cómo crear un sitio web comunicando Arduino usando PHP
Componentes y suministros
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 4 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 3 | ||||
| × | 1 | ||||
| × | 7 | ||||
| × | 7 | ||||
| × | 1 | ||||
| × | 1 |
Herramientas y máquinas necesarias
|
Aplicaciones y servicios en línea
| ||||
| ||||
|
Acerca de este proyecto
Actualizar
¿Cómo utilizar TheAmplituhedron.com para mejorar los proyectos de IoT? es mi nuevo proyecto que maneja la programación del lado del servidor por usted. Al utilizar TheAmplituhedron.com como host, puede enviar y obtener paquetes de datos sin esfuerzo a través de Internet.
Para apoyar mis proyectos y artículos, puede visitar mi sitio web aquí :)
Descripción
Creando un sitio web profesional para controlar mi acuario y mi sistema de riego en mi hogar y
recibir la información sobre la casa cuando no estoy en casa es el aspecto principal de este proyecto.
Para lograr ese objetivo, creé el proyecto Arduinautomotion que incluye 4 páginas HTML diferentes (Arduinautomotion.php, Arduinautomotioncontrol.php, Arduinautomotionformvalue.php, Arduinautomotioncommunication.php ) en mi localhost Apache.
Además, Arduino Ethernet Shield aloja otra página web HTML (ArduinoSide.php) a la que se puede acceder con la dirección IP elegida para comunicarse con el sitio web de Arduinautomotion.
Había pensado en este proyecto ya que tenía que irme de vacaciones por 2 semanas y no podía hacer los ajustes de mi acuario por eso. A veces necesito apagar el filtro interno para evitar que el nivel de oxígeno aumente en el acuario o necesito abrir mi comedero para alimentar a los peces de forma remota. Agregué seis opciones para controlar el contenido de mi acuario y una opción para activar el sistema de riego.
Además, puede obtener fácilmente los datos sobre el hogar (como los valores de temperatura y humedad provienen del sensor DHT11 o el valor del gas metano en el hogar proviene del sensor MQ4) con Arduinautomotion a través de Arduino Ethernet Shield.
Por lo tanto, el sitio web de Arduinautomotion tiene una interfaz fácil para obtener y enviar datos sobre el hogar desde Arduino.
Se requerirá el conocimiento de los lenguajes HTML, CSS, JavaScript, PHP y jQuery para comprender el contenido completo del proyecto, de modo que esto sea solo una muestra del proyecto, pero si conoce los idiomas, puede encontrar todas las páginas web que el proyecto incluye como Archivos de código PHP a continuación.
Nota:utilicé Notepad ++ para programar las páginas web.
Cómo enviar y obtener datos entre dos páginas web PHP
Usé formularios HTML, métodos PHP y PHP $ _SESSION [""] para obtener y enviar datos entre las páginas web. El método Get es más fácil de usar que el método de publicación para la comunicación, pero el método de publicación es más seguro que el método de obtención, por lo que utilicé el método de publicación para comunicarme entre las páginas web, excepto la página web de ArduinoSide. Sin embargo, Get Method es la forma más fácil de comunicarse con Arduino Ethernet Shield porque HTTP GET Request es mucho más fácil que Post Request, así que utilicé Get Method para la página web ArduinoSide. Además, PHP $ _SESSION [""] es la forma de guardar los datos de forma permanente entre las páginas web más de dos.
https://www.w3schools.com/php/php_forms.asp
https://www.w3schools.com/php/php_sessions.asp
Cómo configurar el sitio web en el servidor HTTP Apache (localhost)
El servidor HTTP Apache es eficiente para ese tipo de alojamiento, pero puede elegir XAMPP u otro servidor de alojamiento en su lugar. En mi caso, AppServ>> www>> Arduinautomotion.php y su contenido. Usé mi propia IPAddress ("192.168.1.20" se refiere a Localhost) para acceder a las páginas web, pero tienes que usar tu IPAddress (como http://yourIPAddress/Arduinautomotion.php).
http://editrocket.com/articles/php_apache_windows.html
Todo el contenido que Arduinautomotion.php ha agregado en las partes personalizadas a continuación.
Cómo conectarse con su Localhost desde dispositivos Android
Windows difiere de MAC para este trabajo, pero el enlace a continuación puede ser útil para Windows.
https://stackoverflow.com/questions/4779963/how-can-i-access-my-localhost-from-my-android-device
Después de eso, en la misma red Wİ-Fİ puede acceder fácilmente a Arduinautomotion.php con su propia dirección IP.
Cómo acceder a su Localhost a través de Wi-Fi
Windows difiere de MAC para este trabajo, pero el enlace a continuación puede ser útil para Windows.
Funciona con su dirección IP externa, pero está seguro de que solo usted conoce la dirección IP externa porque puede ser una forma peligrosa de alojar.
https://stackoverflow.com/questions/5524116/accessing-localhost-xampp-from-another-computer-over-lan-network-how-to
Además, debe usar el reenvío de puertos para acceder a ArduinoSide.php y funciona con la dirección IP que elija en el código ArduinoSide a continuación.
https://en.wikipedia.org/index.php?q=aHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUG9ydF9mb3J3YXJkaW5n
Arduinautomotion.php
Es la página principal para comunicarse con Arduino Ethernet Shield, puede dar comandos desde esta página a Arduino y obtener los datos sobre el hogar desde Arduino fácilmente.
El menú Cambiar explica las situaciones que cambian y muestra qué parte es un objeto y qué parte es un sensor cambiando el color de las partes.
Por los círculos cambiantes, muestra los valores de los sensores y las situaciones de los objetos.
1) Sección de la sala
Todos los datos sobre la habitación que provienen de Arduinautomotioncommunication.php se mostrarán en la sección de habitaciones.
Antes:
Después:
2) Sección del acuario
Cualquier combinación que elija sobre las partes del acuario con los formularios HTML se enviará a Arduinautomotionformvalue.php y luego volverá como una salida de Arduinautomotioncontrol.php a Arduinautomotion.php.
Antes:
Después:
3) Sección de planta
Se pueden observar los valores del sensor higrómetro y se puede considerar el arranque del sistema de riego a través de valores. Como sección del acuario, los datos volverán como una salida de Arduinautomotioncontrol.php a Arduinautomotion.php.
Antes:
Después:
4) Sección de la guía
Contiene la página web Arduinautomotionformvalue.php para observar las opciones del formulario nuevamente. Además, incluye algunas instrucciones del proyecto y una imagen que explica el proceso de comunicación.
5) Cuadro de alerta
Independientemente de los valores que estén en el rango de peligro, aparecerá un cuadro de alerta que incluye un archivo de video de Spider-man y un archivo de audio ("Spider-sense is tingling") cuando se recargue la página web Arduinautomotion.php.
6) Partes de Arduinautomotion.php
Los sitios web redimensionables como pautas:
Todos los círculos cambiantes:
Pie de página:
Arduinautomotioncontrol.php
Está integrado en la página web Arduinautomotion.php para obtener todos los datos como $ _SESSION [""] de Arduinautomotionformvalue.php y Arduinautomotioncommunication.php.
Guarda los datos de forma permanente a través de las páginas PHP.
Arduinautomotionformvalue.php
Obtiene las opciones del formulario de Arduinautomotion.php y las envía ArduinoSide y Arduinautomotioncontrol.php. Está incrustado en la sección Guía de la página web Arduinautomotion.php, pero también es accesible con una nueva pestaña.
Arduinautomotioncommunication.php
Los datos que provienen de ArduinoSide son guardados por Arduinautomotioncommunication.php después de que envía los datos a Arduinautomotioncontrol.php automáticamente.
ArduinoSide
Está alojado por Arduino Ethernet Shield a través de DNS y puede acceder a él con la dirección IP que elija en el código ArduinoSide a continuación (como https:// yourChosenIPAddress).
Conexiones
Simplemente haga las conexiones como se explica en el código de ArduinoSide y la imagen de Fritzing a continuación. Conecte los enchufes y enchufes unidireccionales a los relés bidireccionales y pegue todos los componentes en un plano, como un tablero de corcho.
Arduino
Módulo DHT11
Pin 2 -------------------------
Relé de 2 vías (1)
Pin 3 -------------------------
Pin 4 -------------------------
Relé de 2 vías (2)
Pin 5 -------------------------
Pin 6 -------------------------
Relé de 2 vías (3)
Pin 7 -------------------------
Pin 8 -------------------------
Relé de 2 vías (4)
Pin 9 -------------------------
Escudo Ethernet Arduno
Pin 10 --------------------------
Pin 11 --------------------------
Pin 12 --------------------------
Pin 13 --------------------------
LDR
AO --------------------------
Sensor de llama
A1 --------------------------
Sensor MQ4
A2 --------------------------
Módulo higrómetro (1)
A3 --------------------------
Módulo higrómetro (2)
A4 --------------------------
Módulo higrómetro (3)
A5 --------------------------
El código de Arduino es básicamente similar al código de WebServer que se encuentra en la carpeta de ejemplos de la biblioteca de Ethernet.
Solo agregué algunos códigos para controlar sensores y ejecutar comandos que provenían del sitio web Arduinautomotion.
Y conecte el cable ADSL de Arduino Ethernet Shield al enrutador.
Una vez que se ejecuta el código Arduino, el sitio web de Arduinautomotion envía y obtiene datos de Arduino a través de LAN a través de Wİ-Fİ.
Los videos de prueba
Probé el proyecto después de que lo conecte con mi acuario y mi sistema de riego (es básicamente un motor de agua), el proyecto funciona muy bien. :) Es el video de prueba del proyecto Arduinautoumotion. Lo edité con la versión de prueba de Filmora y no quité la marca de agua por respeto a su trabajo.
Computadora:
Android:
Código
- Arduinautomotion.php
- Arduinautomotioncontrol.php
- Arduinautomotionformvalue.php
- Arduinautomotioncommunication.php
- ArduinoSide_Code.ino
Arduinautomotion.php PHP
phpsession_start ();?> php include 'Arduinautomotioncontrol.php'; ?>Guidelines for managing to adjustments of the objects.
Please click the buttons and th e color bars to learn the info about colors.
ROOM
AQUARUM
PLANT
GUDE
Open FormValue In New Tab
- When a form is sent to the FormValue page, form values are revealed in the iframe which named newsite in Guide.
- Form values are the saved data which give Arduino an ability to determine the adjustments of the aquarium and the plants.
- And all of the data go through the ArduinoSide page that is hosted by Arduino Ethernet Shield with the IP address you choose.
- After that, the Communication button in the ArduinoSide page has to be pushed to open the Communication page and to change the $_Session values.
- Lastly, the Arduinautomotion page has to refresh or the Reload button has to pushed to get the new data from Arduino.
- If the information about the room is in the dangerous range, the homepage notifies you with a voice alert box which includes a Spider-man video and audio file that are in the www folder in Apache localhost furthermore the related information circle changes its colour to red.
PLANT
AQUARUM
...This file has been truncated, please download it to see its full contents.Arduinautomotioncontrol.phpPHP
Arduinautomotion Arduinautomotionformvalue.phpPHP
FormValue Server has received the data from Arduinautomotion.
Airpump=
Lamp=
Feeding=
Heater=
Filterex=
Filterin=
Irrigation=
Arduinautomotioncommunication.phpPHP
Communication