Mesure de la qualité avec l’Api REST de l’air (1 / 5 étapes)

Étape 1: Étape 1: codage du nuage

Formidable ! Vous l’avez fait à l’étape 1. Ici, nous allons construire le service web auquel notre Arduino Yun enverra les données (POST). L’idée est qu’il va lire les données de notre détecteur de gaz et qui envoient au serveur, donc nous pouvons utiliser ces données comme bon nous semble.

Je ne va pas expliquer la configuration du serveur Web. Dans mon cas, j’utilise un VPS DigitalOcean exécutant une pile LEMP. Afin que cela fonctionne vous devrait accorder une attention particulière aux modules PHP de que votre serveur Web est installé.

Installation de Lumen

Tout d’abord jusqu'à installer une nouvelle installation du cadre micro Lumen sur votre serveur. J’ai ajouté l’installateur de Lumen à l’installateur de package « compositeur ». Donc tout ce que j’ai à faire est :

 $ lumen new api 

Alternativement, vous pouvez copier Lumen via FTP en téléchargeant ses fichiers sur le site de Lumen.

Ensuite jusqu'à nous devons éditer le fichier « .env ». Modifier les références de connexion correcte pour votre base de données MYSQL, nom d’utilisateur et mot de passe. Cela rendra Lumen en mesure d’accéder à la base de données sur votre serveur.

Important : Vérifiez si Lumen est installé correctement en allant vers le dossier public sur votre serveur. Il doit afficher « Lumen ».

Codage de l’API

J’ai écrit cette partie comme un tutoriel de pâte de copie. Pourquoi ? Parce que si vous pouvez coder, vous obtiendrez ce que cela signifie. Si vous ne pouvez pas code c' est inutile d’expliquer cela. Pourrait-il y avoir une forte demande, que je mettrai à jour en conséquence.

Nous avons choisi Lumen parce que c’est un vraiment petit "framework" (d'où la partie « micro ») et il est vraiment facile à faire une API simple.

Tout d’abord vers le haut. Créez un nouveau fichier de migration afin de créer les tables dans la base de données. Vous pouvez l’appeler quelque chose que vous aimez. Je vais l’appeler « données », en raison d’un manque d’inspiration.

 $ php artisan make:migration create_data_table –create=data 

Allez dans le dossier « base de données/migrations » et ouvrez le fichier de migration php que vous venez de créer. Modifiez-la pour ressembler à ceci.

 <?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'); } } 

Ensuite, nous allons créer un modèle pour la base de données en créant un nouveau fichier dans le dossier « app/modèles ». (Le dossier n’est pas là alors vous devriez vous que trop). Nouveau : remplacer les données par le nom que vous avez choisi.

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

Maintenant nous devons créer un contrôleur qui gère la saisie des données. Créez un nouveau fichier dans le dossier « http/app/controllers » appelé {name}controller.php. Le mien s’appelle 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); }} 

Dernière étape consiste à mettre à jour le fichier routes.php afin que notre api peut être approchés de l’extérieur. Rendez-vous sur le dossier "app/http" et éditez le fichier « routes.php ». Cela rendra l’api accessible en allant dans « 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 

C’est tout ! Vous avez terminé avec votre API.

? >

Articles Liés

Bâtir vos applications Android pour surveillance IoT périphériques à l’aide des API REST

Bâtir vos applications Android pour surveillance IoT périphériques à l’aide des API REST

Il y a quelques semaines j'ai implémenté la bibliothèque du service web REST pour carte WIZwiki-W7500ECO. J'ai posté sur Instructables, (Featured content!)J'ai décidé de créer mes propres Apps pour surveiller ma planche à l'aide d'autres API. Mes app
IntelliVent - l’évent intelligent contrôlé par api REST

IntelliVent - l’évent intelligent contrôlé par api REST

Le thermostat de nid était un saut dans la maison automatisée de télécommande.Mais vous êtes-vous déjà demandé pourquoi avez-vous besoin de chaleur ou des chambres inoccupées cool, comme la cuisine ou le bureau au cours de la nuit ? IntelliVent est u
HTTPole (affichage du pôle API reste)

HTTPole (affichage du pôle API reste)

Les développeurs ont besoin d'une belle façon de mettre le texte sur un écran.Technologie moderne utilise HTTP pour tout, notre application de Point de vente basé sur le web n'a pas pu utiliser un Pole Display jusqu'à présent.Peut-être que vous voule
Construire un Web activé serrure en utilisant les API Rest et Raspberry PI

Construire un Web activé serrure en utilisant les API Rest et Raspberry PI

Dans ce instructable, nous construirons une serrure électronique web activé à partir de zéro en utilisant les API RESTFUL, nœud JS et Raspberry PI pour fournir le service web consommé par l'application mobile ou n'importe quel client de repos.L'Archi
Mesure des angles et des distances de survie en plein air.

Mesure des angles et des distances de survie en plein air.

Il y a des moments que vous avez à faire angle mesures mais ne peuvent ni ne doivent employer n'importe quel instrument, tel que lors d'une randonnée, quand vous conduisez une moto, ou quand il est sur un bus de tournée. Dans de tels cas, mesurer les
Décorez votre maison avec des ballons flottant dans l’Air

Décorez votre maison avec des ballons flottant dans l’Air

Vous voulez décorer votre maison joliment avec des ballons flottant dans les airs. Ici est complet instructable pour y parvenir.Étape 1: Choses nécessairesBallons (j'ai utilisé des ballons de blanc + couleurs bleus)pompe à Air ballonruban adhésif dou
WiFi activé Arduino - interfaçage avec web APIs

WiFi activé Arduino - interfaçage avec web APIs

Êtes-vous familier avec Arduino, mais sont à la recherche d'un peu plus de connectivité dans vos projets ? Ce Instructable va sur un nouveau (et cher) module sans fil qui a frappé le monde embarqué dur - la ESP8266. Ce petit module est un moyen idéal
Mesure du niveau eau avec capteur à ultrasons

Mesure du niveau eau avec capteur à ultrasons

Pour mon prochain gros projet (arrosage système mécanisé) j'ai besoin d'avoir le compteur de niveau d'eau. Je fus le choix de contact et sans contact méthodes pour mesurer le niveau de liquide dans le réservoir. Moyens de contact sont méthode résisti
Mesure de précision avec soudure

Mesure de précision avec soudure

J'ai acheté un étau peu coûteux à utiliser comme un accessoire de fraisage pour mon mini-tour et comme prévu, il était tout à fait rugueux. Pour améliorer les performances, j'ai commencé à ébavurer toutes les surfaces, surtout celles coulissants et t
Comment mesurer le confort thermique avec Imp électrique et Ubidots

Comment mesurer le confort thermique avec Imp électrique et Ubidots

Chaudes journées d'été sont sympa, non ? Mais la température n'est pas tout ce qu'il faut à notre corps à l'aise ; humidité joue un rôle énorme aussi bien. Dans ce tutoriel nous mesurer la température et l'humidité relative de l'environnement et pour
Mesurer la température avec Arduino Ethernet + DS18B20 + Thingspeak

Mesurer la température avec Arduino Ethernet + DS18B20 + Thingspeak

Bonjour à tousIci je vais vous savent lire la température à l'aide de capteur DS180B20 et Arduino Ethernet et envoyer les données à Thingspeak. Vous pouvez accéder à ma page de Thingspeak ici :https://thingspeak.com/Channels/25037J'ai utilisé mon ard
Vérifiez Master---Instrument de mesure de haute qualité pour calibrer les Machines CNC

Vérifiez Master---Instrument de mesure de haute qualité pour calibrer les Machines CNC

maîtres de vérifier aussi peut être appelé précision étape jauge, capitaine jauge mis en bloc, jauges de référence ou d'étalonnage Master. Si n'importe qui présente de grands intérêts dans ce produit, s'il vous plaît cliquez ici pour jeter un oeil :
Impressions 3D de finition de qualité avec de l’acétone

Impressions 3D de finition de qualité avec de l’acétone

L'impression 3D est grande. Avec une seule machine, vous pouvez créer presque n'importe quelle forme à répondre aux que besoins de votre prototypage rapide. Mais parfois, vous ne voulez pas un prototype. Vous voulez un produit final de la belle, soli
Faire des images de haute qualité avec des lentilles bon marchés

Faire des images de haute qualité avec des lentilles bon marchés

Si vous êtes un créateur vidéo ou un photographe, vous savez que différentes lentilles pour caméra vous sont importants pour donner vos images de bonne qualité ou un certain regard. Selon l'objectif et de votre expérience, vous très probablement beso