Raspberry Pi3 modèle B (4 est probablement correct)
Cas pour Raspberry Pi
Dissipateur de chaleur pour Raspberry Pi
Raspberry Pi3 modèle B B + ensemble d'alimentation compatible (5V 3.0A)
M5Stack
Alimentation pour M5Stack
PC exécutant Arduino IDE (Mac / Windows)
Le serveur sert également de système de notification des visiteurs (toujours démarré) créé la dernière fois. https://qiita.com/cami_oshimo/items/b4e4002f7c47dd00ba84
(1) Installez Arduino IDE https://www.arduino.cc/en/main/software (2) Installer les bibliothèques liées à M5Stack https://mag.switch-science.com/2018/02/28/getting-started-with-m5stack/ (3) Installez Apache (serveur http) sur Raspberri Pi
Exemple) Naka-ku, ville d'Hiroshima * Je travaille à distance depuis la ville d'Hiroshima
Programme principal Si vous changez Hiroshima pour une autre zone, vous pouvez obtenir la quantité de précipitations dans cette zone.
/var/www/html/rain.php
<?php
mb_language("Japanese");//Traitement des paramètres de langue
mb_internal_encoding("UTF-8");//Spécification du code de caractère
date_default_timezone_set('Asia/Tokyo');//Définir le fuseau horaire
$url = "http://www.data.jma.go.jp/obd/stats/data/mdrr/pre_rct/alltable/pre1h00.h
tml";
//Chargement d'une page Web
$contents= file_get_contents($url);
//Conversion de code de caractère
$contents_utf = mb_convert_encoding($contents,"UTF-8","auto");
//Extrait la partie délimitée par la chaîne de caractères spécifiée.
$startString = '<td style="white-space:nowrap">Hiroshima (Hiroshima)*</td><td style="
text-align:right;white-space:nowrap;">';
$endString = '</td>';
$startPoint = mb_strpos($contents_utf,$startString) ;//$Découvrez où apparaît startString
$startPoint = $startPoint + mb_strlen($startString);//Position de départ
//echo $startPoint;
//echo"";
$endPoint = mb_strpos($contents_utf,$endString,$startPoint );//$endString est le suivant
Découvrez où il apparaît
//echo $endPoint;
//echo"";
$length = $endPoint - $startPoint;//Trouvez la longueur de la chaîne.
$rainfallString = mb_substr($contents_utf,$startPoint,$length)." mm"."\n\n"."GET
Time"."\n".date("H:i:s")."\n";
echo $rainfallString;
file_put_contents("/var/www/html/index.html", $rainfallString);
?>
Script shell pour exécuter PHP
/var/www/html/cron.php
#!/bin/sh
/usr/bin/php /var/www/html/rain.php
Résultat d'exécution PHP
/var/www/html/index.html
0.0 mm
GET Time
09:30:02
Assurez-vous que vous pouvez le voir depuis votre navigateur.
Réglage de démarrage automatique (dans cet exemple, obtenez la quantité de précipitations toutes les heures)
*/60 * * * * root sudo sh /var/www/html/cron.sh
Programmation côté M5Stack
rain.ino
#include <M5Stack.h>
#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "XXXXXXXXXXXXX"; // Wifi SSID
const char* password = "XXXXXXXXXXXXX"; // Wifi Password
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
void setup()
{
M5.begin();
M5.Lcd.setBrightness(10);
M5.Lcd.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
M5.Lcd.printf(".");
}
M5.Lcd.println(" CONNECTED");
M5.Lcd.fillScreen(BLACK);
}
void getrain()
{
M5.Lcd.fillScreen(BLACK);
HTTPClient http;
http.begin("http://xxx.xxx.xxx.xxx/index.html"); //Adresse IP du Raspberry Pi
int httpCode = http.GET();
String result = http.getString();
M5.Lcd.setTextSize(5);
M5.Lcd.setCursor(0,0);
M5.Lcd.print(result);
http.end();
}
void loop()
{
getrain();
delay(xxxxxxx); //De Raspberry Pi`index.html`Intervalle d'obtention (millisecondes)
}