Aire calidad de medición con la Api REST (1 / 5 paso)

Paso 1: Paso 1: codificación de la nube

¡ Excelente! Has hecho al paso 1. Aquí estamos construyendo el servicio web para que nuestro Arduino Yun va a enviar los datos (POST). La idea es que lea los datos de nuestro sensor de gas y envía al servidor para que podamos usar los datos como mejor nos parezca.

No se explicar la configuración del servidor Web. En mi caso estoy usando un VPS DigitalOcean ejecutar una pila LEMP. Para conseguir que esto funcione debe prestar especial atención a los módulos PHP que haya instalado el servidor Web.

Instalación de luz

Hasta instalar una instalación nueva del marco micro Lumen en su servidor. He añadido al instalador de luz para el instalador del paquete "compositor". Así que todo lo que tengo que hacer es:

 $ lumen new api 

Alternativamente puede copiar Lumen a través de FTP mediante la descarga de sus archivos en la Web de Lumen.

Continuación hasta tenemos que editar el archivo ".env". Editar las credenciales de inicio de sesión correcto para su base de datos MYSQL, nombre de usuario y contraseña. Esto hará que la luz capaz de acceder a la base de datos en el servidor.

Importante: Compruebe si la luz está correctamente instalada por ir a la carpeta pública en el servidor. Debe mostrar "Lumen".

Codificación de la API

Escribí esta parte como un tutorial de pasta de copia. ¿Por qué? Porque si se puede codificar, obtendrás lo que todo significa. Si no código de que no sirve para explicar esto. Podría haber una gran demanda a actualizarlo en consecuencia.

Elegimos la luz porque es un marco muy pequeño (por lo tanto, la parte de "micro") y es realmente fácil hacer una API simple.

Primero para arriba. Crear un nuevo archivo de migración para crear las tablas en la base de datos. Se puede llamar cualquier cosa que te gusta. Lo llamaré "datos", debido a la falta de inspiración.

 $ php artisan make:migration create_data_table –create=data 

Ir a la carpeta "base de datos y migraciones" y abra el archivo php de migración que acaba de crear. Edítelo para parecerse a esto.

 <?php use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration;class CreateData extends Migration { /** * Run the migrations. * * void */ public function up() { Schema::create('data', function (Blueprint $table) { $table->increments('id'); $table->float('pollution'); $table->double('longitude',8,6); $table->double('latitude',8,6); $table->timestamps(); }); } /** * Reverse the migrations. * * void */ public function down() { Schema::drop('data'); } } 

A continuación vamos a crear un modelo para la base de datos creando un nuevo archivo en la carpeta "app/models". (La carpeta no está allí por lo debe hacer también). Otra vez: reemplazar los datos por el nombre que hayas elegido.

 <?php use Illuminate\Database\Eloquent\Model;class Data extends Model { protected $fillable = ['pollution', 'longitude', 'latitude']; } 

Ahora tenemos que crear un controlador que gestiona la entrada de datos. Crear un nuevo archivo en la carpeta "controladores de http de la aplicación" llamada {name}controller.php. Mina se llama DataController.php

 <?php namespace App\Http\Controllers;use Laravel\Lumen\Routing\Controller as BaseController; use App\Models\Data; use Illuminate\Http\Request;class DataController extends BaseController { public function index(){ $data = Data::all(); return response()->json($data); } public function createData(Request $request){ $find = Data::where('longitude', $request->longitude)->where('latitude', $request->latitude)->get(); if($find->isEmpty()){ $data = Data::create($request->all()); return response()->json($find); }else{ $find = Data::where('longitude', $request->longitude)->where('latitude', $request->latitude)->first(); $update = Data::find($find->id); $update->pollution = $request->pollution; $update->save(); return response()->json($update); } } public function deleteData($id){ $data = Data::find($id); $data->delete(); return response()->json('success'); } public function getCoords($lat, $lon){ $data = Data::whereBetween('longitude', [($lon-0.2), ($lon + 0.2)])->whereBetween('latitude', [($lat - 0.2), ($lat + 0.2)])->get(); return response()->json($data); }} 

Último paso es actualizar el archivo routes.php para que nuestra api puede ser abordado desde el exterior. Dirígete a la carpeta "app/http" y editar el archivo "routes.php". Esto hará que la api accesible por ir a "www.domain.tld/api/v1/data".

 $app->group(['prefix' => 'api/v1','namespace' => 'App\Http\Controllers'], function($app) { $app->get('data','DataController $app->get('places/{lat}/{lon}','DataController $app->post('data','DataController $app->delete('data/{id}','DataController 

Eso es todo! Termine con su API.

? >

Artículos Relacionados

Cómo hacer una escultura al aire libre de Cisne Trompetero con mi receta concreta de costumbre...

Cómo hacer una escultura al aire libre de Cisne Trompetero con mi receta concreta de costumbre...

So... Hice una escultura de Cisne Trompetero de concreto y alambre de pollo y ahora vive al aire libre, a 45 minutos al norte de Toronto, en una roca, cerca de un estanque, sentado sobre un nido de cuerda anudada mano (ver mi como hacer un cisne de t
FLOTADOR de Beijing Smart aire calidad cometas

FLOTADOR de Beijing Smart aire calidad cometas

Aprende a hacer un módulo de detección de calidad aire que puede sujetar firmemente a un cometa! El módulo tiene un indicador luminoso para decirle lo malo es la calidad del aire.Estos módulos fueron desarrollados para FLOAT_Beijing, un proyecto de D
Haciendo una sencilla aplicación con la API de Win32

Haciendo una sencilla aplicación con la API de Win32

a menudo la forma más fácil de aprender a utilizar una interfaz de programación es un ejemplo sencillo de codificación. En este caso, vamos a aprender la API de Win32 por programar una calculadora simple entero con la ayuda de Visual Studio 2010.  Pu
Acondicionador de aire de estado sólido con viejo Bitcoin Hardware versión 2

Acondicionador de aire de estado sólido con viejo Bitcoin Hardware versión 2

Versión: 2Acondicionador de aire de estado sólido con Hardware viejo de BitcoinVideo le mostrará todos los paso necesarios para completar este proyecto.Paso 1: partes Piezas de Hardware antiguo Bitcoin:x 2 - ventilador2 x - disipador de calorOtras pa
Construir sus aplicaciones Android para IoT dispositivos usando la API REST de control

Construir sus aplicaciones Android para IoT dispositivos usando la API REST de control

Hace unas semanas he implementado biblioteca de servicio de web de resto para el tablero de WIZwiki-W7500ECO. He publicado en Instructables, (aparece contenido!)He decidido crear mis propias aplicaciones para monitorear mi junta con el resto APIs. Mi
IntelliVent - la ventilación inteligente controlado por api REST

IntelliVent - la ventilación inteligente controlado por api REST

El termostato Nest fue un salto en el climatizador de casa automatizada.Sin embargo te has preguntado ¿por qué usted necesita para calentar o enfriar habitaciones desocupadas, como la cocina o la oficina durante la noche? IntelliVent es una ventilaci
Construcción de una Web activa cerradura de la puerta usando la API Rest y frambuesa PI

Construcción de una Web activa cerradura de la puerta usando la API Rest y frambuesa PI

En este instructable, construiremos una cerradura de puerta electrónica habilitado para la web desde cero utilizando la API RESTFUL, nodo JS y Raspberry PI para prestar el servicio de web consumido por la aplicación móvil o cualquier cliente REST.La
Dekoboko: Calidad de carretera medición con bicicletas

Dekoboko: Calidad de carretera medición con bicicletas

Instalación de sensores de vibración en un marco de bicicleta para registrar la calidad de la carretera (baches, agujeros, guijarro) y subir los datos a la web para la visualización y graficación.Encontrar más suaves paseos por la ciudad, escoger los
Distancia de medición con las ondas de radio

Distancia de medición con las ondas de radio

Introducción:En primer lugar, queremos que nos disculpen por nuestra mala Inglés. (Pupilas alemanas: D)Inventamos un nuevo, barato dispositivo para medir distancias de hasta 1,5 km (aproximadamente 1 milla) con una precisión de ± 5 metros (15 pies).
WiFi activado Arduino - con web APIs

WiFi activado Arduino - con web APIs

¿Está usted familiarizado con Arduino, pero buscando un poco más conectividad en sus proyectos? Este Instructable va sobre un nuevo (y barato) módulo inalámbrico que ha golpeado el mundo integrado duro - la ESP8266. Este módulo pequeño es una manera
Flujo de medición con un tablero de Mediatek Linkit

Flujo de medición con un tablero de Mediatek Linkit

En este Instructable, usted será capaz de a interfaz flujo Sensor YFS201 con Mediatek Linkit un Board.A sensor de flujo es un dispositivo para la detección de la tasa de flujo de fluidos. Típicamente un sensor de flujo es el elemento de detección uti
Vieja Marina de guerra/aire Jordan!  Reparación de su aire antiguo roto se cuela con chanclas! ¿

Vieja Marina de guerra/aire Jordan! Reparación de su aire antiguo roto se cuela con chanclas! ¿

Hacen tus patadas carecen de rebote y salto?  ¿Es el juego no como heeltastic ya?  Sígueme en esta manera muy simple, muy barato para poner los pies en las nubes.¡ NOTA!  Estoy en ninguna forma o función, un médico de pie de cualquier tipo o especie.
Medición con ftf 2,4 y un sensor ultrasónico de distancia

Medición con ftf 2,4 y un sensor ultrasónico de distancia

se trata de circuito de arduino muy simple con HC-SR04 ultrasónico sensor y 2.4 pulgadas de pantalla tft, con arduino uno.el arduino uno calcula la distancia y actualizar la pantalla cada 1 segundo.vea este vídeo para ver cómo funciona.Paso 1: Herram
Calibrador de IoT con Arduino, Yaler & IFTTT

Calibrador de IoT con Arduino, Yaler & IFTTT

Cómo construir una Web-enabled, Arduino-base medidor de IoT con una API REST y conecte a la plataforma de mash-up IFTTT.com , vía el servicio de retransmisión de Yaler.net *.¿Lo que es emocionante acerca de esto? Con el Canal fabricante, IFTTT apoya