[PYTHON] Die Niederschlagsdaten der Meteorologischen Agentur kratzen und auf M5Stack anzeigen

Überblick

IMG_9811.JPG

Was vorzubereiten?

Umgebung

(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

Vorbereitung

Beispiel) Naka-ku, Stadt Hiroshima * Ich arbeite von Hiroshima aus スクリーンショット 2020-09-23 9.57.37.png

Programmierung

Hauptprogramm 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. スクリーンショット 2020-09-23 9.37.08.png

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)
}

wichtiger Punkt

Versuchen Sie es mit

Recommended Posts

Die Niederschlagsdaten der Meteorologischen Agentur kratzen und auf M5Stack anzeigen
Laden Sie die Winddaten der Meteorological Agency herunter
Eine Geschichte darüber, wie man das Atomfeld (XML-Telegramm) der Meteorologischen Agentur mit einem Raspeltorte bekommt und twittert
Lesen Sie die GRIB2-Datei der Meteorological Agency auf pygrib
Ich analysierte die Rangkampfdaten des Pokemon-Schwertschilds und visualisierte sie auf Tableau
Verschrotten Sie den Zeitplan von Hinatazaka 46 und spiegeln Sie ihn in Google Kalender wider
Holen Sie sich Informationen von der Meteorological Agency und benachrichtigen Sie Slack über Wetterwarnungen in den 23 Bezirken von Tokio
[Persönliches Memo] Holen Sie sich Daten im Web und machen Sie daraus einen DataFrame
Laden Sie Daten mit einem Befehl und einer Aktualisierung auf s3 von aws hoch und löschen Sie die verwendeten Daten (unterwegs).
[Python] Vorsichtsmaßnahmen beim Erfassen von Daten durch Scraping und Einfügen in die Liste
Ich habe versucht, die Daten des Laptops durch Booten unter Ubuntu zu retten
Scraping der Gewinndaten von Zahlen mit Docker
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
Daten Langling PDF über den Ausbruch der Influenza durch das Ministerium für Gesundheit, Arbeit und Soziales
Lesen Sie die CSV-Datei mit dem Jupiter-Notizbuch und schreiben Sie die Grafik übereinander
Scraping von IDWR-Bulletin-Daten nach Anzahl der Berichte pro Influenza-Fixpunkt und nach Präfektur
So erhalten Sie die aktuellen Wetterdaten und zeigen sie auf der GUI an, während Sie sie automatisch aktualisieren
Geben Sie die Bilddaten mit Flask of Python zurück und zeichnen Sie sie in das Canvas-Element von HTML
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Web-Scraping-Informationen zu Lachprogrammen und Benachrichtigungen über LINE
Datenanalyse basierend auf den Wahlergebnissen der Gouverneurswahl von Tokio (2020)
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
Festpunktbeobachtung bestimmter Daten im Web durch automatische Ausführung eines Webbrowsers auf dem Server (Ubuntu16.04) (2) -Web Scraping-
Verschrotten Sie die Liste der Go To EAT-Mitgliedsgeschäfte in der Präfektur Fukuoka und konvertieren Sie sie in CSV
Verschrotten Sie die Liste der Go To EAT-Mitgliedsspeicher in der Präfektur Niigata und konvertieren Sie sie in CSV
So geben Sie die im Django-Modell enthaltenen Daten im JSON-Format zurück und ordnen sie der Broschüre zu