Raspberry Pi3 Model B (4 ist wahrscheinlich in Ordnung)
Fall für Raspberry Pi
Kühlkörper für Raspberry Pi
Raspberry Pi3 Modell B B + kompatibles Netzteil (5V 3.0A)
M5Stack
Netzteil für M5Stack
PC mit Arduino IDE (Mac / Windows)
Der Server dient auch als Besucherbenachrichtigungssystem (immer gestartet), das zuletzt erstellt wurde. https://qiita.com/cami_oshimo/items/b4e4002f7c47dd00ba84
(1) Installieren Sie die Arduino IDE https://www.arduino.cc/en/main/software (2) Installieren Sie M5Stack-bezogene Bibliotheken https://mag.switch-science.com/2018/02/28/getting-started-with-m5stack/ (3) Installieren Sie Apache (http-Server) auf Raspberri Pi
Beispiel) Naka-ku, Stadt Hiroshima * Ich arbeite von Hiroshima aus
index.html
ausgegeben wirdindex.html
auf M5Stack anHauptprogramm Wenn Sie "Hiroshima" in ein anderes Gebiet ändern, können Sie die Niederschlagsmenge in diesem Gebiet ermitteln.
/var/www/html/rain.php
<?php
mb_language("Japanese");//Spracheinstellung verarbeiten
mb_internal_encoding("UTF-8");//Zeichencode-Spezifikation
date_default_timezone_set('Asia/Tokyo');//Zeitzone einstellen
$url = "http://www.data.jma.go.jp/obd/stats/data/mdrr/pre_rct/alltable/pre1h00.h
tml";
//Laden einer Webseite
$contents= file_get_contents($url);
//Zeichencode-Konvertierung
$contents_utf = mb_convert_encoding($contents,"UTF-8","auto");
//Extrahiert den Teil, der von der angegebenen Zeichenfolge eingeschlossen ist.
$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) ;//$Finden Sie heraus, wo startString angezeigt wird
$startPoint = $startPoint + mb_strlen($startString);//Startposition
//echo $startPoint;
//echo"";
$endPoint = mb_strpos($contents_utf,$endString,$startPoint );//$endString ist der nächste
Finden Sie heraus, wo es erscheint
//echo $endPoint;
//echo"";
$length = $endPoint - $startPoint;//Finden Sie die Länge der Zeichenfolge.
$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);
?>
Shell-Skript zum Ausführen von PHP
/var/www/html/cron.php
#!/bin/sh
/usr/bin/php /var/www/html/rain.php
PHP-Ausführungsergebnis
/var/www/html/index.html
0.0 mm
GET Time
09:30:02
Stellen Sie sicher, dass Sie es in Ihrem Browser sehen können.
Automatische Starteinstellung (in diesem Beispiel wird stündlich die Niederschlagsmenge ermittelt)
*/60 * * * * root sudo sh /var/www/html/cron.sh
Programmierung auf der M5Stack-Seite
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"); //IP-Adresse von 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); //Von Himbeer-Pi`index.html`Intervall zu erhalten (Millisekunden)
}
Recommended Posts