Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
B basis
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • m242
  • basis
  • Wiki
  • wifi

Last edited by Stephan Metzler Mar 01, 2019
Page history

wifi

k-wifi

Ausgangslage

  • WeMos D1 CH340 ESP8266 UNO Board / Wireless Board ESP8266
  • Arduino UNO kompatible
  • LCD SunStar 2004A

Bedingungen

  • HTTPS Kommunikation mit einem Server
    • Spielverlauf online darstellen
    • Spielresultate auf Datenbank persistieren

Aufbau

  • WeMos D1
    • als WeMos D1 programmieren, nicht als Arduino UNO
    • CH340 Treiber für Windows
    • CH340 MacOS Treiber
    • D1 WIFI UNO Board ist mit der Arduino IDE kompatibel und kann gleich programmiert werden
    • zuerst musst du dieses Board unter dem Boards Manager in der Arduino IDE installieren
    • Du findest das Board unter dem Namen esp8266
    • falls du das Board nicht findest musst du zuerst unter File=>Preferences=>Additonal Boards Manager URLs: http://arduino.esp8266.com/stable/package_esp8266com_index.json hinzufügen. Anschliessend unter Tools=>Boards=>Boards Manager kannst du den ESP8266 suchen und installieren. Sobald du das gemacht hast findest du unter den Boards diverse ESP8266 Boards die du anwählen kannst. Für dieses Board musst du den WeMos D1 anwählen.
  • Input
    • Wii Nunchuck - I2C Two-Wire Peripheral Interface
  • Output
    • LCD SunStar 2004A I2C
    • Serial Monitor (Konsole) UART
    • Led - D8
  • Input / Output
    • HTTPS

Handlungsziele

Vorgehen Hannok Handlungsnotwendige Kenntnisse
Kommunikation UART / I2C / HTTPS / Rx/Tx
Input/Output HTTPs GET request / respond
sinnvolle Datentypen define vs. const char* vs. String
Testbarkeit DEBUG, Loggen, ASSERT

Code Sample

  • Libraries:
    • ESP8266WiFi
    • ArduinoJson
/* HTTP over TLS (HTTPS) example sketch
   ESP8266 needs WLAN nach IEEE 802.11 b/g/n)
*/
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <Wire.h>

// use Newliquidcrystal_1.3.5
// https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/
#include <LiquidCrystal_I2C.h>

#define DELAY 1000
#define LINES 4
#define COUNTS 10

// use this params when connecting to komeo project
const char* SSID = "solve"; // use available
const char* PASSWORD = "84866882"; // set correct pw
const char* HOST = "m242-project.komeo.net"; // use yor class project
const int HTTPS_PORT = 443; // this is htts port
// use web browser to view and copy SHA1 fingerprint of the certificate
const char FINGERPRINT[] PROGMEM = "1f04e70199fae0a8a2185d4922b5f9630a4e68e3";

// LCD > I2C Address  0x27,EN,RW,RS,D4,D5,D6,D7
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7);
//LiquidCrystal_I2C lcd(0x27, 20, 4);

int count_SSID = 0;

void setup() {
  lcd.begin(20, 4);
  lcd.setBacklightPin(3, POSITIVE);
  lcd. setBacklight(HIGH);
  Serial.begin(19200);
  WiFi.mode(WIFI_STA);
  search_SSID();
}

// search SSID of WiFi Networks
void search_SSID() {
  Serial.print("searching SSID ... ");
  lcd.clear();
  lcd.home();
  lcd.print("searching SSID >> ");
  count_SSID = WiFi.scanNetworks();
  delay(DELAY);
  if (count_SSID == 0) {
    Serial.println("\nno SSID nearby found!");
    lcd.setCursor(0, 1);
    lcd.print("no SSID nearby");
  } else {
    Serial.println(count_SSID);
    lcd.print(count_SSID);
  }
  for (int i = 0; i < count_SSID; i++) {
    Serial.print(i + 1);
    Serial.print(" - SSID: ");
    Serial.print(WiFi.SSID(i));
    Serial.print(" - SIGNAL_STRENGTH: ");
    Serial.print(WiFi.RSSI(i));
    Serial.print("dB - SECURED: ");
    Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? "No" : "Yes");
  }
}

// display found SSID on LCD
void display_SSID() {
  static int count = 0;
  static int pos = 1;
  static int new_search = 1;
  lcd.setCursor(0, pos);
  lcd.print("                   ");
  lcd.setCursor(0, pos);
  lcd.print(count + 1);
  lcd.setCursor(2, pos);
  String ssid = (String)WiFi.SSID(count).substring(0, 14);
  lcd.print(ssid);
  lcd.setCursor(16, pos);
  lcd.print((String)WiFi.RSSI(count));
  lcd.setCursor(19, pos);
  String enc = (String)((WiFi.encryptionType(count) == ENC_TYPE_NONE) ? "" : "*");
  lcd.print(enc);

  // rotate SSID
  if (pos == LINES - 1) pos = 1;
  else if (pos == count_SSID) pos = 1;
  else pos++;
  if (count + 1 > count_SSID - 1) count = 0;
  else count++;
  
  if (new_search > COUNTS) {
    new_search = 1;
    count = 0;
    pos = 1;
    search_SSID();
  } else new_search++;
}

void loop() {
  if (count_SSID > 0) display_SSID();
  else search_SSID();
  delay(DELAY);
}
Clone repository

Home


1. und 2. Tag

Workshops

  • LCD
  • Led Bar
  • Led Ring
  • Led Stick
  • RFID
  • Speaker
  • WiFi

3. bis 5. Tag

Projekt


Utils

Nunchuck

Interrrupt

Testen


Bewertunsraster