hi. i have an au to unpack so get ready wemen and men and people whose genders are bent
so... 2 much anxiety fairly oddparents au aha
SO BASICALLY its a pretty well known the fact that timmys life is miserable hence he got fairys but what if timmys parents are people who should get a divorce like if timmys parents isnt leaving timmy alone with vicky to do something and is at home they argue and what if timmy got cosmo and wanda a bit later than he did and what if vicky does things way worse.
so thats why timmy has so much anxiety for this au
now some of you may wonder from the fact that i am a nicktoons unite fan what happens in nicktoons unite!
well timmy isnt really so agressive only when provoked and since timmy already knows jimmy and trusts him he trusts the others too
now WHAT ABOUT MY DANNY AND TIMMY COUSINS HC (not the head cannon that timmy accidentally summons danny)
well for this i think the cousins never met each other till nu gang happened and LET ME TELL YA WHY
because for timmys parents and dannys parents just dont interact often. sure they call eachother from time to time but havent gone to each others places
or danny and timmy met before but timmy was so young he didnt remember (no this isnt a reference to forgor au i swear 😭)
im getting a bit off track so BACK TO 2ma
timmy before getting fairies (remember i said he got fairies later) sometimes cries himself to sleep or listen to music because timmys parents are so fucking loud when fighting at night.
the reason why cosmo and wanda was given to timmy later is because timmy would get vicky as a babysitter later because timmys parents are trying to fall in love again neglecting timmy
AND WHAT ABOUT CROCKEERRRR so crocker has a suspission to all of his class to have FAIRY 💥 GOD 💥 PARENTS (sorry i have to) and he does know that miserable children gets them (if you think about it timmys class are all miserable in thier own way like chester being poor but he shrugs it off.
timmy however before getting fairies is already having too much anxiety (see what i did there) and pretty much everyone notices that but his parents because they are lumps of shit so crocker began looking for evidence of fairy yod parents on timmy which well since timmy didnt have fairies yet and from how much crocker keeps looking there is no fairies he even asked timmy himself if he had fairies and timmy look up to crocker anxiety gilled thinking he missed something and ask whats a FAIRY 💥 GOD 💥 PARENTS and crocker still keeps looking but he just finds out timmy doesnt have fairies and how miserable timmy is to the point hes crying himself to sleep so he shrug it off and just thought timmy is just miserable but not miserable enough to have fairies. until timmy just shows up to class without anxiety and everyone is worried but that was the day timmy gets his fairies and as days go on and crocker gets suspicions again and boom the fop series but ill cut after poof seasons because no.
timmy is still a rulebreaker and even after getting fairies he still have anxiety becuase anxiety doesnt go away like that
but wait i have to talk about something..
JIMMYTIMMYPOWERHOUR
so yeah remember i said in the nicktoons unite bit that timmy trusts jimmy from jtph? yeah so-
timmy accidentally wishes to go there right and then met jimbo and hes a mad fuck lmfao.
it basically went "what the fuck who are you" "IM SORRY I DIDNT M-MEANT TO GET HERE I- I GOT HERE BY AC-ACCIDENT I DONT KNOW THIS PLACE WHERE AM I IM S-SORRY IF I BROKE ANYTHING IM SORRY-" aha..
and yknow the whole jtph happened but timmy have anxiety and stutters alot... alot.
lets just say for this au jimmy is the one who gets feelings first
so what about the other 2 jtph well its practically the same but yknow timmy anxiety and stutter but from one to another it lowers down.
EXTRAS
REMEMBER MY DANNY GETS SUMMONED BY TIMMY ACCIDENT HC? YEAH HE DID ACCIDENTALLY DO THAT AND BRO 2MA TIMMY IS APOLOGIZING SO MUCH BRUV
also uhh drawings of him becuase 💔
the first 2 i actually shared in discord earlier
gonna make more content for this but feel free to use this au
oh and one more thing to note here when hanging out with the nu gang as buddies not beating up baddies when timmy meets gary he loves him. he practically loves all pets but gary is just yes there is no meaning behind it just timother loevs snials
58 notes
·
View notes
ESP8266 Programmierung mit 0,96" OLED Display von Ideaspark: Eine Schritt-für-Schritt-Anleitung
Willkommen zu meinem Technikblog, wo ich heute den Ideaspark ESP8266 in Kombination mit einem 0,96 Zoll (2,44 cm) OLED Display vorstelle. In diesem Beitrag wirst du eine Schritt-für-Schritt-Anleitung zur Programmierung dieses vielseitigen Mikrocontrollers finden.
Die Idee für diesen Beitrag entstand, nachdem ein aufmerksamer Leser mir seine Herausforderungen bei der Verwendung dieses Mikrocontrollers geschildert hat. Als Unterstützung für die Community habe ich daraufhin den Ideaspark ESP8266 mit dem 0,96 Zoll (2,44 cm) OLED Display erworben und innerhalb von 14 Tagen erhalten. Nun möchte ich mein erworbenes Wissen teilen und anderen dabei helfen, dieses faszinierende Hardware-Projekt erfolgreich umzusetzen.
Zwei ähnliche ESP8266 mit OLED Display habe ich dir bereits in den Beiträgen Heltec ESP8266 und OLED: Eine ideale Kombination für DIY-Projekte und Arduino Tutorial 61: NodeMCU ESP8266 mit OLED Display vorgestellt. Hier soll es sich jedoch um den Mikrocontroller der Firma Ideaspark drehen, denn dieser ist an einigen Punkten etwas anders.
Technische Daten des ESP8266 mit OLED Display von Ideaspark
Auf dem Mikrocontroller ist, wie der Name es erahnen lässt, ein ESP8266 verbaut, in diesem Fall ein ESP-12S.
MCU ESP12-S (ESP8266) auf dem Ideaspark
EigenschaftSpezifikationMikrocontrollerESP-12SBetriebsspannung3,0V – 3,6VBetriebstemperatur-20 °C ~ 85 °CDigital E/A Pins9InterfaceUART / HSPI / I2C / I2S / IR Remote Contorl / GPIO / ADC / PWMUART Baud rateSupport 300 ~ 4608000 bps, Default 115200 bpsAntennePCBFrequenzbereich2412 ~ 2484MHzSendeleistung802.11b: 16±2 dBm (@11Mbps), 802.11g: 14±2 dBm (@54Mbps), 802.11n: 13±2 dBm (@HT20, MCS7)Empfangs-empfindlichkeitCCK, 1 Mbps: -90dBm, CCK, 11 Mbps: -85dBm, 6 Mbps (1/2 BPSK): -88dBm, 54 Mbps (3/4 64-QAM): -70dBm, HT20, MCS7 (65 Mbps, 72.2 Mbps): -67dBmStromverbrauchContinuous Transmission: Durchschnitt ~71mA, Spitze 500mA, Modem Sleep: ~20mA, Light Sleep: ~2mA, Deep Sleep: ~0.02mASicherheitWEP / WPA-PSK / WPA2-PSKSPI Flash32MbitTaktgeschwindigkeit80MHz/160MHzCPU32-bitLänge24mmBreite16mm
Bezug
Den Mikrocontroller bekommst du günstig auf ebay.de für derzeit knapp 8 € inkl. Versandkosten. Aber auch auf aliexpress.com und anderen Plattformen aus dem asiatischen Raum findest du diesen recht günstig, jedoch mit deutlich längeren Lieferzeiten.
Lieferumfang
Bei meinem Paket war lediglich der Mikrocontroller in einer kleinen Plastikschale enthalten, du musst dir somit noch ein passendes Micro-USB-Kabel in entsprechender Länge kaufen.
Aufbau des Mikrocontrollers
Was besonders ins Auge fällt, ist das OLED Display, welches diesen Mikrocontroller, wie ich finde, besonders aufwertet.
ESP8266 von Ideaspark (Vorderseite)
ESP8266 von Ideaspark (Rückseite)
Eigenschaften des 0,96" OLED Displays
Kommen wir zunächst zu den technischen Daten des OLED-Displays:
- Größe: 0,96 Zoll (2,44 cm),
- Farbe: Gelb & Blau,
- Treiber: SSD1306,
- Betriebsspannung: 3.3V bis 5V,
- Betriebstemperatur: -30 °C bis 70 °C,
- Abmessung: 27 mm x 27 mm x 4 mm,
- Auflösung: 128 x 64 Punkte
Das verbaute OLED Display ist über I2C über die nachfolgenden Pins angeschlossen:
I2C PinGPIOPin NummerSDAGPIO126SCLGPIO145
Anschluss an den Computer
Schließen wir jetzt einmal den Mikrocontroller mit einem Micro-USB-Kabel an den Computer an. Ich verwende ein Microsoft Windows 10 (mit aktuellen Updates) und dieser wird sogleich als "USB-SERIAL CH340" erkannt (siehe Grafik).
Zeitgleich wird auf dem Display ein Text in gelb / blauer Schriftfarbe angezeigt.
Beispielprogramm auf dem ESP8266 mit OLED Display von Ideaspark
Einrichten des ESP8266 in der Arduino IDE
Damit wir diesen Mikrocontroller mit unseren Programmen bespielen können, müssen wir den Boardtreiber installieren. Für den Boardtreiber wiederum müssen wir noch eine Quelle für diesen anlegen und genau das machen in den nächsten Schritten.
Schritt 1 - Quelle für den Boardtreiber eintragen
Im ersten Schritt müssen wir eine zusätzliche Quelle für den Boardtreiber in den "Zusätzlichen Boardverwalter URLs" eintragen.
Die Adresse hier lautet:
https://arduino.esp8266.com/stable/package_esp8266com_index.json
Schritt 2 - Installieren des Boardtreibers über den Boardverwalter
Zum installieren des Boardtreibers öffnen wir den Boards Manager über das Icon links (1) und suchen dann nach "esp8266" (2) in meinem Fall wurde nur ein Eintrag gefunden "esp8266 by ESP8266 Community" an welchem die Schaltfläche "INSTALL" (3) betätigt wird.
Wenn der Vorgang abgeschlossen ist, sollte der Text " installed" (4) sichtbar werden und die Schaltfläche "INSTALL" zu "REMOVE" (5) ändern.
Schritt 3 - validieren der Installation
Im Abschluss spielen wir nun ein kleines Programm auf den Mikrocontroller, um zu testen, ob die Installation korrekt verlaufen ist.
#define led BUILTIN_LED
void setup() {
//beginn der seriellen Kommunikation mit 9600 baud
Serial.begin(9600);
//definieren das der Pin der BUILTIN_LED als Ausgang dient
pinMode(led, OUTPUT);
}
void loop() {
//Ausgeben des Textes "Hallo Welt!" auf der seriellen Schnittstelle
Serial.println("Hallo Welt!");
//aktivieren der LED
digitalWrite(led, HIGH);
//einlegen einer Pause von 500 Millisekunden
delay(500);
//deaktivieren der LED
digitalWrite(led, LOW);
//einlegen einer Pause von 500 Millisekunden
delay(500);
}
Programmieren des ESP8266 von Ideaspark
Nachdem der Treiber für den ESP8266 installiert wurde und wir geprüft haben, dass dieser korrekt arbeitet, können wir mit der Programmierung beginnen. Da dieser Mikrocontroller bereits über ein OLED Display verfügt, wollen wir jetzt mit einem Beispiel dazu starten.
Installieren der Bibliothek u8g2 für das OLED Display
Damit wir das verbaute OLED Display via I2C programmieren können, müssen wir zunächst eine Bibliothek installieren. Ich wähle hier u8g2 aus. Dazu klicken wir links auf den "Library Manager" (1) und suchen danach "u8g2" (2) aus den Suchergebnissen wählen wir im Eintrag "U8g2 by oliver" die Schaltfläche "INSTALL" (3) aus.
Wenn der Vorgang abgeschlossen ist, dann wir hier der Text " installed" (4) angezeigt und die Schaltfläche "INSTALL" ändert sich zu "REMOVE" (5).
Die Bibliothek u8g2 habe ich bereits in einigen anderen Beiträgen verwendet, ein großer Vorteil ist, dass diese recht klein ist und somit noch viel Speicher auf dem Mikrocontroller für das eigentliche Programm verbleibt.
Beispiel - "Hello World!" auf dem OLED Display ausgeben
Wenn die Bibliothek installiert wurde, können wir nachfolgendes kleines Programm auf dem Mikrocontroller ausführen und es sollte dann die Textzeile "Hello World!" angezeigt werden.
#include
#include
#ifdef U8X8_HAVE_HW_SPI
#include
#endif
#ifdef U8X8_HAVE_HW_I2C
#include
#endif
#define SDA_PIN 12 //GPIO12 / 6
#define SCL_PIN 14 //GPIO14 / 5
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL_PIN, SDA_PIN, U8X8_PIN_NONE);
void setup(void) {
u8g2.begin();
}
void loop(void) {
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_ncenB08_tr);
u8g2.drawStr(0,10,"Hello World!");
u8g2.sendBuffer();
delay(1000);
}
Beispiel - Ausgeben von WiFi Netzwerken auf dem Display
Wollen wir nun mit der WiFi Schnittstelle nach vorhandenen Netzwerken suchen und diese dann auf dem Display ausgeben. Als Grundgerüst nutze ich hier zunächst das Beispiel aus der ESP8266 Bibliothek WiFiScan, denn dieses erzeugt bereits die Ausgabe auf der seriellen Schnittstelle.
Ausgabe des Beispieles WiFiScan aus den ESP8266 Beispielen
Dieses müssen wir jetzt noch um die Ausgabe auf dem Display erweitern.
#include
#include
#include
#ifdef U8X8_HAVE_HW_SPI
#include
#endif
#ifdef U8X8_HAVE_HW_I2C
#include
#endif
#define SDA_PIN 12 //GPIO12 / 6
#define SCL_PIN 14 //GPIO14 / 5
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, SCL_PIN, SDA_PIN, U8X8_PIN_NONE);
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
WiFi.disconnect();
delay(100);
u8g2.begin();
}
void loop() {
String ssid;
int32_t rssi;
uint8_t encryptionType;
uint8_t *bssid;
int32_t channel;
bool hidden;
int scanResult;
scanResult = WiFi.scanNetworks(/*async=*/false, /*hidden=*/true);
if (scanResult == 0) {
Serial.println(F("Keine WiFi-Netzwerke gefunden"));
} else if (scanResult > 0) {
//Zwischenspeicher und Display leeren
u8g2.clearBuffer();
/Schriftgröße setzen
u8g2.setFont(u8g2_font_ncenB08_tr);
for (int8_t i = 0; i < scanResult; i++) {
WiFi.getNetworkInfo(i, ssid, encryptionType, rssi, bssid, channel, hidden);
printWiFiNetworkData(i, ssid.c_str());
Serial.printf(PSTR(" d: %sn"), i + 1, ssid.c_str());
yield();
}
//Absenden der Daten vom Zwischenspeichern an das Display
u8g2.sendBuffer();
} else {
Serial.printf(PSTR("WiFi scan error %d"), scanResult);
}
//5 Sekunden Pause zwischen den Scans
delay(5000);
}
//Ausgeben der Daten zum WiFi Netzwerk auf dem OLED Display
void printWiFiNetworkData(int idx, String name) {
String msg = String(idx, DEC) + " " + name;
u8g2.drawStr(0, idx * 15, msg.c_str());
}
Wenn ich nun nach draußen gehe, dann finde ich diverse WiFi-Netzwerke der Nachbarn.
Read the full article
0 notes