BitBastelei #311 - Lange Funkstrecken mit Arduino, LoRaWAN/RFM95W und The Things Network
(361.8 MB) 00:23:35
2018-12-02 11:00
🛈
Wenn man Daten drahtlos übertragen möchte ist mit den üblichen Funkmodulen für Arduino & Co meist nach wenigen hundert Metern Schluss. Zwar gibt es mit Handymodulen einfache Möglichkeiten, jedoch ist hierzu eine entsprechende Datenkarte samt Vertrag notwendig. An dieser Stelle kommt die proprietäre Modulationsart „LoRa“ (Long Range) ins Spiel: Hiermit können draußen im frei Nutzbaren 868MHz-Bereich Strecken von mehreren Kilometern überbrückt werden. Wem das nicht reicht kann auf LoraWAN zurückgreifen. Hierbei betreiben Freiwillige und Firmen LoRa-Empfänger, welche empfangene Datenpakete ins Internet weiterleiten.
Ardunio-Library
https://github.com/matthijskooijman/arduino-lmic
LoRa-Videos von Andreas Spiess (EN)
https://www.youtube.com/watch?v=hMOwbNUpDQA&list=PL3XBzmAj53Rkkogh-lti58h_GkhzU1n7U
TheThingsNetwork
https://thethingsnetwork.org
Hamnetdb (Funkstrecken simulieren)
https://hamnetdb.net/map.cgi
RMOnline (Funkausbreitung simulieren)
http://www.ve2dbe.com/rmonline.html
BitBastelei #310 - VSCode und PlatformIO statt Arduino IDE
(144.1 MB) 00:32:35
2018-11-25 11:00
🛈
Die Arduino IDE dürfte nahezu jeder kennen, der mit Mikrocontrollern herumspielt. Ich selbst nutze in meinem Videos jedoch immer wieder auch PlatformIO auf Basis von VSCode. Daimmer mal wieder Fragen zur Einrichtung aufkamen also mal ein schneller Blick auf die Unterschiede, Installation und Funktionen.
BitBastelei #308 - LED-Matrix mit MAX7219
(489.6 MB) 00:22:16
2018-11-11 11:00
🛈
Wenn es darum geht viele LEDs anzusteuern gibt es viele Möglichkeiten: Serielle Systeme wie z.B. die
„Neopixel“-Streifen oder Matrizen wie z.B. bei meiner
7-Segment-Anzeige sind die häufigsten Vertreter. Letztere hatte ich zuletzt händisch mit Schieberegistern und Dekadenzählern aufgebaut – mit dem MAX7219 gibt es jedoch einen fertigen Controller, welcher einen deutlich einfacheren Aufbau verspricht.
Hinweise und Ergänzungen:
Code
BitBastelei #308 – LED-Matrix mit MAX7219 weiterlesen →
BitBastelei #305 - EC-Karten-Terminal-Recycling: LCD&Keypad an ESP8266
(318.1 MB) 00:30:29
2018-10-21 10:00
🛈
Vor einiger Zeit hatte ich ein altes EC-Kartenterminal zerlegt und schon angemerkt, dass man viele der Bauteile recyclen kann. Dieses mal geht es um das Display sowie die Tastatur – eigentlich eine einfache Aufgabe. Eigentlich.
Links
Quellcode Testsoftware
#include <Arduino.h>
#include <SPI.h>
#include <MCP23S17.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>
extern "C" {
#include "user_interface.h"
}
const char* kbdmap = "K##.0CRE321MSO654FTe987U";
const char* cmdmap = " +-*/";
#define ROWS 4
#define COLS 6
LiquidCrystal_PCF8574 lcd(0x27);
MCP gpio(0, 15);
int8_t last = 0;
String num1, num2;
byte cmd = 0;
void setPinMode(void) {
uint16_t out = 0xFFFF;
out <<= (ROWS);
gpio.pinMode(out);
gpio.pullupMode(out);
gpio.inputInvert(out);
out = ~out;
gpio.digitalWrite(out);
}
void startLCD(void) {
int error;
Serial.println("LCD...");
Wire.begin(D1, D2);
Wire.beginTransmission(0x27);
error = Wire.endTransmission();
Serial.print("Return: ");
Serial.print(error);
if (error == 0) {
Serial.println(": LCD found.");
} else {
Serial.println(": LCD not found.");
}
lcd.begin(20, 2); // initialize the lcd
lcd.home();
lcd.clear();
lcd.print("BitBa // POS-Matrix");
}
void setup() {
Serial.begin(115200);
Serial.print("\nInit...");
gpio.begin();
setPinMode();
Serial.println("OK");
startLCD();
}
int8_t checkKeys(void) {
byte row, col;
int input;
for(row = 0; row < ROWS; row++) {
gpio.digitalWrite(row, LOW);
delay(1);
input = gpio.digitalRead();
gpio.digitalWrite(row, HIGH);
for(col=0; col < COLS; col++) {
if(input & (1<<(ROWS + col))) {
return (byte)(COLS * row + col);
}
}
}
return -1;
}
void loop() {
int8_t input = checkKeys();
int8_t check = 0xFF;
float result = num2.toFloat();
bool change = false;
if(result == 0) result = num1.toFloat();
if(input < (COLS*ROWS) && input >= 0 && last != input) {
Serial.print(input);
Serial.print(": ");
last = input;
if(input >= 0) {
check = kbdmap[input];
Serial.print(check);
}else{
check = 0xFF;
}
Serial.println();
delay(15); //Poor maker debounce
}else{
check = 0xFF;
}
if(check != 0xFF) {
switch(check) {
//K##.0CRE321MSO654FTe987U
case 'K':
cmd = 4;
change = true;
break;
case 'R':
cmd = 3;
change = true;
break;
case 'S':
cmd = 2;
change = true;
break;
case 'T':
cmd = 1;
change = true;
break;
case 'C':
cmd = 0;
num1 = "";
num2 = "";
change = true;
break;
case 'U':
cmd = 0;
num2 = "";
change = true;
break;
case 'F':
if(cmd == 0) {
if(num1.length() > 0) num1.remove(num1.length()-1);
}else{
if(num2.length() > 0) num2.remove(num2.length()-1);
}
change = true;
break;
case '#':
switch(cmd) {
case 1:
result = num1.toFloat() + num2.toFloat();
break;
case 2:
result = num1.toFloat() - num2.toFloat();
break;
case 3:
result = num1.toFloat() * num2.toFloat();
break;
case 4:
result = num1.toFloat() / num2.toFloat();
break;
}
cmd = 0;
num1 = result;
num2 = "";
change = true;
break;
case '.':
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
if(cmd == 0) {
num1 += (char)check;
}else{
num2 += (char)check;
}
change = true;
}
if(change) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(num1);
if(cmd > 0) {
lcd.setCursor(18, 0);
lcd.print(" ");
lcd.print(cmdmap[cmd]);
lcd.setCursor(0, 1);
lcd.print(num2);
}
}
}
}
Hinweis: Der bei 19:40 gezeigter GPIO-Expander wurde mir seinerzeit von ICStation.com zur Verfügung gestellt.
BitBastelei #298 - BME280 am ESP8266: Temperatur, Luftfeuchte, Luftdruck per WLAN
(311.1 MB) 00:18:31
2018-09-02 10:00
🛈
Sensoren habe ich viele, der BME280 verspricht aber ein Alleskönner zu sein: Neben Temperatur und Luftfeuchte soll er auch den Luftdruck übermitteln können. Zusammen mit einem ESP8266 ist so schnell eine eigene „Wetterstation“ gebaut, welche die Messwerte auf einer Webseite anzeigt, per MQTT an Haussteuerungen wie HomeAssistant gibt oder mittels HTTP einen Volkszähler befüllt.
Code:
https://github.com/adlerweb/ESP8266-BME280-Multi
Video von Chris Figge
https://www.youtube.com/watch?v=KMwVNuzghsY
BitBastelei #296 - WiFi-Schalter Sonoff Basic - eWeLink, Tasmota, PlatformIO/Android
(277.5 MB) 00:31:55
2018-08-19 10:00
🛈
In der letzten Folge BitBasics hatten wir ja bereits gesehen, wie man mit einem ESP8266 einen WLAN-Schalter bauen kann. Heute werfen wir mal einen Blick auf ein kommerzielles Produkt.
Achtung: Der Anschluss an das öffentliche Stromnetz darf nur durch autorisiertes Fachpersonal erfolgen
Inhalt:
0:00 Das Gerät
4:24 Innenleben
6:26 Anschluss
8:39 eWeLink: Die offizielle App
13:32 Was ist Tasmota
15:11 Der Programmierport
23:07 Einrichtung und Nutzung von PlatformIO
26:09 Anpassung von Tasmota mit PlatformIO
28:47 Eigene Software mit PlatformIO
Links:
eWeLink: http://sonoff.itead.cc/en/ewelink
Tasmota: https://github.com/arendst/Sonoff-Tasmota
Produkt: https://amzn.to/2waRaFP *
oder: http://s.click.aliexpress.com/e/MizYO16 *
PlatformIO: https://platformio.org/
Selfmade-Code: https://github.com/adlerweb/sonoff-mqtt
* Affiliate-Link: Durch Nutzung erkennt der Anbieter, dass Ihr über meine Seite zu ihnen gefunden habt. Ich werde prozentual an euren Umsätzen beteiligt. Für euch bleiben die Preise natürlich gleich.
Das Gerät wurde selbst erworben.
BitNotice #133 - ESP32 jetzt direkt per Arduino nutzbar
(20.5 MB) 00:02:58
2018-08-14 19:45
🛈
Die Zeiten, in denen man selbst Hand anlegen musste sind vorbei: Seit einigen Tagen kann die ESP32-Toolchain für Arduino direkt über den Boardmanager installiert werden
BitBastelei #284 - Vernetzte Rauchmelder 3: Software und Prototyp
(610.9 MB) 00:30:58
2018-05-20 10:00
🛈
Den
Plan und den Aufbau der
Platine hatte ich ja bereits gezeigt, dieses mal geht es um die Software und den Einbau des Moduls in einen „echten“ Rauchmelder. Eigentlich keine große Sache, aber Murphy hatte offenbar seinen Spaß: FIFO-Bedenken, falsch hergestellte Kabel und ein paar Fehler im Platinenlayout machten daraus dann doch etwas mehr Aufwand. Am Ende läuft der Prototyp weitestgehend, nur der Stromverbrauch ist noch nicht dort, wo ich ihn vermuten würde.
Code:
https://github.com/adlerweb/RM-RF-Module
Hinweis:
Die gezeigte Platine wurde mir von JLCPCB.com kostenfrei zur Verfügung gestellt.
[JLCPCB] BitBastelei #279 - DIY Vernetzte Rauchmelder - Part 2
(1.6 GB) 00:29:02
2018-04-08 10:00
🛈
Bereits in der letzten Folge hatte ich erklärt, dass ich für einen Lagerbereich gerne Rauchmelder umbauen möchte, welche im Alarmfall nicht nur lokal Krach machen und sich auch bei Batterieproblemen und Ausfällen bemerkbar machen. Inzwischen ist das erste Prototyp-PCB fertig und wartet auf Aufbau und erste Tests.
Weitere Links
Hinweise
Die Platinen wurden von JLCPCB.com für dieses Video kostenfrei gefertigt.
[ICStation.com] BitBastelei #278 - MCP23S17/MCP23017 IO-Multiplexer
(169.4 MB) 00:20:02
2018-04-01 22:00
🛈
Schalter, LEDs, Motoren – fast Alles, was man von Mikrocontrollern steuern möchte, benötigt GPIO – aber was, wenn der IC nicht genug hat? Bereits vor einiger Zeit hatte ich gezeigt, wie man mit Schieberegistern sich zusätzliche IO-Pins verschaffen kann. Mit dem MCP23S17/MCP23017 gibt es eine Alternative, welche über standardisierte Bus-Systeme angesprochen werden kann und auch Interrupts beherrschen, was für Anwendungen mit vielen Eingängen gegenüber anderen Methoden enorme Energieeinsparungen bringen kann.
Links:
Hinweise:
Das Modul wurde mir von ICStation.com für dieses Video kostenfrei zur Verfügung gestellt.