Lucht kwaliteit meten met REST Api (1 / 5 stap)

Stap 1: Stap 1: codering van de wolk


Geweldig! Je hebt gemaakt aan stap 1. Hier zullen we bouwen de webservice waarnaar onze Arduino Yun zal het verzenden van de gegevens (POST). Het idee is dat het leest de gegevens van onze gas sensor en die naar de server verzenden, zodat we deze gegevens gebruiken kunnen als wij dat nodig achten.

Ik zal niet uitleggen de setup van de webserver. In mijn geval ben ik met behulp van een DigitalOcean VPS een stapel LEMP uitgevoerd. Om te halen zulks voor werkzaamheden u moeten zorgvuldig aandacht besteden aan de PHP modules die uw webserver is geïnstalleerd.

Installeren van Lumen

Eerst installeren op een verse installatie van het Lumen micro kader op uw server. Ik heb de Lumen installateur toegevoegd aan de installateur van het pakket "composer". Dus alles wat ik moet doen is:

 $ lumen new api 

Als alternatief kunt u kopiëren Lumen via FTP downloaden van de bestanden op de website van Lumen.

Vervolgens hebben we omhoog om de ".env"-bestand te bewerken. Bewerk de juiste inloggegevens voor uw MYSQL database, gebruikersnaam en wachtwoord. Hierdoor wordt de Lumen kunnen toegang krijgen tot de database op uw server.

Belangrijk: Controleren of Lumen correct door te gaan naar de openbare map op uw server is geïnstalleerd. Het moet "Lumen" worden weergegeven.

Codering van de API

Ik schreef dit deel als een kopie plakken tutorial. Waarom? Want als je code kunt, krijg je wat het allemaal betekent. Als je niet kan code het geen gebruik dit uit te leggen. Zou er een grote vraag, dat zal ik het dienovereenkomstig bijwerken.

We kozen voor Lumen, omdat het is een echt klein kader (vandaar de "micro" deel) en het is echt gemakkelijk om een eenvoudige API.

Eerst omhoog. Maak een nieuw bestand voor de migratie dus maak de tabellen in de database. U kunt het alles wat die je wilt bellen. Ik noem het "data", vanwege een gebrek aan inspiratie.

 $ php artisan make:migration create_data_table –create=data 

Ga naar de "database/migraties" map en open het php-bestand voor migratie die u net hebt gemaakt. Bewerken om te lijken op dit.

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

Vervolgens maken we een model voor de database door het creëren van een nieuw bestand in de map "app/modellen". (De map is er niet dus moet u dat ook). Nogmaals: gegevens vervangen door de naam die u hebt gekozen.

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

Nu moeten we een controller die de invoer van de gegevens beheert maken. Maak een nieuw bestand in de map ' app/http/domeincontrollers' {name}controller.php. Mijne heet 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); }} 

Laatste stap is het bijwerken van het bestand routes.php, zodat onze api kan worden benaderd vanuit de buitenkant. Hoofd over de map "app/http" en het "routes.php" bestand bewerken. Hierdoor wordt de api toegankelijk door te gaan naar "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 

That's it! U klaar bent met uw API.

? >

Gerelateerde Artikelen

Bouwen van een Web ingeschakeld deurslot met Rest API en Raspberry PI

Bouwen van een Web ingeschakeld deurslot met Rest API en Raspberry PI

In dit instructable, bouwen we een web-enabled elektronische deurslot vanaf nul RESTFUL API, knooppunt JS en Raspberry PI gebruikt om de web-service die wordt verbruikt door de mobiele app of een REST-client.De architectuur is verdeeld in twee 3 dele
Dekoboko: Road kwaliteit meten met fietsen

Dekoboko: Road kwaliteit meten met fietsen

Vibratie sensoren koppelt aan een frame van de fiets te melden van de kwaliteit van de weg (bultjes, gaatjes, kasseien) en het uploaden van de gegevens op het web voor visualisatie en grafieken.Soepeler ritten door de stad te vinden, kies de offroad
Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Een paar weken geleden, heb ik uitgevoerd REST web service bibliotheek voor WIZwiki-W7500ECO board. Ik heb gepost op Instructables, (Featured content!)Heb ik besloten om mijn eigen Apps voor de controle op mijn bord met REST API's. Mijn Apps gemaakt
Lucht kwaliteit ballonnen

Lucht kwaliteit ballonnen

dit Instructable zal u tonen hoe te maken van de reus, super cool, gloeiende ballonnen die reageren aan het omringen van luchtkwaliteit. Binnen elke ballon is een tri-gekleurde LED. Deze LED reageert op gegevens uit een lucht kwaliteit sensor, draaie
IntelliVent - de slimme Vent gecontroleerd door REST api

IntelliVent - de slimme Vent gecontroleerd door REST api

De Nest-thermostaat was een sprong in geautomatiseerde huis klimaatcontrole.Maar heb jij je ooit afgevraagd waarom heb je nodig om warmte of cool leegstaande kamers, zoals de keuken of op kantoor tijdens de nacht? IntelliVent is een slimme vent gebou
FLOAT Beijing slimme lucht kwaliteit vliegers

FLOAT Beijing slimme lucht kwaliteit vliegers

Leer hoe te maken van een lucht kwaliteit sensing module die u veilig aan een vlieger koppelen kunt! De module heeft een LED-lampje om u te vertellen hoe slecht de kwaliteit van de lucht is.Deze modules zijn ontwikkeld voor FLOAT_Beijing, een project
HTTPole (REST API Pole Display)

HTTPole (REST API Pole Display)

Ontwikkelaars moeten een mooie manier om tekst op een scherm.Moderne tech HTTP gebruikt voor alles, onze webgebaseerde Point of Sale app kon niet gebruik maken van een weergave Pole tot nu.Misschien wilt u het weer op een scherm, of een scherm op uw
Lucht kwaliteit controle apparaat met behulp van arduino

Lucht kwaliteit controle apparaat met behulp van arduino

Hallo iedereenwonen een ontwikkelingsland of de meest vervuilde stad kennen van de kwaliteit van de lucht is zeer belangrijk voor de gezondheid, kan maak ik dit apparaat voor mijn zelf en ieder het ook. Ik ga hier om aan te tonen hoe te maken.voordat
WiFi Enabled Arduino - Interfacing met web API's

WiFi Enabled Arduino - Interfacing met web API's

Bent u bekend met de Arduino, maar zijn op zoek naar een beetje meer connectiviteit in uw projecten? Dit Instructable gaat over een nieuwe (en goedkoop) draadloze module die heeft getroffen de ingebedde wereld hard - de ESP8266. Deze kleine module is
Afstand meten met radiogolven

Afstand meten met radiogolven

Inleiding:Allereerst willen we ons te verontschuldigen voor onze slechte Engels. (Duitse leerlingen: D)Wij de uitvinder van een nieuwe, goedkope apparaat voor het meten van afstanden tot 1,5 km (ongeveer 1 mijl) met nauwkeurigheid over ±5 Meter (15 f
Controleer Master---hoge kwaliteit meten Instrument voor kalibreren CNC Machines

Controleer Master---hoge kwaliteit meten Instrument voor kalibreren CNC Machines

Masters controleren kan ook worden opgeroepen nauwkeurigheid stap meter, Master Gauge blok Set, standaard referentie Bars of kalibratie Master. Als iedereen grote belangen in dit product toont, gelieve Klik hier om een kijkje nemen op het: http://www
Lucht kwaliteit testvak

Lucht kwaliteit testvak

Is DIY een apparaat dat de kwaliteit van het milieu staat op elk gewenst moment een probleem voor u controleren kan? Eigenlijk, is het niet een klus. Hier, is op het Bureau, een DIY apparaat dat kan me helpen krijgen de informant over de luchtverontr
Capacitieve bodemvocht meten (met I2C)

Capacitieve bodemvocht meten (met I2C)

Veel is geschreven over het meten van bodemvocht en vooral op welke sensor te gebruiken.Met het eenvoudige weerstand meten is het grootste probleem de corrosie van de sensor, niet alleen omdat het in contact met het bodemmonster maar ook omdat er een
Foton lucht kwaliteit (PM 2.5) display

Foton lucht kwaliteit (PM 2.5) display

Dit is een web-enabled PM2.5 monitor. Het was ontworpen om goedkoop en gemakkelijk op te bouwen. Een foton wordt gebruikt als de microcontroller en een shinyei PPD42 lucht sensor. De volledige instructies en onderzoek kunnen worden gevonden op https: