• Erste Schritte
  • Hardware & GPIO
  • Projekte
  • Software
    • Webserver
  • Arduino & ESP8266
  • Hausautomatisierung
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Einstieg
    • Erste Schritte
      • Raspberry Pi 3 Einstieg - Starter KitWas brauche und wie starte ich? – Raspberry Pi Einstieg
    • Einrichtung
      • microsd_karte_menuRaspbian Betriebssystem auf eine SD Karte flashen – Einfach & Schnell
      • wlanbluetooth_menuWLAN und Bluetooth einrichten – Raspberry Pi 4
      • wifi_menuWLAN Stick installieren und einrichten – Alternative
      • bash_menuSSH Zugriff einrichten via Putty – Kommandozeilen Zugriff
      • rdp_menuRemotedesktop Verbindung aufbauen – Fernsteuerung
    • Einsteiger Projekte
      • Sinnvolles Raspberry Pi Zubehör
      • 15 Raspberry Pi Projekte für Anfänger
      • Ampelschaltung mit GPIOs
      • GPIOs mit Port Expander erweitern
      • Elektronischer Würfel
      • 13 tolle Projekte für Kinder und Jugendliche
      • Roboter selber bauen
      • In Visual Studio Code mit C++ programmieren
      • Wünsch dir ein Tutorial
    • Programmieren lernen
      • Teil 1: Einführung
      • Teil 2: GPIOs steuern
      • Teil 3: GUI erstellen
      • Teil 4: PWM
      • C# GUI Apps entwickeln
  • Hardware & GPIO
    • 50 der wichtigsten Raspberry Pi Sensoren und Module – Aufgelistet mit Links zu den TutorialsRaspberry Pi Sensoren
    • Beliebte Tutorials
      • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
      • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
      • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Funksteckdosen (433MHz) steuern
      • Raspberry Pi Relais ModulRaspberry Pi: Relais-Schalter per GPIO steuern
      • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
      • Amazon-Alexa-deutsch-auf-dem-Raspberry-Pi-installierenAmazon Alexa (Deutsch) auf dem installieren
      • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
      • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren
      • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
      • Raspberry Pi USB Boot per Stick oder SSD Festplatte einrichtenUSB Boot per Stick oder SSD Festplatte
      • Analog
        • Raspberry Pi MCP3008 ADCMCP3008: Am Raspberry Pi analoge Signale auslesen
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
        • Raspberry Pi PulsmesserRaspberry Pi Pulsmesser: Herzfrequenz messen
        • Joystick am Raspberry Pi benutzen (mit MCP3008)Joystick am Raspberry Pi benutzen (mit MCP3008)
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Drehregler - Rotary EncoderKY040 Drehregler als Lautstärkeregler für den Raspberry Pi
        • Easpberry Pi Soil SensorBodenfeuchtigkeit mit dem Raspberry Pi messen
        • Raspberry Pi KeypadRaspberry Pi Keypad anschließen – Codeschloss
        • Raspberry Pi door sensorÜberwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
        • Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)Raspberry Pi Waage selber bauen (mit Gewichtssensor HX711)
      • Funk
        • 71-M-PU7vML.-S3L1500-Raspberry Pi’s über 433 MHz Funk kommunizieren lassen
        • Remote Control Raspberry Pi 433Mhz Radio TransmitterRaspberry Pi mit 433Mhz Funksender fernsteuern
        • Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433Mhz)Raspberry Pi Funksteckdosen (433MHz) steuern
        • Raspberry Pi MiFlora - Xiaomi Pflanzensensor in OpenHAB einbindenMiFlora – Xiaomi Pflanzensensor ins Smart Home einbinden
        • Raspberry Pi RFID RC522 TüröffnerRaspberry Pi RFID RC522 Tags auslesen (NFC)
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation (2.4 GHz): Arduino & Raspberry Pi
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen
        • Raspberry Pi Xbox 360 Wireless ControllerRaspberry Pi mittels Xbox 360 Controller steuern
        • Raspberry Pi GSM Modul - Huawei Internet SticksRaspberry Pi GSM Modul – Mobiles Internet
        • Raspberry Pi Bluetooth DatentransferRaspberry Pi Bluetooth Datentransfer zum Smartphone
      • Infrarot & Laser
        • Raspberry Pi Infrarot FernbedienungRaspberry Pi: Per IR Remote Befehle ausführen
        • infrarot sharp distance senserInfrarot Abstandsmessung mit dem Raspberry Pi
        • Raspberry Pi Laser Lichtschranke für weite DistanzenRaspberry Pi Laser Lichtschranke für weite Distanzen
        • Infrarot Raspberry Pi FernbedienungInfrarot Steuerung einrichten
        • Raspberry Pi Infrarot Lichtschranke bauen und Geschwindigkeit messenRaspberry Pi Infrarot Lichtschranke bauen
        • Raspberry Pi Fotowiderstand HelligkeitssensorFotowiderstand (Helligkeitssensor) am Raspberry Pi
      • Temperatur & Navigation
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorRaspberry Pi: Luftfeuchtigkeit und Temperatur messen
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Raspberry Pi RTC Real Time ClockReal Time Clock Modul steuern
        • Rotation und Beschleunigung mit dem Raspberry Pi messenRotation und Beschleunigung mit dem Raspberry Pi messen
        • Raspberry Pi GPS ModulRaspberry Pi GPS Ortungs- / Navigationsgerät bauen
        • Raspberry Pi Kompass selber bauenRaspberry Pi Kompass selber bauen (HMC5883L)
        • Kontaktlosen Infrarot-Temperatursensor MLX90614 am Raspberry Pi auslesenMLX90614 – Kontaktlos Temperaturen messen
      • Displays
        • Raspberrry Pi HD44780 I2CHD44780 LCD Display per I2C ansteuern
        • Raspbery Pi LCD DisplayRaspberry Pi LCD Display: 16×2 Zeichen anzeigen
        • DisplayTipps & Tricks zum offiziellen 7″ Raspberry Pi Touchscreen
        • Raspberry Pi TouchscreenTestbericht zum 7″ Raspberry Pi Touchscreen Display
        • LCD Touch Display (3.2″) am Raspberry PiLCD Touch Display (3.2″) am Raspberry Pi
        • tft lcd touch displayRaspberry Pi LCD Touch Display Teil 2 – Anpassungen
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtRaspberry Pi LED Matrix – Projektübersicht
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige mit MAX7219 am Raspberry Pi (Anode)
        • Raspberry Pi Tablet Raspad TestberichtRaspberry Pi Tablet „Sunfounder RasPad“ Testbericht
      • Motoren & Sonstige
        • Raspberry Pi Stepper Motor Control with L293D / ULN2003ARaspberry Pi Schrittmotor ansteuern
        • Raspberry Pi Servo MotorRaspberry Pi Servo Motor Steuerung
        • Raspberry Pi PCA9685 mehrere Servos gleichzeitig steuernMehrere Servo Motoren per Raspberry Pi steuern
        • Raspberry Pi PIR Motion SensorBewegungsmelder PIR anschließen und steuern
        • How to use a Raspberry Pi Fingerprint Sensor for AuthenticationRaspberry Pi Fingerprint Sensor zur Authentifizierung nutzen
        • Raspberry Pi Akku AdapterRaspberry Pi mit Akkus/Batterien betreiben
        • Entfernung messen mit Ultraschallsensor HC-SR04 – Raspberry PiEntfernung messen mit Ultraschallsensor HC-SR04
        • Raspberry Pi WS2801B RGB LED Streifen anschließen und steuernWS2801 RGB LED Streifen anschließen und steuern
        • Raspberry Pi WS2812 RGB LED StripWS2812 RGB LED Streifen per Raspberry Pi steuern
        • Raspberry Pi Überwachungskamera LivestreamÜberwachungskamera Livestream einrichten
        • NoIRAufnahmen mit dem offiziellen Kamera Modul
        • Raspberry Pi Zero - establishing an Ethernet connection (ENC28J60)Raspberry Pi Zero – Ethernet Verbindung
  • Software
    • Webserver Installation
      • apache2_menu25Teil 1 – Apache2
      • php_menu25Teil 2 – PHP 5
      • mysql_menu25Teil 3 – MySQL
      • phpmyadmin_menu25Teil 4 – phpMyAdmin
      • ftp_menu25Teil 5 – FTP Server
      • dns_menu25Teil 6 – DNS Server via No-IP
      • home_menu25Homeverzeichnis ändern
      • share_25Samba Server: Dateien im Netzwerk teilen
      • nodejs_menu25Node.js Webserver installieren und GPIOs schalten
      • ssl_menu25SSL Zertifikat kostenlos mit Let’s Encrypt
      • wordpress_25Eigenen WordPress-Server einrichten
      • cloud-25Nextcloud auf dem Raspberry Pi installieren
    • Entertainment
      • led_menu25Raspberry Pi Ambilight für alle Geräte mit OSMC selber bauen
      • amazon_menu25Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
      • controller_25Raspberry Pi RetroPie – Spielekonsole selber bauen
      • kodi_menu25Mediencenter Raspbmc als SmartTV mit dem Raspberry Pi
      • android_25Android TV Box zum selber bauen
      • apple-2316234_640Raspberry Pi als AirPlay-Empfänger
      • jukebox_menu25Raspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.)
      • steam_25Steam Spiele streamen
      • minecraft_menu25Raspberry Pi Minecraft Server
      • youtube_25YouTube Live Streaming einrichten
      • qr-code-tutorials-raspberrypi.de_25Raspberry Pi QR / Barcode Scanner
    • Fernsteuerung
      • rdp_menuRaspberry Pi Remotedesktop Verbindung
      • ssh_menu25SSH Zugriff einrichten via Putty (Windows)
      • vnc_menu25Raspberry Pi mittels VNC fernsteuern
      • welcome_menu25SSH Terminal Begrüßung ändern
      • telegram1_menu25Telegram Messenger auf dem RaspberryPi
      • telegram2_menu25Mit Telegram Messenger Raspberry Pi steuern
      • bluet_menu25Raspberry Pi Bluetooth Datentransfer zum Smartphone
      • alexa_voice_25Eigenen Raspberry Pi Alexa Skill bauen
      • microphone_25Sprachsteuerung selber bauen
      • mqtt_25MQTT Broker/Client Funkkommunikation
      • mail_25Vom Raspberry Pi Emails senden
      • twitter_25Per Twitter Bot Nachrichten posten
    • Weitere
      • loggen_menu25Sensordaten mit ThingSpeak loggen und auswerten
      • mysql_datalogger25Per lokaler MySQL Datenbank zum Raspberry Pi Datenlogger
      • opencv_menu25OpenCV auf dem Raspberry Pi installieren
      • arduino_menu30tWiringPi installieren & Pinbelegung (Raspberry Pi)
      • radio_menu25Raspberry Pi als Radio Sendestation
      • win10_menu25Windows 10 IoT auf dem Raspberry Pi installieren
      • printer_25Drucker einrichten und per Knopfdruck Bilder drucken
      • gsm_menu25Raspberry Pi GSM Modul – Mobiles Internet (LTE, 3G, UMTS)
      • autostart_menu25Autostart: Programm automatisch starten lassen
      • machine-learning-25Raspberry Pi Machine Learning erlernen
  • Projekte
      • roboter_menu30tRoboter
        • Raspberry Pi Roboter ProjektRaspberry Pi Roboter Projektübersicht
        • Raspberry Pi Roboter Bausatz fertigTeil 1: Zusammenbau
        • Raspberry Pi Roboter - Linien folgenTeil 2: Linien folgen lassen
        • Raspberry Pi Roboter per Infrarot Fernbedienung steuernTeil 3: Per Infrarot Fernbedienung steuern
        • Raspberry Pi Roboter: Ultraschall AutopilotTeil 4: Automatisch Hindernissen ausweichen
        • Raspberry Pi Roboter der eigenen Stimme folgen lassenTeil 5: Der eigenen Stimme folgen lassen
        • Raspberry Pi Roboter mit Xbox 360 Controller fernsteuernTeil 6: Mit Xbox 360 Controller Roboter fernsteuern
        • Raspberry Pi Robot Arm 6DOF6-Gelenkigen Roboter Arm am Raspberry Pi betreiben (6 DOF)
      • led_menu30LED Matrix
        • Raspberry Pi LED MAX7219 Dot Matrix – ProjektübersichtMAX7219 LED Matrix – Projektübersicht
        • 8×8 LED Dot Matrix Parts8×8 LED Matrix – Zusammenbau und Installation
        • Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED MatrizenBibliothek für mehrzeilige m x n MAX7219 LED Matrizen
        • Graphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnenGraphiken auf mehrzeiligen Raspberry Pi LED Matrizen zeichnen
        • Pong auf MAX7219 Matrizen spielen (mit Joystick) – Raspberry PiPong auf MAX7219 Matrizen spielen (mit Joystick)
        • Snake auf Raspberry Pi MAX7219 Matrizen spielenSnake auf Raspberry Pi MAX7219 Matrizen spielen
        • 7 Segment Anzeige (Anode) mit MAX7219 MAX7221 und Raspberry Pi7 Segment Anzeige (Anode) mit MAX7219/MAX7221
        • Raspberry Pi 7 Segment Anzeige Kathode mit MAX7219Raspberry Pi: 7 Segment Anzeigen mit MAX7219 steuern (Kathode)
      • wetterstation_menu30Wetterstation
        • Raspberry Pi Wetterstation mit OpenHAB 2 bauenEigene Raspberry Pi Wetterstation mit OpenHAB 2 bauen
        • Raspberry Pi Luftfeuchtigkeit/Temperatur SensorLuftfeuchtigkeit und Temperatur messen
        • raspberry_pi_thingspeak_daten_loggenSensordaten mit ThingSpeak loggen und auswerten
        • Raspberry Pi BMP180 SensorRaspberry Pi und I2C Luftdrucksensor BMP180
        • Measuring Temperature with a Raspberry Pi Temperature Sensor (1-Wire)Raspberry Pi Temperatursensor (1-Wire): Temperatur messen
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Raspberry Pi Gas Sensor MQ-2Raspberry Pi Gas Sensor (MQ-X) konfigurieren und auslesen
      • arduino_menu30tArduino & ESP8266
        • ESP8266 Microcontroller BoardEinführung & Programmierung des ESP8266 NodeMCU Boards
        • Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten sendenRaspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden
        • ESP8266 NodeMCU Außenposten-Wetterstation für den Raspberry PiESP8266 Wetterstation Außenposten für den Raspberry Pi
        • Mit dem NodeMCU ESP8266 433MHz Funksteckdosen steuernMit dem NodeMCU ESP8266 433MHz Funksteckdosen steuern
        • ESP8266 NodeMCU HD44780 LCD Display per I2C steuernNodeMCU ESP8266: HD44780 LCD Display per I2C steuern
        • ESP8266 Grafikdisplay: Am SSD1306 OLED per I2C Bilder & Text anzeigen
        • ESP8266 Google Maps API RoutenplanerESP8266 Google Maps API Routenplaner auf LCD anzeigen
        • 2000px-Arduino_Logo.svgRaspberry Pi und Arduino – Einführung
        • arduino unoArduino und Raspberry Pi miteinander kommunizieren lassen
        • Funkkommunikation zwischen Raspberry Pi's und Arduinos (2.4 GHz)Funkkommunikation zwischen Raspberry Pi’s und Arduinos (2.4 GHz)
        • NodeMCU: ESP8266 mit Solarpanel und Akku mit Strom versorgenNodeMCU: ESP8266 mit Solarzelle und Akku mit Strom versorgen
        • ESP8266 Access Point: Günstigen Wlan Repeater selber bauenESP8266 Access Point: Günstigen Wlan Repeater selber bauen
      • Mini Projekte
        • Raspberry Pi Gewächshaus automatisch selber bauenAutomatisches Raspberry Pi Gewächshaus selber bauen
        • Eigene Raspberry Pi Gartenbewässerung mit Webseite bauenEigene Gartenbewässerung mit Webseite bauen
        • Raspberry Pi Radio StationRaspberry Pi als Radio Sendestation verwenden
        • Raspberry Pi Radio ReceiverRaspberry Pi als Radioempfänger benutzen (Autoradio, Car PC)
        • spotify-logo-primary-horizontal-dark-background-rgbRaspberry Pi als Jukebox (Spotify, Soundcloud, TuneIn, uvm.) – Online Radio
        • Raspberry Pi RetroPie Guide - SNES Classic Spielekonsole selber bauenRaspberry Pi RetroPie Guide – SNES Spielekonsole bauen
        • Android + Raspberry Pi: Funksteckdosen App BedienungRaspberry Pi + Android/iOS: Funksteckdosen per App schalten
        • Indirekte Deckenbeleuchtung selber bauen mit farbigem LED LichtIndirekte Deckenbeleuchtung selber bauen mit farbigem LED Licht
  • Sonstiges
    • Wünsch dir ein Tutorial
    • News
    • Reviews
      • Pi Cap – Kapazitives Raspberry Pi Erweiterungsboard
      • Raspberry Pi Tablet „Sunfounder RasPad“ – Testbericht & Einrichtung
      • Testbericht zum 7″ Raspberry Pi Touchscreen Display
      • CrowPi 2 Testbericht: Laptop & Lern-Kit für Kinder
      • Daten auf dem Wio Terminal LCD Screen anzeigen
    • Raspberry Pi Zero
      • Offizielles 5$ Raspberry Pi Zero Modul vorgestellt
      • Raspberry Pi Zero – Ethernet Verbindung herstellen (ENC28J60)
      • Raspberry Pi: WS2801 RGB LED Streifen anschließen und steuern
  • Hausautomation
    • OpenHAB
      • steckdose_25Sonoff S20 Wifi Steckdose steuern
      • wireless_25Funksteckdosen (433 MHz) schalten
      • schalter_25Relais steuern (Rollladen, Lichter, etc.)
      • wetterstation_menu30Wetterstation mit OpenHAB 2 bauen
      • ws28_25WS28xx RGB LED Streifen steuern
      • touchscreen_25Touchscreen Panel bei Näherung aktivieren
      • mqtt_25MQTT Datenabfrage: Raspberry Pi an ESP8266
      • spotify_25Remote Spotify Player im Smart Home
      • heizung_25eQ-3 Thermostat im Smart Home
    • Einführung
      • Raspberry Pi Smart Home OpenHAB installierenOpenHAB installieren & konfigurieren
      • Home Assistant auf dem Raspberry Pi – Erste Schritte
    • ESP8266 NodeMCU
      • esp8266_25Einführung & Programmierung
      • arduino_25ESP8266: Arduino IDE installieren
      • lcd_25NodeMCU HD44780 LCD
      • battery_25Batteriebetrieb via Deep-Sleep
      • wifi_menuPer WLAN Daten senden
      • wetterstation_menu30Wetterstation Außenposten
      • maps_25Google Maps Routenplaner
      • wireless_25NodeMCU Funksteckdosen steuern
      • mail_25Vom NodeMCU Emails versenden
      • rgb_25WS2812B LEDs am Smartphone steuern
      • solar_25ESP8266 Stromversorgung mit Solarzelle
    • Überwachung
      • Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi
      • Raspberry Pi: Überwachungskamera Livestream einrichten
      • mailbox_25Briefkasten Sensor – Email Benachrichtigung bei neuer Post
      • Raspberry Pi Überwachungskamera mit Webcam betreiben
      • Überwachung von Fenstern und Türen mit dem Raspberry Pi und Reed-Relais
      • ESP32 Cam Livestream Tutorial für Kamera Modul
    • Raspberry Pi + Android: Benachrichtigungen von Bewegungsmelder
    • Raspberry Pi + Android/iOS: Funksteckdosen per App schalten
    • Raspberry Pi + Android: Schwenkbarer Kamera-Livestream
      • Smart Home
        • Amazon Alexa (Deutsch) auf dem Raspberry Pi installieren
        • Raspberry Pi Funksteckdosen (433MHz) steuern – Tutorial
        • Raspberry Pi Sprachsteuerung selber bauen (Hausautomatisierung)
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Arduino & ESP8266»ESP8266 Wetterstation Außenposten für den Raspberry Pi

ESP8266 Wetterstation Außenposten für den Raspberry Pi

Facebook Twitter LinkedIn Tumblr Email Reddit
Wetterstation Projekt - realisierbar mit dem Raspberry Pi, ein paar Sensoren und einem Display.
Teilen
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

Um Wetterdaten von mehreren Positionen zu sammeln und diese zu speichern ist es nicht geschickt viele einzelne Raspberry Pi’s zu nehmen. Besser ist es einen Raspberry Pi als Herzstück zu nehmen und mit dem ESP8266 Wetterstationen-Außenposten zu bilden, die Daten an den zentralen Pi senden.

Das hat den Vorteil, dass jede kleine NodeMCU ESP8266 Wetterstation noch einmal weniger Strom als ein Raspberry Pi (Zero) braucht, weshalb diese auch mittels Akku länger durchhalten. Bei einer Stromversorgung über ein Solarpanel ist diese Lösung auch definitiv die bessere.

Wie man den Raspberry Pi Server und den Code für die ESP8266 Wetterstation für den Außenbereich aufspielt, wird in diesem Tutorial gezeigt. Darüber hinaus können wir anschließend die gesammelten Daten über den Browser visualisiert in einem Diagramm ansehen.

Zubehör

Dieses Tutorial besteht aus zwei Teilen, wobei der Pi nichts weiter als eine WLAN Verbindung braucht. Beim Model 3 ist der Adapter schon auf der Platine, ältere Modelle benötigen einen Wifi Stick.

Folgendes Zubehör habe ich verwendet:

  • Raspberry Pi 3
  • mind. 1x ESP8266 (bspw. NodeMCU ESP-12)
  • DHT22 Temperatur / Leuftfeuchte Sensor
  • 10kΩ Widerstand
  • Breadboard

Ich habe sowohl den DHT11 als auch den DHT22 ausprobiert und der Vorteil des weißen DHT22 ist, dass dieser u.a. genauere Werte zur Temperatur und Luftfeuchtigkeit sowie ebenfalls Nachkommastellen liefert. Der blaue DHT11 ist allerdings aufgrund des nicht so großen Preisunterschied zum DHT22 auch nicht zu empfehlen. Dennoch können beide mit diesem Tutorial genutzt werden.

Daneben können auch andere Sensoren wie bspw. der BMP180 Luftdrucksensor o.ä. zum Auslesen angeschlossen werden. Da es für diese Sensoren ebenfalls Module gibt, ist die Inbetriebnahme sehr einfach, wenn die Basics dieses Tutorials verstanden wurden (im Speziellen die kabellose Verbindung zum Raspberry Pi).

Zusätzlich kann eine Powerbank o.ä. genutzt werden, womit der ESP auch ohne feste Stromversorgung Daten liefern kann. In einem späteren Tutorial gehen wir auf die Stromversorgung  über ein Solarpanel ein.

 

MySQL Datenbank erstellen – Wetterdaten-Tabelle

Als Datenspeicher nehmen wir eine MySQL Datenbank auf dem Raspberry Pi. Falls du noch keinen MySQL Server installiert hast, kannst du dies wie hier beschrieben tun:

sudo apt-get update
sudo apt-get install mysql-server --yes

Nun musst du das Passwort eingeben, bestätigen und Neustarten. Das Passwort brauchen wir gleich noch.

Nach dem Neustart verbinden wir uns mit der MySQL Konsole:

mysql -u root -p

Gib das Passwort ein und danach folgenden Befehl, womit die Datenbank sowie eine Tabelle für die Temperaturwerte erstellt wird:

CREATE DATABASE weather_station;
USE weather_station;
CREATE TABLE temperature (
 id int NOT NULL AUTO_INCREMENT,
 sender_id VARCHAR(20),
 datum DATETIME,
 temp FLOAT,
 humidity FLOAT,
 PRIMARY KEY(id)
);

exit;

Mehr Informationen zum MySQL Datenlogger am Raspberry Pi findest du ebenfalls in einem vorherigen Tutorial, wo wir den DHT22 Sensor direkt am Raspberry Pi per Python ausgelesen haben.

 

 

Node.JS Datenserver auf dem Raspberry Pi

Um das folgende Programm nutzen zu können, muss auf deinem Raspberry Pi ein Node.JS Server installiert sein. Falls dies noch nicht der Fall ist, installiere es bitte zunächst wie im verlinkten Tutorial erklärt ist.

Anschließend können wir uns die Dateien aus Github herunterladen:

sudo apt-get install git
git clone https://github.com/tutRPi/Raspberry-Pi-ESP8266-Weather-Logger
cd Raspberry-Pi-ESP8266-Weather-Logger

Darin müssen wir zunächst die benötigten Abhängigkeiten mit dem Node Package Manager installieren:

npm install

Öffne nun die Datei „index.js“ und gib dein vorher gewähltes Passwort für root an (Zeile 11):

sudo nano index.js

Gespeichert wird mit STRG+O, geschlossen wird mit STRG+X.

 

Bevor wir nun den Webservice starten, finden wir noch die IP Adresse des Raspberry Pi’s im lokalen Netzwerk heraus. Die brauchen wir auch gleich beim Einstellen des ESP8266 NodeMCU.
Gib dazu folgendes in die Konsole des Raspberry Pi’s ein:

ifconfig

Je nachdem wie der Pi mit dem Netzwerk verbunden ist (bei mir ist es per onBoard Wifi Adapter), sieht es so aus.

pi@raspberrypi:~/Raspberry-Pi-ESP8266-Weather-Logger $ ifconfig

wlan0 Link encap:Ethernet HWaddr b8:27:eb:6f:37:fd
 inet addr:192.168.1.80 Bcast:192.168.1.255 Mask:255.255.255.0
 inet6 addr: fe80::5c5d:4000:b4d5:bb75/64 Scope:Link
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
 RX packets:103415 errors:0 dropped:40 overruns:0 frame:0
 TX packets:136597 errors:0 dropped:0 overruns:0 carrier:0
 collisions:0 txqueuelen:1000
 RX bytes:5320723 (5.0 MiB) TX bytes:115360614 (110.0 MiB)

Unter „inet addr“ findest du die lokale IP-Adresse (bei mir 192.168.1.80). Darüber wird gleich auch der Abruf über den Browser stattfinden.

Zunächst starten wir allerdings den Node.JS Server. Dies geht ohne Root-Rechte, solange ein Port größer als 1000 genommen wird. In dem Beispiel habe ich den Port 8000 genommen. Der Standardport ist 80, welcher automatisch vom Browser gewählt wird, sofern keiner angegeben wurde. Möchtest du diesen ändern, kannst du dies durch Bearbeiten der „index.js“ Datei.
Gestartet wird mit:

node index.js

Im anderen Tutorial habe ich eine Möglichkeit aufgezeigt, wie man sein NodeJS Projekt auch dauerhaft (Autostart) verfügbar machen kann.

Gehe nun (von einem PC im gleichen Netzwerk) auf die Seite (IP anpassen): „http://192.168.1.80:8000“

Das Diagramm sollte erscheinen, auch wenn noch keine Daten sichtbar sind. Ich habe für die Visualisierung das Javascript Package VisJS genutzt, was viele Funktionen hat und auch individuell angepasst werden kann. So wäre es bspw. auch möglich die Daten später live anzuzeigen, sobald diese von den ESP8266’s gesendet werden.

 

Einrichten des ESP8266 Wetterstation Außenposten

Falls du noch keine / wenig Erfahrung mit dem NodeMCU, der Programmiersprache Lua und dem ESPlorer Tool hast, empfehle ich zunächst dieses Tutorial anzusehen, um so einen besseren Überblick zu bekommen:

Einführung & Programmierung des ESP8266 NodeMCU Boards

Wir beginnen mit der Verkabelung. Dafür wird der DHT Sensor an 3.3V und GND wie folgt angeschlossen. Der Datenpin wird zum einen über den Widerstand an die 3.3V Spannung angeschlossen und ebenfalls an den GPIO2 (Beschriftung auf NodeMCU Board: D4):

 

Das Senden und Empfangen bzw. der allgemeine Datenaustausch zwischen Raspberry Pi und ESP8266 wurde auch bereits vorher gezeigt.

Als erstes erstellen wir nun die NodeMCU Custom Firmware mit folgenden Modulen:

dht,file,gpio,http,net,node,sjson,tmr,uart,wifi

Um die Firmware auch einfach direkt herunter zu laden, habe ich sie hier auch bereit gestellt (ebenso im Github Repository vorhanden). Spiele die Firmware gemäß diesem Tutorial auf.

Nun öffne den ESPlorer, verbinde dich mit dem ESP und erstelle eine Datei namens „dht_esp8266.lua“ mit folgendem Inhalt:

Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
local SSID = "WIFI-NAME"
local SSID_PASSWORD = "WIFI-PASSWORD"
local SIGNAL_MODE = wifi.PHYMODE_N
DHT_PIN = 4
INTERVAL = 30 -- seconds
RASPBERRY_PI_URL = "http://192.168.1.80:8000/esp8266_trigger"
SERVER_PASSWORD = "tutorials-raspberrypi.de"
 
 
function wait_for_wifi_conn ( )
   tmr.alarm (1, 1000, 1, function ( )
      if wifi.sta.getip ( ) == nil then
         print ("Waiting for Wifi connection")
      else
         tmr.stop (1)
         print ("ESP8266 mode is: " .. wifi.getmode ( ))
         print ("The module MAC address is: " .. wifi.ap.getmac ( ))
         print ("Config done, IP is " .. wifi.sta.getip ( ))
      end
   end)
end
 
function transmit_msg(data)
    -- send http request to Raspberry Pi
    ok, json = pcall(sjson.encode, data)
    if ok then        
        http.post(RASPBERRY_PI_URL,
            'Content-Type: application/json\r\n',
            json,
            function(code, data)
                if (code < 0) then
                    print("HTTP request failed")
                --else
                --    print(code, data)
                end
        end)
    else
        return false
    end
end
 
function readDHTValues()
    status, temp, humi, temp_dec, humi_dec = dht.read(DHT_PIN)
    if status == dht.OK then
        return {temperature= temp, humidity= humi}    
    else
        return false
    end
end
 
function main()
    for i=1,10 do
        data = readDHTValues()
        if data ~= false then
            
            data["sender_id"] = wifi.ap.getmac()
            data["password"] = SERVER_PASSWORD
        
            transmit_msg(data)
            break
        end
    end
end
 
-- Configure the ESP as a station (client)
wifi.setmode(wifi.STATION)
wifi.setphymode(SIGNAL_MODE)
--wifi.sta.config(SSID, SSID_PASSWORD)
wifi.sta.config {ssid=SSID, pwd=SSID_PASSWORD}
wifi.sta.autoconnect(1)
 
-- Hang out until we get a wifi connection before the httpd server is started.
wait_for_wifi_conn ( )
 
 
tmr.alarm(2, INTERVAL * 1000, tmr.ALARM_AUTO, function ()
    main()
end)
 

Hier musst du den Namen und das Passwort deines WLAN Netzwerks, sowie die IP Adresse des Raspberry Pi’s entsprechend angeben. Ebenso habe ich ein Passwort definiert, welches beim Aufruf an den Node.JS Server mit angegeben wird, sodass nicht jeder innerhalb des Netzwerks Daten senden kann. Solltest du das Passwort ändern, so musst du dies ebenfalls in der „index.js“ Datei auf dem Raspberry Pi.

Speichere die Datei und übertrage sie mittels „Save to ESP“.

 

Damit diese Datei nun bei jedem Neustart aufgerufen wird, erstellen wir eine zweite „init.lua“ Datei mit folgendem Inhalt, welche nach dem Speichern mittels „Save As init“ im linken Bildschirm des ESPlorer übertragen wird:

Lua
1
dofile("dht_esp8266.lua");

Die beiden Dateien sind auch noch einmal im oben verlinkten Github Verzeichnis im Ordner „esp8266“ enthalten.

 

Aufruf per Weboberfläche

Zunächst solltest du etwas Warten, bis einige Daten gesendet wurden. Je nach Intervall (ich habe 30 Sekunden voreingestellt), solltest du wenigstens 5 Minuten warten.  Hol dir einen Kaffee, der Großteil ist geschafft 😉

Danach kannst du einfach die URL von vorhin erneut aufrufen bzw. aktualisieren und solltest nun bereits Daten angezeigt bekommen:

ESP8266 wetterstation VisJS

In diesem Diagramm repräsentiert jeder Datenpunkt eine Messung. Ich habe lediglich einen ESP8266 verwendet, aber VisJS kann auch so eingestellt werden, dass bspw. mehrere Werte gruppiert oder übereinander dargestellt werden. Die individuellen Veränderungen dabei sind jedem frei vorzunehmen. Du kannst dazu z.B. das Repository in GitHub forken und verändern. Die HTML Template Datei befindet sich unter „views/index.pug“, wobei die PugJS Template Engine genutzt wird (falls dich das Format wundert).

Jedes Gerät im Netzwerk kann den Raspberry Pi Server ansprechen. Falls auch Geräte außerhalb deines Heimnetzwerks dies dürfen sollen, musst du in deinem Router „Portforwarding“ für die entsprechende IP und Port freischalten. Daneben solltest du aber einige Sicherheitskriterien erfüllen (Standard Passwort ändern, Software aktuell halten, etc.)

Falls du dies vor hast, ist ein dynDNS Server sehr gut dafür geeignet.

.lua arduino DHT11 DHT22 ESP-01 ESP-12 ESP-32 ESP8266 Hausautomation Hausautomatisierung Internet der Dinge Internet of Things IoT Luftdruck Luftfeuchte mysql Node.js NodeMCU python temperatur temperatur messen temperatursensor webserver Wetterstation wifi
Teilen Facebook Twitter Pinterest LinkedIn Tumblr Email
Vorheriger BeitragRaspberry Pi als AirPlay-Empfänger verwenden
Nächster Beitrag Monatelanger ESP8266 Batteriebetrieb mittels Deep-Sleep

Ähnliche Beiträge

Test & Vergleich beliebter WLAN Indoor Überwachungskameras

Türspion Kamera selber bauen und ins Smart Home integrieren

Smart Home: Notifications per Telegram Bot verschicken (Home Assistant)

SwitchBot Curtain 3: Vorhänge und Gardinen im Smart Home automatisieren

111 Kommentare

  1. JD am 29. August 2017 12:39

    Hallo Felix,
    erst einmal danke für deine tollen Tutorials. Die Wetterstation ist genau das was ich gesucht habe und mein erster ESP8266 ist schon auf dem weg.
    Da ich in Hardware-Fragen allerdings ein kompletter Anfänger bin hoffe ich das du mir hier weiterhelfen kannst:
    – Kann man den ESP8266 auch mit einer Batterie (nicht Akku) betreiben, also z.B. hiermit:
    http://ebay.de/itm/371379409607 (wenn ja, was für ein Batteriehalter muss es sein und wo/wie muss ich
    ihn anschließen?)
    – Wenn ich anstatt des „nackten“ DHT-22 ein Board benutze spare ich mir doch den Widerstand,
    oder ? (z.B. ebay.de/itm/201763504100)
    Außerdem habe ich noch eine Frage zur Programmierung.
    Wenn ich es richtig gesehen habe benutzt du für das Intervall einen einfachen Timer. Es gibt beim ESP8266 doch einen sog. DeepSleep Modus. Hat dieser irgendwelche Nachteile oder wird er implizit benutzt?
    Wegen den Batterien suche ich natürlich nach dem energieeffizientesten Lösung ?
    Danke schon mal für deine Hilfe!
    Gruß
    JD

    Antworten
    • Felix am 29. August 2017 13:19

      Du kannst natürlich auch Batterien benutzen, aber solltest dazu einen LM2596 o.ä. nutzen (dazu habe ich bereits ein Tutorial für den Raspberry Pi veröffentlicht). Auch das DHT Board ist natürlich kompatibel.
      Auf Deep Sleep wird im nächsten Tutorial eingegangen 😉

      Antworten
      • JD am 29. August 2017 14:21

        Perfekt!
        Freue mich schon auf das nächste Tutorial.
        Danke

      • Marvin am 26. Mai 2020 18:34

        Hallo, wird es villeicht nochmal ein Tutorial geben wie man sowas mit Batterien umsetzt? Ich bin bei dem Thema neu und kenne mich deshalb leider noch so gut wie garnicht aus. 🙂

      • Felix am 26. Mai 2020 20:20

        Ich habe etwas mit einem Solarpanel (+Batterie) geplant 🙂

  2. Philip am 2. September 2017 23:22

    Hey Felix, das NodeJS Script scheint nicht korrekt zu funktionieren. Die Luftfeuchtigkeit/Humidity wird nicht Angezeigt.

    Antworten
    • Christian am 25. September 2017 21:57

      Hallo,
      habe das gleiche Problem. Haben ich dort was falsch gemacht? In der MySQL Datenbank sind die Daten vorhanden.

      Antworten
  3. Philipp am 5. September 2017 15:22

    Hi Felix,
    ist es möglich die Daten direkt auf thingspeak.com zu laden ohne auf dem Raspberry eine Datenbank zu haben? Ich habe einen DHT22 welcher an der RPI angesteckt ist und Daten direkt auf thingspeak.com läd, hierzu hattest du ja schon ein Tutorial gemacht.
    Jetzt hätte ich gerne in jedem Raum die Klimaüberwachung Anbindung per Funk oder WLAN ist egal nur Batteriebetrieben soll alles gehen. Was empfiehlst du hier?

    Antworten
    • Uta krope am 10. September 2017 18:10

      Schau mal auf http://sloiot.pressbooks.com

      Antworten
    • Felix am 13. September 2017 20:24

      Ja, klar. Das ist analog zu diesem Tutorial (nur das thingspeak anstelle von RPi IP aufgerufen wird).

      Antworten
  4. Dirk am 5. September 2017 16:38

    Hey Felix

    Wie kann ich eine Fehleranalyse machen?
    Ich bekomme zwar ein Html Seite mit Tabelle angezeigt aber ohne Daten.
    Wie kann ich herausfinden ob es am ESP8266 oder am RPi liegt?

    Antworten
    • Felix am 13. September 2017 20:37

      Schließ den ESP per USB an und lasse dir die prints z.B. per ESPlorer ausgeben.

      Antworten
  5. Juergen am 8. September 2017 16:04

    Hallo Felix,
    bei mir beendet sich der Webserver sobald ich die entsprechende Adresse des Raspberry im Browser aufrufe, mit folgenden Meldungen:
    /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:36
    if (error) throw error;
    ^

    Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by serv er; consider upgrading MariaDB client
    at Handshake.Sequence._packetToError (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/ mysql/lib/protocol/sequences/Sequence.js:52:14)
    at Handshake.ErrorPacket (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/pr otocol/sequences/Handshake.js:103:18)
    at Protocol._parsePacket (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/pr otocol/Protocol.js:279:23)
    at Parser.write (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Pa rser.js:76:12)
    at Protocol.write (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/ Protocol.js:39:16)
    at Socket. (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/Conne ction.js:103:28)
    at emitOne (events.js:96:13)
    at Socket.emit (events.js:188:7)
    at readableAddChunk (_stream_readable.js:176:18)
    at Socket.Readable.push (_stream_readable.js:134:10)
    ——————–
    at Protocol._enqueue (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protoc ol/Protocol.js:145:48)
    at Protocol.handshake (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/proto col/Protocol.js:52:23)
    at Connection.connect (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/Conne ction.js:130:18)
    at Connection._implyConnect (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib /Connection.js:461:10)
    at Connection.query (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/Connect ion.js:206:8)
    at /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:34:16
    at Layer.handle [as handle_request] (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/e xpress/lib/router/layer.js:95:5)
    at next (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/route.js:1 37:13)
    at Route.dispatch (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/ route.js:112:3)
    at Layer.handle [as handle_request] (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/e xpress/lib/router/layer.js:95:5)

    Was ist falsch bei mir ?

    Antworten
    • Rainer am 27. Oktober 2017 14:20

      Hallo Juergen,
      das gleich Problem habe ich auch. Ich habe grade mit dem Projekt begonnen und muss mich erst einmal ein bisschen damit beschäftigen. Aber vielleicht gibt’s ja schon einen Hinweis…
      Ich habe übrigens Raspbian Stretch installiert. Ich vermute das Problem liegt hier, es gibt ja ehe schon so einige Abweichungen.

      Antworten
      • Alex am 25. November 2017 11:41

        Ich habe das selbe Problem…. Gibt’s eine Lösung?
        MfG

    • Thomas am 19. Dezember 2017 11:33

      Hallo Zusammen,

      Eine Lösung zu diesem Problem würde mich auch brennend interessieren. Habe ebenfalls Stretch drauf. Mit dieser Software geht vieles was du in deinen Tutorials schön übersichtlich aufbereitet hast nicht mehr :/
      Mysql wird nicht mehr unterstützt . Es wurde auf mariadb gewechselt, auch gab es beim nodejs Server Probleme bzgl. der npm installation. Mariadb lässt sich ja genauso programmieren wie du es oben beschrieben hast.
      Muss bei Verwendung der mariadb die index.js angepasst werden? Man hangelt sich im Moment von Problem zu Problem und verliert langsam den überblick, was noch geht und was nicht.
      Würde das echt gern unter Debian 9.1 zum laufen bekommen, aber für mich als Anfänger sind da im Moment zu viele Hürden bzgl. nicht funktionierender Updates ,Upgrades und nötiger Pakete.

      VG Thomas

      Antworten
    • Simon Wilbertz am 27. Dezember 2017 16:44

      Genau das selbe Problem! Bis dahin tolle Anleitung, auch wenn es einige Schwierigkeiten durch das Stretch gab. Der HTTP request vom ESP wird bei mir mit dem Fehlercode 403 abgewiesen. Auch bei mir beendet sich der Webserver, wenn ich ihn über die IP Adresse aufrufe. Gibt es Abhilfe?

      Antworten
      • Simon Wilbertz am 27. Dezember 2017 18:36

        Problem gelöst, Dank der Antwort von Kai:
        mittels:
        mysql -u root -p
        mit der MySQL installation verbinden. Dann einen neuen USER anlegen:
        CREATE USER ‚benutzer’@’localhost‘ IDENTIFIED BY ‚passwort‘;
        Diesem User dann die vollen Rechte für die weather_station DB zuweisen:
        CREATE DATABASE ‚weather_station‘;
        Benutzernamen und Passwort dann in die index.js auf dem Raspberry eintragen, Server starten und schon funktioniert es.

      • Simon Wilbertz am 29. Dezember 2017 12:52

        Fehler: Rechtevergabe für den neu angelegten MySQL Nutzer wird mit:
        GRANT ALL PRIVILEGES ON ‚Datenbankname‘ . * TO ‚benutzer’@’localhost‘;
        durchgeführt!

  6. Kai am 8. September 2017 20:00

    Hi Felix 🙂
    Erst mal vorweg: Es ist wieder ein klasse Tutorial. 🙂
    Ich hätte dazu allerdings auch noch ein paar Anmerkungen.

    Die folgenden Dinge sind da sicher meiner fehlenden Erfahrung mit LUA geschuldet, aber da ich mal davon ausgehe das Du da viel mehr Erfahrung hast… 😉

    1.) Im Zuge der gesicherten Übertragung von Daten bietet der ESP ja auch noch ein crypt Modul um die Daten selber auch verschlüsselt zu übertragen.
    (OK – hier vielleicht nicht ganz so wichtig, aber es könnten ja auch mal andere Dinge übertragen werden)
    2.) Für den Batteriebetrieb soll es ja möglich sein den ESP zwischen den Messzyklen „schlafen“ zu legen um Strom zu sparen… (WIFI frist da doch recht viel) – Wie baut man das im LUA ein?
    3.) Ich habe bereits einen Apachen mit SQL und PHP am laufen… Wie müsste denn der LUA Transmit der Daten lauten um dort direkt ein PHP Script mit den Daten zu versorgen ?

    Als weiteren Hinweis… Ich habe es auch mal versucht das ganze statt auf „Jessie“ auf dem neuen Rasbian „Stretch“ zu installieren, nur leider gibt es da Probleme, da dort statt dem MySQL Server die MariaDB default installiert wird.
    Normal ist die zwar mit der MySQL Version Befehls kompatible, aber es gibt dort z.B. normal kein Datenbank Root Passwort!
    Man muss dort sich erst mit
    sudo su
    zum Root machen um dann mit
    mysql -u root
    in die Datenbank zu kommen… Verständlicherweise funtioniert dann auch Dein Server Script im NodeJS nicht…
    Ich hab den Ansatz aber nicht weiter verfolgt – man müsste dann wohl in der Datenbank einen zweiten User mit vollen root Rechten einrichten und diesen dann in Deinem Script eintragen.)

    Und als letzten Punkt hätte ich da auch noch einen Interessanten Kapazitiven Bodenfeuchtigkeits Sensor, der sicher auch Top mit dem ESP zusammen arbeiten könnte…
    https://www.amazon.de/Kapazitiver-Feuchtigkeits-Temperatursensor-Interface-Schaltausgang/dp/B01MTDN6O6/ref=sr_1_1?ie=UTF8&qid=1505330999&sr=8-1

    Grüssle Kai

    Antworten
    • Felix am 13. September 2017 21:32

      1) Bei Interesse kann ich dazu mal ein gesondertes Tutorial machen.
      2) Habe ich bereits umgesetzt: Monatelanger ESP8266 Batteriebetrieb mittels Deep-Sleep
      3) Die Übertragung ist immer gleich – ob an einen NodeJS Server, Apache oder Webseite: Raspberry Pi + ESP8266 NodeMCU: Per WLAN Daten senden

      Antworten
  7. Tobias am 24. September 2017 10:28

    Hallo,
    wow ich bin begeistert, genau so etwas suche ich schon lange.
    Die Sensoren für meine Raspberry Wetterstation mit den ELV Funksensoren wird langsam zu teuer *lach*.
    Meine Frage, wenn ich BME280 Sensoren verbauen möchte, muss dafür viel angepasst werden?
    Die Firmware müsste ich anklicken, um sie im Modul zu haben, beim Aufruf muss auf i2c eingestellt werden und beim abfragen müsste ich dann die BME280 spezifische abfrage verwenden.
    Auf anderen Seiten habe ich das schon gefunden, nur statt LUA verwenden die ArduinoIDE kann ich die Begriffe davon übernehmen?

    Antworten
    • Felix am 24. September 2017 11:36

      Nein, das ist nicht viel Aufwand. Du kannst dir auf der Doku Seite die Beispiele des BMP180 ansehen.

      Antworten
  8. Philip am 13. Oktober 2017 21:44

    Hallo Felix,

    benötige ich eine init.lua?

    Antworten
    • Felix am 13. Oktober 2017 21:45

      Jein: Wenn du willst, dass etwas nach dem Neustart ausgeführt werden soll (bspw. das eigentliche Skript gestartet werden soll), dann ja.

      Antworten
      • philip am 15. Oktober 2017 13:20

        Ich hatte deinen Hinweis im Tutorial zur init.lua vorher leider nicht gesehen, damit klappt nun alles wunderbar =) vielen Dank

  9. philip am 15. Oktober 2017 12:34

    Ich erhalte nun folgenden Fehler:

    NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4
    lua: dht_esp8266.lua:67: attempt to call field ’setphymode‘ (a nil value)

    Antworten
    • philip am 15. Oktober 2017 13:20

      Ich habe auf https://nodemcu-build.com/ ein aktuelles Build der Firmware heruntergeladen und auf den mcu geflashed. Dies hat geholfen. Scheinbar kam mein Board mit der von dir bereitgestellten Firmware nicht zurecht.

      Wahrscheinlich liegt es daran, das ich einen nodemcu Klon aus China nutze (Lolin V3 ESP8266 ESP-12E CH340G)

      Danke für das super Tutorial =)

      Antworten
      • philip am 15. Oktober 2017 13:38

        Bei mir wird im Diagramm leider nur die Temperatur angezeit, aber nicht die Feuchtigkeit.
        Auf deinem Bild sehe ich auch nur die Temperatur.
        Gibt es noch irgendwo einen Fehler ?

  10. philip am 15. Oktober 2017 13:50

    In der index.js ist scheinbar ein Fehler:

    connection.query(‚SELECT datum x, humidity y, sender_id, ‚humi‘ `group` FROM temperature ‚ +

    Muss lautet:

    connection.query(‚SELECT datum x, humidity y, sender_id, ‚humidity‘ `group` FROM temperature ‚ +

    Antworten
  11. herbert-tux am 16. Oktober 2017 14:59

    Hi Felix
    Erst mal vorweg:
    Es ist wieder ein klasse wie Du das Beschrieben hast.
    Ich habe einproblem mit dem Flashen; Wenn ich den File:
    nodemcu_float_0.9.6-dev_20150704.bin Lade, dann ist die blaue LED an der Antenne aus.
    Im ESPlorer IDE im rechte Fenster kann ich alles lesen.
    NodeMCU 0.9.6 build 20150704 powerd by Lua 5.1.4
    …
    Spiele ich irgendeine andere *.bin auf, auch die von der Seite hier, oder von
    NodeMCU Custom Firmware gebaut
    auf dann blinkt die blaue LED an der Antenne und
    Im ESPlorer IDE im rechte Fenster sind nur noch „Steuerzeiche“
    egal welche Geschwindikeit ich einstelle.
    Board:
    Ai Thinker
    NodeMCU-Lua WIFI ESP8266-ESP12

    Antworten
    • Felix am 17. Oktober 2017 12:59

      Der NodeMCU ist leider manchmal etwas eigen, wenn es ums Flashen geht. Aus Erfahrung kann ich nur sagen: Weiter probieren. Ggf mal eine andere Firmware flashen und diese dann überschreiben.

      Antworten
  12. Christian am 18. November 2017 18:55

    Hallo Felix.

    Ich verzweifle leider daran mehrere Graphen übereinander zu legen. In der Datenbank sind die Daten mit den verschiedenen Sender_IDs in der Tabelle eingetragen, aber ich habe keine Idee wie ich es hinbekomme, die Sensoren getrennt darzustellen. Kannst du mir ein Tutorial für das VisJS empfehlen?

    Antworten
    • Felix am 19. November 2017 13:25

      Helfen dir die Beispiele in der Doku nicht?

      Antworten
      • Daniel am 25. März 2018 21:22

        Hallo Christian,
        hast du es geschafft mehrere Graphen anzeigen zu lassen?
        Ich bräuchte da auch mal Hilfe!
        @Felix kannst du ggf etwas dazu sagen?
        Viele Grüße
        Daniel

      • Felix am 26. März 2018 22:39

        Ich habe es nur mit einem Graphen implementiert, aber auf den ersten Blick sieht es nicht nach zu vielen Anpassungen aus, die nötig sind, um mehrere Graphen anzeigen zu lassen.

  13. Daniel am 20. November 2017 9:18

    Hallo Felix
    Erstmal vielen Dank für das hilfreiches Tutorial.
    Beim Versuch das ganze zu realisien bin ich bei der Kommunikation zwischen ESP8266 und ESPlorer hängen geblieben. Jedesmal, wenn ich versuche einen Code in den ESP zu laden kommt folgende Fehlermeldung:
    „Waiting answer from ESP – Timeout reached. Command aborted“
    Ich habe jede Baudrate und verschiedene Firmware Versionen ausprobiert. Immer die gleiche Meldung. Wenn ich den ESP Resete kommt eine Ladung nicht interpretierbarer Zeichen also ist in irgendeiner Weise wohl schon eine Verbindung da.
    Einen Code mit der Arduino IDE zu laden funktioniert seltsamerweise ohne Probleme.
    Ich benutze einen ESP8266-01.
    Kannst du mir da möglicherweise weiterhelfen?
    Grüsse Daniel

    Antworten
    • Felix am 20. November 2017 22:13

      Nutzt du einen „Originalen“ ESP oder China Klon? Ich hatte ein ähnliches Problem auch bei einem ESP-01. Vielfaches neu-flashen hat letztendlich geholfen.

      Antworten
  14. Frank Schneider am 22. November 2017 20:08

    Hallo Felix

    Ich möchte gerne Deine Wetterstation nachbauen , nur scheiterte ich
    schon beim erstellen der Datenbank ,da ich nach keinem Passwort gefragt
    werde was ich ja brauche. Was mache ich falsch?
    Danke Frank

    Antworten
  15. Alex am 25. November 2017 16:04

    Hallo Zusammen…
    ich habe noch ein Problem mit dem JavaScript….
    Starte ich die index.js manuell funktioniert alles wunderbar… Sobald ich die Index dann in den Autostart packe, (egal ob per rc.local oder per crontab) dann bekomme ich diesen Fehler auf der Seite:
    Error: Failed to lookup view „index“ in views directory „/views“
    Die übermittelten Datensätzen werden aber trotzdem in die DB geschrieben.
    Woran liegt? Und wie krieg ich das hin?
    MfG

    Antworten
    • Felix am 25. November 2017 16:56

      Gib mal die Pfade überall absolut an.

      Antworten
      • Alexis am 21. November 2018 22:36

        Genau da liegt auch mein Problem. Was genau meint Du mit Pfade absolut angeben? In der Cron oder wo?

  16. Thomas am 19. Dezember 2017 11:18

    Hallo Danke für dieses Umfangreiche Tutorial.
    Hat mir beim ersten Versuchsaufbau sehr geholfen.

    Habe nun eine Frage bezüglich der Spannungsversorgung des DHT22.
    Und zwar möchte ich zwei DHT22 auf meinem NodeMCU betreiben. Einer soll über ein längeres Kaben im Außenbereich angeschlossen werden (~10m), der andere innen (Kabellänge vernachlässigbar).

    Das hier gefundene Datasheet zum Sensor http://akizukidenshi.com/download/ds/aosong/AM2302.pdf (Pkt 7.1) gibt an, dass bei 3.3V Spannung die Kabellänge des Sensors 1m nicht überschreiten soll. Sprich bei längerem Sensorkabel sollte er mit 5V betrieben werden.
    Da ich Elektromäßig nicht so versiert bin, stellt sich für mich die Frage ob ich den Sensor an den normalen VIN Pin anschließen kann?

    Betrieben wird mein NodeMCU an einem Standard USB Netzteil (für Handys) mit Kabel direkt in den MicroUSB Anschluss.

    Liegt auf dem VIN die Spannung des Netzteils direkt an oder ist dieser auch geregelt, dass bei Schwankungen dieser konstant 5V liefert?

    Falls nicht, was muss ich tun damit Spannungsschwankungen des Netzteils den Sensor nicht beeinflussen oder gar ins Nirvana befördern? Laut Spec verträgt der DHT22 5.5V und empfohlen werden 5V. Ich weiß aber nicht was passiert wenn das Netzteil mal 6V liefert.

    Welchen Pullup Widerstand sollte ich bei einem 10m -15m Kabel verwenden?

    Danke
    Thomas

    Antworten
  17. Steffen am 28. Dezember 2017 21:10

    Danke für dies tolle Tut. Eventuell hilft meine Erfahrung noch anderen.
    Ich wäre fast verzweifelt da nach dem Flashen und Reset keine Verbindung im ESPlorer zustande kam. Nachdem ich von 9600 auf 115200 umgeschaltet hatte lief alles wunderbar.

    Antworten
    • blk0ut am 21. Oktober 2018 18:39

      Hallo,
      tolles Tutorial! Ich komme leider nicht weiter nachdem ich die LUA Scripte auf den ESP gespielt habe.

      Der ESP verbindet sich mit dem Wifi und sobald er die Daten senden möchte kommt in der Console im ESPlorer folgende Fehlermeldung:

      HTTP client: Port error http://MEINEIP:8000/esp8266_trigger

      Weiß jemand zufällig, wie ich diesen Fehler beheben kann?

      Antworten
  18. Andreas am 30. Januar 2018 11:07

    Hallo, erstmal danke für die tollen Tutorials.
    Kann ich an einem NodeMCU ESP-12 mehrere Sensoren parallel betreiben, also den DHT22 und BMP180?

    Antworten
    • Felix am 31. Januar 2018 12:17

      Dem sollte nichts im Wege stehen (solange genügend freie IO Pins zur Verfügung stehen).

      Antworten
  19. Jürgen am 4. Februar 2018 13:55

    Hallo und vielen Dank für das geniale Tutorial!
    Der beschriebene Weg führte auf Anhieb zum gewünschten Ergebnis. Daher habe ich mich sofort an den nächsten Schritt gewagt und versucht einen BMP280 zu integrieren.
    Das neue Setup liefert auch sofort wieder Temp und Humi Daten. Beim Anpassen des Lua Scripts zur Integration des BMP280 klappt allerdings etwas nicht.
    Beim Aufruf von i2c.setup(0, sda, scl, i2c.SLOW) bekomme ich die Fehlermeldung:
    „esp8266_dht_bmp.lua:6 attempt to index global ‚i2c‘ (a nil value)“
    Ggf. irgendeine Idee woran das liegen kann?
    Vielen Dank!

    Antworten
  20. Eric am 8. Februar 2018 15:56

    Hallo und vielen dank für die ganze Arbeit.

    Ich würde gerne den Akkustand über meine Basisstation angezeigt bekommen. Ist es möglich den Akkustand abzufragen und zu übertragen?

    Danke

    Eric

    Antworten
  21. Waldemar am 10. Februar 2018 17:55

    Hallo,
    vorweg, ich bin ein absoluter Anfänger. Meine Frage: Ich kann leider in dem Script „dht_esp8266.lua“ die Schnittstelle vom ESP8266 zu MYSQL nicht sehen. Wie kommen die Daten vom ESP in eine MYSQL-db auf dem Raspberry?
    Die Daten werden hier doch „nur“ an NodeJS übergeben, oder?
    Vielen Dank und LG
    Waldemar

    Antworten
    • Felix am 10. Februar 2018 18:58

      Richtig, die Daten werden an den Node.JS Server am Pi gesendet, der diese in eine MySQL DB speichert.

      Antworten
      • Waldemar am 11. Februar 2018 12:24

        Wo genau geschieht das (Node.JS speichert in MySQL DB)? Es wäre für mich wichtig, denn ich verwende den DS18b20 und muss daher einige Anpassungen vornehmen. Ich kann die Scripte nicht einfach 1 zu 1 übernehmen.
        Viele Dank und einen schönen Sonntag!

      • Felix am 11. Februar 2018 12:31

        Zeile 76: https://github.com/tutRPi/Raspberry-Pi-ESP8266-Weather-Logger/blob/master/index.js#L76

  22. tom am 18. Februar 2018 21:01

    Hallo,
    mysql -u root -p und das war’s dann,
    keine aufforderung zur passworteingabe, einige scheinen da kein problem zu haben?
    gibts ne Lösung
    thks

    Antworten
    • tom am 22. Februar 2018 20:43

      seit einer woche am verzweifeln, passwort scheint geklärt, sehe aber nur raster ohne daten, finden leider keine aktuelle lösung zu sehen ob was in der db steht (erklärungen oft veraltet „bevor die Tinte trocken“ bzw. ob esp8266 sendet (led blinkt im inervall) kennt wer ein tutorial das aktuell zum laufen kommt
      lg
      thanks

      Antworten
  23. Klaus am 5. März 2018 14:05

    Nachdem ich jetzt 3 RPi’s zum Laufen gebracht habe wollte ich kurz meine Erkenntnisse weitergeben. Vielleicht helfen sie dem Einen oder Anderen.
    Ich habe die Wetterstation jetzt erfolgreich auf einem RPi 3 (hier war es am Einfachsten), dann auf einem RPi Model B+ von 2014 (das war ein wenig komplizierter) und vorhin sogar auf einem der allerersten RPi’s von 2011 (also wahrscheinlich Model A) zum Laufen gebracht.
    Anfangs (also schon beim RPi 3) hatte ich das Problem der leeren Grafik. Der Fehler bei mir war, dass der Sensor gar keine Spannung hatte… Wenn man das sklavisch so steckt, wie es in der Fritzing-Darstellung gezeigt ist und das Breadboard intern so verdrahtet ist, wie meines, wird es nicht laufen. In meinem Fall sind die beiden oberen und unteren ‚Zeilen‘ NICHT durchkontaktiert und dadurch wird der Sensor nicht mit den 3,3V versorgt. Bei mir sind immer nur die 5 nebeneinander liegenden Buchsen durchkontaktiert. Kann man leicht feststellen, wenn man mit einem Voltmeter mal schaut, ob am Sensor die 3,3V anliegen. Nachdem das korrigiert war hat sich auch die Tabelle ordentlich gefüllt, d.h. es wurden Daten übertragen und die mysql-Tabelle hat sich mit Daten gefüllt. Es war eindeutig mein Fehler, denn ich habe nicht zum ersten Mal mit dem Breadboard gearbeitet und hätte es von Beginn an besser wissen müssen. Insofern ist das keine Kritik an der Projektbeschreibung.
    Da der Uralt-RPi für mich die größte Herausforderung war möchte ich nur grob skizzieren, unter welchen Bedingungen er letztlich läuft:
    – Raspbian-2017- 07-05
    – mysql-server: 5.5.59-0+deb8u1 (installiert über sudo apt-get install mysql-server –yes)
    – nodejs: node-v4.0.-linux-armv6l (von https://nodejs.org/dist/v4.0.0/node-v4.0.0-linux-armv6l.tar.gz)

    Der Trick ist offensichtlich, die richtige Node.js-Version zu erwischen, die auf diesem RPi läuft und das war letztlich die v4.0.0.

    Der Vollständigkeit halber: auf dem RPi Model B läuft das neueste Raspbian-2017-12-01. Mysql liess sich ohne Probleme installieren und Node.JS 4.8.2 war nach sudo apt-get upgrade automatisch vorhanden und musste nicht nachinstalliert werden. Lediglich npm habe ich noch installiert (sudo npm install latest@npm -g).

    Bei allen 3 RPi’s war es notwendig, in mysql einen zusätzlichen User anzulegen, ihm alle Rechte zu geben und diesen User samt Passwort in der index.js nachzutragen.

    Falls jemand mehr Infos benötigt, bitte melden. Allerdings bin ich auch Anfänger, habe aber alle Schritte relativ präzise dokumentiert.

    Antworten
    • Franz am 10. Februar 2019 12:28

      Hallo Klaus,
      Danke für deine Ausführliche Beschreibung. Ich selbst benutze einen RPi Model B+ und habe die selben Schwierigkeiten. Ich bin selbst auch Anfänger. Ich würde mich freuen wenn du mir mehr infos zu deiner Lösung geben würdest( Mit dem zweiten User einrichten).
      LG

      Antworten
  24. Nikolas am 5. März 2018 14:47

    Hi Felix,
    erst mal Danke für die Ausführlichen Beschreibungen. In den letzten 4 Tagen hatte ich mir so manche Stunden (gewollt) um die Ohren geschlagen und habe soweit alles hin bekommen, aber zwei Punkte habe ich die ich nicht schaffe.
    1. Ich habe einen Raspberry Pi 3 mit dem Repository „openhabianpi-raspbian“ aufgesetzt, ist auch alles gut. Und ich habe eine Abgesetzte Wetterstation basierend auf einen NodeMUC Amica V2 Modul. Soweit so gut. Die Daten werden auch Übertragen aber ich muss um diese abzufragen die den Befehl: „node index.js“ starten der sich im Raspberry Ordner: „/home/openhabian/Raspberry-Pi-ESP8266-Weather-Logger“ befindet. In dem Artikel: „ https://tutorials-raspberrypi.de/raspberry-pi-nodejs-webserver-installieren-gpios-steuern/ „ hast du das beschrieben aber selbst wenn ich das auf meine Werte ändere bekomme ich das nicht hin.
    2. Wie bekomme ich das hin wenn ich den Artikel unter: „ https://tutorials-raspberrypi.de/esp8266-wetterstation-aussenposten-nodemcu-raspberry-pi/ „ folge zwei oder noch mehr Außenposten zu installieren. Im jetzigen fall ist es so das dann die Anzeigen in der Grafik mit den werten aus beiden Außenposten zusammen geschrieben werden und nicht getrennt in zwei Grafiken.

    Antworten
    • Felix am 5. März 2018 15:28

      Du müsstest einen anderen Graphen erstellen, der nur die Daten des zweiten Außenposten anzeigt.

      Antworten
      • Nikolas am 5. März 2018 16:17

        Hi Felix,
        gibt es dazu Vielleicht auch eine Anleitung in Form eines Tutorial? Oder hast du noch einen Tip wo und an Welcher stelle ich bei einem bestehenden Turorial einspringen muss/sollte.

      • Felix am 5. März 2018 17:07

        Du müsstest die index.pug bearbeiten (Javascript): https://github.com/tutRPi/Raspberry-Pi-ESP8266-Weather-Logger/blob/master/views/index.pug
        Die eingelesenen Daten kommen von hier.

  25. Nikolas am 5. März 2018 20:36

    Hi Felix,
    sorry das ich so oft schreibe, aber „nöööö“ ich bin schon wieder seit 17:30 dran und bekomme es einfach nicht hin! Mal abgesehen das die Daten von mysql an NODE.JS übergeben werden, wäre es nicht schöner gewesen die Daten wie auch in der Beschreibung von
    “ https://tutorials-raspberrypi.de/raspberry-pi-wetterstation-bauen-openhab2/ “
    mit an den Phyton3 zu geben und auch mit OpenHAB auszulesen ?

    Antworten
    • Felix am 5. März 2018 20:55

      Das Tutorial ist vor dem OpenHAB Tutorial entstanden, daher wurde es ein wenig anders gelöst. In Zukunft kommen Abfragen an den NodeMCU per MQTT.

      Antworten
  26. Nikolas am 5. März 2018 21:26

    Das hört sich super an. ich habe gesehen das es in OpenHAB eine MQTT Persistence gibt.
    Heißt das dann können die Übertragungen vom NodeMUC auch gleich an OpenHAB übergeben werden?
    Wenn ja weißt du schon wann das kommen soll?

    Antworten
    • Felix am 5. März 2018 21:27

      Jap, der ESP wird die Daten direkt senden können.
      Es kommt vorraussichtlich (ich hoffe) im nächsten Monat.

      Antworten
  27. Nikolas am 6. März 2018 19:09

    Hi Felix,
    ich verstehe es einfach nicht. Du hattest geschrieben das die Daten die von der index.js kommen === res.render(‚index‘, { data: results }); === an die index.pug übergeben werden. Das habe ich soweit Verstanden. Dort muss ich dann soweit ich das Verstanden habe einen zweiten Visualisierungs Block einfügen der dann jeweils mit der ersten sender_id auf den ersten Block und mit der zweiten sender_id auf den zweiten Block ausliefert. Aber ich bekomme es einfach nicht hin.
    Wärst du noch einmal so freundlich zu helfen ?

    Antworten
    • Lessi am 21. September 2018 21:16

      Hi,
      selbes Problem, hast du es lösen können??
      muss auch sagen bin ein absoluter java Anfänger.

      Antworten
  28. Sascha am 11. März 2018 14:35

    Hallo zusammen,

    ich bin langsam am Verzweifeln und weiß leider nicht weiter. Meine Datenbank besteht, der index.js läuft auch, im Browser kann ich die Grafik ohne Werte sehen. Mein ESP ist im WLAN, gibt keinerlei Fehlermeldungen von sich und zeigt über die LED auch regelmäßig eine Aktivität an. Allerdings werden über den Browser auch nach 30 min keine Werte angezeigt.

    Ich habe bereits den DTH22 sowie den ESP8266 jeweils durch einen anderen getauscht, um Defekte auszuschließen. Allerdings weiß ich nicht, ob mein Außenposten (liegt noch neben mir) jetzt keine Daten sendet, oder ob diese nicht in die Datenbank geschrieben werden.

    Könnt ihr mir sagen, wie ich hier vorgehen sollte?
    Noch ein kleiner hinweis, ich finde zwar einige Fehlerquellen, bin aber ein ziemlicher Neuling was LUA und mysql angeht. Ich sizte jetzt schon ein paar Stunden daran und komme einfach nicht merh weiter 🙁

    Danke für eure Hilfe!

    Antworten
    • Felix am 11. März 2018 22:06

      Du kannst die URL mal manuell (oder mit Postman etc.) aufrufen und schauen, ob du so Werte einfügen kannst.

      Antworten
  29. Hans am 18. März 2018 8:04

    Hallo,

    es müssten doch eigentlich möglich sein, beide Sensoren (DHT22 Temperatur / Luftfeutchtigkeit und BMP180 Luftdruck) gleichzeitig anzuschließen und auszulesen? Oder muss ich dafür nochmal eine Station mit dem WLAN Modul bauen?

    Und wenn ja, wie würde ich das machen?

    Antworten
  30. Marc am 18. März 2018 22:31

    Hi, bei mir zeigt sich ein, für mich unerklärliches verhalten:
    Ich bekomme nach dem laden erst mal einen Timeout des DHT und erst wenn ich „GND“ löse und wieder einstecke bekomme ich vom DHT Werte eingelesen.

    Irgendjemand eine Erklärung was ich hier falsch gemacht haben könnte?

    Antworten
    • Friedrich am 4. August 2019 18:10

      Ich habe das gleiche Problem. Hat jemand eine Idee woher das kommt und was ich da machen kann?

      Antworten
      • Tobi am 10. August 2020 22:47

        Hi,
        gab es zu dem Problem eine Lösung?

    • Manuel am 11. Juli 2021 12:25

      Ich hatte das gleich Problem. Erstmal vielen Dank für den Hinweise: Ohne deinen Hinweis hätte ich den DHT Sensor für defekt gehalten.
      Was mir geholfen hat: In verschiedenen Forenbeiträgen habe ich gesehen, dass das Problem immer wieder auftritt und dass eine zu geringe Spannung das Problem sein kann. Anderen Usern hat es geholfen statt 3.3V 5V zu verwenden. 5V stellt meines Wissens nach das Board nicht zur Verfügung. Durch den Hinweis mit der Spannung habe ich dann den ESP8266 mal nicht über den PC per USB mit Strom versorgt sondern über ein über einen normalen Handyadapater direkt an die Steckdose angeschlossen (gleiches USB Kabel). Nun sendet der ESP8266 die Informationen direkt wie gewünscht, ohne dass ich GND lösen und wieder einstecken muss.

      Antworten
  31. alex am 26. März 2018 22:07

    Hey felix,
    kann es sein das sich die Grafik zur visualisierung nicht so ganz passt?
    ich habe das seltene phänomen, dass ich nur eine y-Achse habe und ich den namen von der feuchtigkeit nicht anpassen kann, der ist bei mir standardmäsig auf „deafaulthumidity“.
    ich habe keine möglichkeit, weder die yachse noch den namen über die index.pug anzupassen

    html
      head
        title='Temperatur Diagram'
        script(src='scripts/vis.js')
        link(href='scripts/vis.css', rel='stylesheet' type='text/css')
        style.
          body, html {
            font-family: sans-serif;
          }
      body
        div#visualization
        script.
          var container = document.getElementById('visualization');
          var items = !{data}
          items.map(function(e){e.x=new Date(e.x); return e;})
    
          
          var groups = new vis.DataSet();
          groups.add({
            id: 'humid',
            content: "Humidity",
            options: {
                yAxisOrientation: 'right',
              drawPoints: {
                style: 'square'
              }
          }});
          groups.add({
            id: 'temp',
            content: "Temperatur",
            options: {
              yAxisOrientation: 'left',
              drawPoints: {
                style: 'square'
              },
              shaded: {
                orientation: 'bottom' // top, bottom
              }
          }});
          var dataset = new vis.DataSet(items);
    
          var options = {
            legend: {enabled: true},
    	
          };
          var graph2d = new vis.Graph2d(container, dataset, groups, options);
    
    Antworten
  32. Marc am 29. März 2018 22:35

    Hi Felix,
    habe eine Powerbank (10.000 mAh) genommen um den ESP8266 inkl. Deepsleep (alle 10 Minuten messen und senden) zu versorgen.
    Nun ist das Problem, das wohl die Powerbank bei zuwenig „Verbrauch“ komplett den Saft abdreht. Aka der ESP8266 hat keinen Saft mehr. Vielleicht einen Tipp was man noch machen könnte?

    Vielleicht probiere ich auch einfachaus wie lange der ESP ohne Deepsleep durchhält.

    Antworten
    • Felix am 30. März 2018 14:26

      Ich denke da wird nur der Griff zu einer anderen Powerbank helfen (die von mir genutzte kann ich nur empfehlen). Ansonsten evtl. ein Lipo Akku.

      Antworten
      • Marc am 30. März 2018 19:09

        Hi Felix, sorry, vielleicht bin ich gerade etwas blind: Welche Powerbank nutzt du den?
        Ich habe bisher drei verschiedene ausprobiert und alle schalten nach ungefähr 2-3 Minuten den Strom ab.
        Aktueller Deepsleep ist erstmal auf 10 Minuten eingestellt.

        Ansonsten wünsche ich dir ein schönes Osterfest!

      • Felix am 1. April 2018 12:33

        Ich hab eine von Intenso mit 10.000 mAh.
        Lg, Felix

  33. Patrick am 25. April 2018 16:53

    Hallo zusammen
    Ich hoffe, mir kann jemand helfen. Wenn ich alles gemäss Tutoril mache, kommt beim Aufrufen der Website immer folgender Fehler:

    Error: Failed to lookup view „index“ in views directory „/home/pi/views“
    at Function.render (/home/pi/node_modules/express/lib/application.js:580:17)
    at ServerResponse.render (/home/pi/node_modules/express/lib/response.js:1008:7)
    at Query._callback (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:40:13)
    at Query.Sequence.end (/home/pi/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
    at Query._handleFinalResultPacket (/home/pi/node_modules/mysql/lib/protocol/sequences/Query.js:139:8)
    at Query.EofPacket (/home/pi/node_modules/mysql/lib/protocol/sequences/Query.js:123:8)
    at Protocol._parsePacket (/home/pi/node_modules/mysql/lib/protocol/Protocol.js:279:23)
    at Parser.write (/home/pi/node_modules/mysql/lib/protocol/Parser.js:76:12)
    at Protocol.write (/home/pi/node_modules/mysql/lib/protocol/Protocol.js:39:16)
    at Socket. (/home/pi/node_modules/mysql/lib/Connection.js:103:28)

    Ich denke, das Problem liegt irgendwo bei „app.use“

    Besten Dank für eure Hilfe

    Antworten
    • Oliver am 26. Juni 2018 21:18

      Hi,
      ich konnte das lösen, indem ich den vollständigen Pfad in die app.use der index.js genommen habe und daneben auch ein
      app.set(‚views‘, ‚/home/user/Raspberry-Pi-ESP8266-Weather-Logger/views‘)
      eingefügt hatte

      Antworten
  34. Simon am 30. April 2018 11:14

    Hallo zusammen,
    ich komme aktuell nicht mehr weiter und brauche einen Rat bei folgender Fehlermeldung:

    > wifi.setphymode(SIGNAL_MODE)
    stdin:1: bad argument #1 to ’setphymode‘ (number expected, got nil)
    stack traceback:
    [C]: in function ’setphymode‘
    stdin:1: in main chunk–wifi.sta.config(SSID, SSID_PASSWORD)wifi.sta.config {ssid=SSID, pwd=SSID_PASSWORD}
    stdin:1: bad argument #1 to ‚config‘ (ssid required)
    stack traceback:
    [C]: in function ‚config‘
    stdin:1: in main chunkwifi.sta.autoconnect(1)– Hang out until we get a wifi connection before the httpd server is started.
    > wait_for_wifi_conn ( )
    > ESP8266 mode is: 1

    Ich habe alles wie beschrieben vorgenommen. Die MySql DB ist angelegt (aber noch leer), der Webserver läuft, die (leere) Grafik zur Visualisierung kann ich im Browser aufrufen, der ESP8266 ist geflasht worden und in der Lage die Temperatur zu messen und die Lua Skripte habe ich an den ESP8266 gesendet. Leider scheinen keine Daten zwischen dem Pi und dem ESP8266 gesendet werden. Wenn ich das Skript manuell absende, gibt es die Rückmeldung von oben. Hat hier jemand eine Idee, woran es liegen könnte?

    Antworten
    • Ingo am 16. Mai 2018 15:50

      Hallo,

      ich hatte genau das gleiche Problem und bin auf einen Artikel gestoßen der meinte, dass wifi.sta.config mittlerweile veraltet wäre. ( https://github.com/nodemcu/nodemcu-firmware/issues/2082 )

      Ich habe nun stattdessen folgenden Code verwendet (ich habe die alten Befehle vorerst drin gelassen, aber auskommentiert)

      — Configure the ESP as a station (client)
      wifi.setmode(wifi.STATION)
      wifi.setphymode(SIGNAL_MODE)

      station_cfg={}
      station_cfg.ssid=SSID
      station_cfg.pwd=SSID_PASSWORD
      station_cfg.save=true
      wifi.sta.config(station_cfg)

      –wifi.sta.config(SSID, SSID_PASSWORD)
      –wifi.sta.config {ssid=SSID, pwd=SSID_PASSWORD}
      wifi.sta.autoconnect(1)

      Das hat dann einwandfrei funktioniert und seit dem sendet der ESP8266 auch Daten an den Raspberry und speichert es korrekt in der Datenbank.

      @Felix: Kannst du mir sagen, wie ich nun die Daten, aus der MySQL Datenbank in OpenHAB2 rein bekomme und ebenfalls darstellen kann?

      Danke!

      Antworten
  35. Lars am 18. August 2018 11:28

    Hallo,

    top einfach nur wieder schön.
    kann ich den ganzen code eigentlich auch für ESP32 nehmen?

    Lars

    Antworten
  36. Jan Seewald am 24. Oktober 2018 13:44

    Bild ist irreführend, dachte ihr baut eine alte Wetterstation um 😀

    Antworten
    • Felix am 31. Oktober 2018 20:26

      Tut mir leid, sollte nur als „Symbolbild“ dienen 😀

      Antworten
  37. (ein anderer) Lars am 28. Januar 2019 8:41

    Moin,

    wie baut man sich am besten dafür ein sinnvolles Gehäuse? So plain kann man die Wetterstation ja nicht einfach raus stellen; Aber wenn man das alles einpackt, verfälscht man die Daten. Hast Du (oder jemand anderes :D) eine Idee dafür?

    Antworten
    • Lars (wieder ein anderer) am 2. September 2019 0:58

      Das würde mich auch brennend interessieren.

      Antworten
  38. Joris am 9. Februar 2019 17:26

    Hallo Zusammen,
    Ich habe ein Problem beim Abschnitt : Node.JS Datenserver auf dem Raspberry Pi
    Das Problem ist wie folgt: wenn ich versuche eine Abhängigkeit herzustellen mit „npm install“ kommt die Fehlermeldung: „bash: npm: Kommando nicht gefunden.“.

    Ich weiß echt nicht mehr weiter. Freue mich auf eure Hilfe denn dass hier ist ein sehr schönes Projekt.
    LG

    Antworten
    • Heinz am 11. Februar 2019 14:27

      Das npm Problem hatte ich auch. Habe node nochmal nachinstalliert und dann npm auch noch einmal. Dann gab es bei der Ausführung des index.js noch etliche Fehler betr. fehlender Module. Diese habe ich dann einzeln nachinstalliert und dann ging es. Pug muss man auch nachinstallieren. Geht ales sobald npm läuft:
      npm install pug z.B.

      Antworten
  39. Joris am 9. Februar 2019 17:29

    Ergänzung zu meinem Ersten Kommentar:
    Ich benutze einen ESP32. Muss ich da noch irgendwas beachten bei der Software Installation?Denn ich habe gelesen das der ESP32 der direkte Nachfolger sein soll.

    Danke im Vorraus!

    Antworten
    • Max am 31. Juli 2019 7:19

      Hallo Joris,

      mich würde interessieren, ob Du das Projekt auch mit dem ESP32 umsetzen konntest. Wenn dem so wäre, würde ich den auch gerne nutzen da ich mir versehentlich den falschen ESP8266 geholt habe 🙁

      Antworten
  40. Heinz am 11. Februar 2019 14:22

    Hey
    Super Tutorial, hat fast alles auf Anhieb auf dem RAsp 3 B+ und dem ESP12 funktioniert. Datenbank füllt sich brav mit Werten, schon 2 Tage Störungsfrei.
    nur :/ die Webseite bleibt leer :/ Kein 404 Fehler, sondern einfach keine Anzeige.
    Demnach läuft der Node Server stabil auf Port 8000, aber irgendwie hakt es an der Verbindung zu mysql und den Grafiken. Hat da jemand eine Ahnung wie man das lösen kann ?
    Muss VISjs installiert sein ? Evtl. Rechte an das Pug Verzeichnis vergeben ?

    Antworten
  41. Robert Scholp am 22. März 2019 22:06

    Klasse Tutorial, vielen Dank. Ein Traum wäre, das ganze auf den Feinstaubsensor SDS011 umzubauen bzw. diesen mit einzubauen. Leider komme ich bei dem LUA-Skript für den ESP8266 so gar nicht weiter. Wäre das nicht noch ein reizvolles Ergänzungs-Tutorial?

    Antworten
  42. Christian am 30. März 2019 18:55

    Hi Felix,
    kurze Frage – ich habe vermutlich irgendwo einen Bug…
    Wenn ich im putty per sudo nano index.js in Raspberry-Pi-ESP8266-Weather-Logger den NodeJS start, funktioniert die Chart-Darstellung im Browser ohne Probleme (daten kommen, werden dargestellt,…).
    Aber:
    – Ich verliere im putty den Promt – kann also nichts weiter mehr machen
    – Schließe ich die putty session, stürzt offensichtlich auch der NodeJS ab.
    Irgendeine Idee?
    Viele Grüße und besten Dank! Ch.

    Antworten
  43. Lukas am 10. Mai 2019 13:46

    Geht es denn diese Daten in OpenHAB anzeigen zu lassen?

    Antworten
  44. Stefan am 23. Mai 2019 21:40

    Hi..:)

    Danke für die schöne Anleitung.. problemlos und in meinem Fall mit dem die Änderung war kein großes Problem als ich meinen Fehler gefunden hatte..

    Nun ich möchte den esp im Garten anbringen und per Akku betreiben.. dafür soll er in den Deepsleep.. wie das geht ist klar aber auch ohne deepsleep gibts Probleme in der Datenübertragung:

    Konkret werden die Daten nicht übertragen wenn die wdh Schleife fehlt wenn die Init.lua via ausgeführt wird stattdessen gibts n http Fehler via esplorer. Wird jedoch die Datei selbst via dofile ausgeführt läufts..

    Sooo jetzt bin ich auch nicht doof und habe mal sämtliche code aus der messdatei in Init.lua kopiert und den einstigen einzige Code in Form von dofile gelöscht.. hat aber leider nichts am Ergebnis die Schleife wieder dazu und schwups funktioniert’s problemlos..

    Hast du irgend eine Idee?

    Antworten
  45. Wolfgang am 18. Juli 2019 21:13

    Hallo,
    ich hätte gerne den MCP9808 Temperatursensor verwendet. ich weiss zwar wie ich den auf den Raspi bzw den esp8266 anschließen muss aber welche Custom Software muss ich auf den esp8266 installieren.
    Hat das einer von euch schon versucht ???
    Wäre für einen Tipp dankbar.
    Habe im Internet nicht viel brauchbares sprich verständliches gefunden.
    Danke

    Antworten
  46. Jens am 13. November 2019 0:42

    Kann mann das ESP auch weg lassen ? da ich es gern per kabel zum fenster bedienen möchte da der pc daneben steht 🙂 ist sowas möglich auch mit dieser aufstellung und diagram anzeige

    Antworten
    • Felix am 14. November 2019 21:33

      Kann man, aber dann ist es keine wirkliche Außenstation mehr…

      Antworten
      • Jens am 17. November 2019 16:36

        ich hab mein esp jetzt liegen leider kann mann das tut nicht mehr nutzen da es mysql nicht mehr gibt sondern mariadb und da weiss ich nicht was mann da machen muss kann mann das tut neu aufsetzen ? damit ich das nachbasteln kann

  47. Michael am 23. November 2019 18:03

    Hallo, wollte per python die Werte Schreiben. Welche Seite müsste ich aufrufen? Könnte mir vielleicht einer den Link den ich erstellen muss?
    mfg Michael

    Antworten
  48. Holger am 4. Juni 2020 12:36

    Hallo Felix,

    Vorab Danke für das Tutorial – super Sache für Anfänger 🙂 Deine Aussenstation konnte ich nach einigen Hürden und viel googeln doch zum Laufen bringen :))

    In meiner Datenbank habe ich allerdings jetzt ein paar Tage an „Aussetzern“, so das mir zwischendrin ein langer Strich angezeigt wird. Mein Gedanke dazu: ich lösche einfach die letzten Daten aus der Datenbank, dann siehts wieder hübsch aus 😉 Ja, beim „einfachen Gedanken“ ist es geblieben 😀

    Leider scheinen dort Rechte vergeben zu sein (?), so das ich nicht in das Verzeichnis komme (/var/lib/mysql/weather_station) um Daten zu löschen. Setzen von anderen Rechten ist mir scheinbar auch nicht erlaubt?

    Kannst Du mir da weiterhelfen, wie ich an „Deine Daten“ rankomme, damit ich Teile löschen kann und der Graph wieder gut aussieht?

    Viele Grüße und vielen Dank,
    Holger

    Antworten
    • Felix am 4. Juni 2020 22:54

      Hi Holger,
      hier findest du eine Anleitung, wie du MySQL Rechte vergeben kannst: https://chartio.com/resources/tutorials/how-to-grant-all-privileges-on-a-database-in-mysql/

      Antworten
  49. Ger am 3. April 2021 12:12

    Im professionellen Bereich arbeitet man mit service um Programme während des laufenden Betriebs neustarten zu können und auch mit dem System starten zu lassen.
    man kann sich hier Ideen holen:
    https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service

    sieht dann ungefähr so aus

    cd /etc/systemd/system/
    sudo nano wetter.service

    Paste configurations below, between — .
    —
    [Unit]
    Description=Temp. und Luftfeuchtgikeit in der DB speichern.
    After=syslog.target network.target

    [Service]
    Type=simple
    User=pi
    Group=pi
    WorkingDirectory=/home/pi/Raspberry-Pi-ESP8266-Weather-Logger
    Environment=NODE_ENV=production
    ExecStart=/usr/bin/nodejs /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js
    Restart=always

    [Install]
    WantedBy=multi-user.target
    —

    sudo systemctl daemon-reload
    sudo systemctl start wetter
    sudo systemctl enable wetter

    Check the service using command below.

    sudo systemctl status wetter

    Antworten
  50. Helmut am 20. April 2021 10:48

    hallo,
    warum ist es nicht möglich, auf dem esp8266 die normale Arduino-C++-IDE/API zu verwenden? Ich nutze niemals Lua – gibt es dazu auch einen Arduino-IDE-Code für den ESP?

    Antworten
    • Felix am 20. April 2021 12:29

      Klar, schau mal hier: ESP8266: Arduino IDE für den ESP32

      Antworten
  51. Theo am 21. April 2021 23:36

    Hallo Felix,
    danke für das gute Tutorial, es funktionierte bei mir alles auf Anhieb.
    Mir ist es allerdings bislang nicht gelungen, die Sensordaten mit dem Package VisJS (https://visjs.org/) auch live darzustellen, worauf im Tutorial hingewiesen wird. In Deinem Tutorial wird ja die Web-Site bei jedem Aufruf per Webserver node.js neu aufgebaut und die kompletten Daten der Datenbank angezeigt. Natürlich könnte man bei der SQL-Abfrage die Datenmenge per ORDER BY id DESC und Parameter LIMIT z.B. 10 immer auf die letzten 10 Datensätze beschränken und die Website periodisch aufrufen. Allerdings ist die live Darstellung im streaming 2D Beispiel auf VisJS viel eleganter. Allerdings werden beim vorgestellten und auch runterladbaren Beispiel die simulierten Daten (eine Kombination von sin- und cos-Funktion) im javascript der html-Seite selbst erzeugt. Man muß diese Daten aber natürlich von außen (also vom ESP8266) in das Script praktizieren. Mir ist das Hineinpraktizieren aber bislang nicht gelungen, weder die Daten der MySQL-DB direkt oder auch über das node.js Server-Script. Der nicht elegante Weg, die Daten im node.js-Script in einer Ascii-Datei zu speichern (funktioniert) und dann von der javascript-Datei der visjs-Beispiel-html-Seite einzulesen, funktioniert aber nicht, denn der javascript-Code der html-site kann ja prinzipiell nicht auf die Dateien des PC-Dateisystems zugreifen.
    Hast du einen Tip, wie man das visjs-2D-streaming-Beispiel im Rahmen des in Deinem Tutorial besprochenen Datentransfers von ESP8266 in den node.js-server realisieren könnte?

    Vielen Dank im voraus
    Theo

    Antworten
  52. Theo am 3. Mai 2021 22:19

    > data streaming live (Frage vom 21.04.21)
    Ich habe nun die streaming-Variante der live-Darstellung der Meßdaten im Browser auf der Basis des Node-Server-Scripts dieses Tutorials selber hingekriegt. Dabei bin ich vom Beispiel …/examples/graph2d/15_streaming_data.html der älteren visjs-Seite (https://almende.github.io/vis/) ausgegangen, die das Package vis nutzt und nicht die neuere Variante vis-timeline, die bei der Parameterwahl zur Achsen-Konfiguration einige Fehler aufweist.
    Die live-Darstellung besorgt ein js-Script, welches in der html-Seite aufgerufen wird. Dabei wird die ganze Seite 15_streaming_data.html, so wie auch beim Tutorial mittels des pug-Seitengenerators im node.js-Server-Script erzeugt. Der Zugriff aus dem js-Script auf die Meßdaten im Serverscript geschieht nun – und das ist der entscheidende Schritt – mit der Methode XMLHttpRequest() entsprechend der AJAX-Technologie. Damit erstellt man eine GET-Anfrage an das Server-Script mit einem neuen Pfad, z.B. /trigger-data, die im Serverscript mit einer neuen Anweisung app.get(‚/trigger-data‘, function(req, res) {…}) über das res-Objekt der Callback-Funktion die im Server eingetroffenen Meßdaten an das aufrufende Script zurückgibt. Im js-Script des Beispiels 15_streaming_data.html muß man also die dortige Demo-Funktion durch die XMLHttpRequest()-Methode ersetzen.
    Theo

    Antworten
  53. Andreas am 1. Juni 2021 11:18

    Hallo Felix,
    Danke für dein Tutorial, die ersten Daten kann ich auf meinem Webserver betrachten.
    Jedoch habe ich Probleme mit dem ESP8266. Ich verwende ein ESP8266-12F Entwicklerboard von AZ-Delivery, das Amica V2. Geflasht habe ich es mit deiner Datei von github und auch dein LUA-Code habe ich soweit übernommen und auf mein W-Lan config etc angepasst, wie gesagt: Daten kommen an.
    Allerdings kommen die Daten nur an solange ich nicht die Verbindung zum PC trenne, sobald ich es entferne und mit deinem USB Netzteil betreibe scheinen die Daten nicht mehr am Webserver an zu kommen. Die blaue LED jedoch blinkt. Auch wenn ich das Board nochmals am PC anschließe passiert nicht mehr. Erst wenn ich es mehrfach flashe und das Programm (dht_esp8266.lua und init.lua) kann ich glück haben das es wieder funktioniert.
    Eventuell kannst mir jemand einen Tipp geben woran es liegen kann das die Daten nach Spannungsverlust nicht mehr ankommen? Das Programm scheint ja zu laufen, sonst würde die blaue LED am board nicht blinken, oder?

    Vielen Dank
    Andreas

    Antworten
  54. Hans-Jürgen Grigoleit am 15. Juni 2022 14:29

    Guten Tag aus Rathenow,
    obiges Tut versuche ich umzusetzen. Leider bisher erfolglos. Mein RPI3+ läuft mit „strech“. Die Installationen sind gelaufen bis node. Dann kam:
    root@raspberrypi:/home/pi# npm install rpio –save
    npm ERR! code 1
    npm ERR! path /home/pi/node_modules/rpio
    npm ERR! command failed
    npm ERR! command sh -c node-gyp rebuild
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using node-gyp@9.0.0
    npm ERR! gyp info using node@16.15.1 | linux | arm
    npm ERR! gyp ERR! find Python
    npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration
    npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON
    npm ERR! gyp ERR! find Python checking if „python3“ can be used
    npm ERR! gyp ERR! find Python – executable path is „/usr/bin/python3“
    npm ERR! gyp ERR! find Python – version is „3.5.3“
    npm ERR! gyp ERR! find Python – version is 3.5.3 – should be >=3.6.0
    npm ERR! gyp ERR! find Python – THIS VERSION OF PYTHON IS NOT SUPPORTED
    npm ERR! gyp ERR! find Python checking if „python“ can be used
    npm ERR! gyp ERR! find Python – executable path is „/usr/bin/python“
    npm ERR! gyp ERR! find Python – version is „2.7.13“
    npm ERR! gyp ERR! find Python – version is 2.7.13 – should be >=3.6.0
    npm ERR! gyp ERR! find Python – THIS VERSION OF PYTHON IS NOT SUPPORTED
    npm ERR! gyp ERR! find Python
    npm ERR! gyp ERR! find Python **********************************************************
    npm ERR! gyp ERR! find Python You need to install the latest version of Python.
    npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
    npm ERR! gyp ERR! find Python you can try one of the following options:
    npm ERR! gyp ERR! find Python – Use the switch –python=“/path/to/pythonexecutable“
    npm ERR! gyp ERR! find Python (accepted by both node-gyp and npm)
    npm ERR! gyp ERR! find Python – Set the environment variable PYTHON
    npm ERR! gyp ERR! find Python – Set the npm configuration variable python:
    npm ERR! gyp ERR! find Python npm config set python „/path/to/pythonexecutable“
    npm ERR! gyp ERR! find Python For more information consult the documentation at:
    npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
    npm ERR! gyp ERR! find Python **********************************************************
    npm ERR! gyp ERR! find Python
    npm ERR! gyp ERR! configure error
    npm ERR! gyp ERR! stack Error: Could not find any Python installation to use
    npm ERR! gyp ERR! stack at PythonFinder.fail (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:330:47)
    npm ERR! gyp ERR! stack at PythonFinder.runChecks (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:159:21)
    npm ERR! gyp ERR! stack at PythonFinder. (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:266:16)
    npm ERR! gyp ERR! stack at PythonFinder.execFileCallback (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/find-python.js:297:7)
    npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:390:7)
    npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:527:28)
    npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1092:16)
    npm ERR! gyp ERR! stack at Socket. (node:internal/child_process:451:11)
    npm ERR! gyp ERR! stack at Socket.emit (node:events:527:28)
    npm ERR! gyp ERR! stack at Pipe. (node:net:709:12)
    npm ERR! gyp ERR! System Linux 4.19.66-v7+
    npm ERR! gyp ERR! command „/usr/bin/node“ „/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js“ „rebuild“
    npm ERR! gyp ERR! cwd /home/pi/node_modules/rpio
    npm ERR! gyp ERR! node -v v16.15.1
    npm ERR! gyp ERR! node-gyp -v v9.0.0
    npm ERR! gyp ERR! not ok

    npm ERR! A complete log of this run can be found in:
    npm ERR! /root/.npm/_logs/2022-06-15T12_01_33_778Z-debug-0.log
    root@raspberrypi:/home/pi#
    So ging es dann weiter:
    root@raspberrypi:/home/pi/Raspberry-Pi-ESP8266-Weather-Logger# npm install
    npm WARN EBADENGINE Unsupported engine {
    npm WARN EBADENGINE package: ‚raspberry-pi-esp8266-weather-logger@1.0.0‘,
    npm WARN EBADENGINE required: { node: ‚4.0.0‘ },
    npm WARN EBADENGINE current: { node: ‚v16.15.1‘, npm: ‚8.11.0‘ }
    npm WARN EBADENGINE }

    up to date, audited 143 packages in 3s

    12 packages are looking for funding
    run `npm fund` for details

    found 0 vulnerabilities
    Das ist das derzeitige Ende:
    root@raspberrypi:/home/pi/Raspberry-Pi-ESP8266-Weather-Logger# node index.js
    /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:36
    if (error) throw error;
    ^

    Error: Cannot enqueue Query after fatal error.
    at Protocol._validateEnqueue (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Protocol.js:212:16)
    at Protocol._enqueue (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/protocol/Protocol.js:138:13)
    at Connection.query (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/mysql/lib/Connection.js:198:25)
    at /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/index.js:34:16
    at Layer.handle [as handle_request] (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/route.js:144:13)
    at Route.dispatch (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/route.js:114:3)
    at Layer.handle [as handle_request] (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/layer.js:95:5)
    at /home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/index.js:284:15
    at Function.process_params (/home/pi/Raspberry-Pi-ESP8266-Weather-Logger/node_modules/express/lib/router/index.js:346:12) {
    code: ‚PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR‘,
    fatal: false
    }
    root@raspberrypi:/home/pi/Raspberry-Pi-ESP8266-Weather-Logger#
    Wass soll ich nun tun?
    Mein Außenposten D1 mini scheint funktionsfähig zu sein.

    Antworten

Hinterlasse einen Kommentar Antwort abbrechen

Raspberry Pi Node.js Webserver installieren und GPIOs schalten

Aufnahmen mit dem offiziellen Kamera Modul des Raspberry Pi

So installierst du Google Chromium auf dem Raspberry Pi

Raspberry Pi: Überwachungskamera Livestream einrichten

Türspion Kamera selber bauen und ins Smart Home integrieren

3D-Druck Server: Auf dem Raspberry Pi OctoPrint mit Livecam einrichten

Blog abonnieren

Abboniere Raspberry Pi Tutorials, um kein Tutorial mehr zu verpassen!

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Kontakt & Impressum
  • Unterstützen
  • Datenschutz

Tippe den Suchbegriff oben ein und drücke Enter, um danach zu suchen. Drücke Esc, um abzubrechen.