DHT11, RTC and LCD

// include the library code:
#include <LiquidCrystal.h> // include the LCD library

const int rs = PB11, en = PB10, d4 = PA4, d5 = PA3, d6 = PA2, d7 = PA1; //STM32 Pins to which LCD is connected 
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); //Initialize the LCD
              
#include <DHT.h>  //Library for using DHT sensor 

#define DHTPIN PA0 
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);     //initilize object dht for class DHT with DHT pin with STM32 and DHT type as DHT11

#include <STM32RTC.h>
/* Get the rtc object */
STM32RTC& rtc = STM32RTC::getInstance();

/* Change these values to set the current initial time */
const byte seconds = 0;
const byte minutes = 11;
const byte hours = 10;

/* Change these values to set the current initial date */
const byte weekDay = 1;
const byte day = 29;
const byte month = 2;
const byte year = 20;

/*Setup IO Pins*/
#define pinLED PC13

void setup()
{ 
  rtc.begin(); // initialize RTC 24H format
  rtc.setTime(hours, minutes, seconds);
  rtc.setDate(weekDay, day, month, year);

  pinMode(pinLED, OUTPUT);
  
  // initialize the LCD
  lcd.begin(20,4);
  dht.begin();                                  
  lcd.print("DHT11 with STM32");
  delay(3000);
  lcd.clear();
}

void loop()
{
  float h = dht.readHumidity();       //Gets Humidity value
  float t = dht.readTemperature();    //Gets Temperature value
  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(0,1);
  lcd.print("Humid: ");
  lcd.print(h);
  lcd.print(" %");

  // Print date...
  lcd.setCursor(0,3);
  print2digits(rtc.getDay());
  lcd.print("/");
  print2digits(rtc.getMonth());
  lcd.print("/");
  print2digits(rtc.getYear());
  lcd.print(" ");

  // ...and time
  print2digits(rtc.getHours());
  lcd.print(":");
  print2digits(rtc.getMinutes());
  lcd.print(":");
  print2digits(rtc.getSeconds());

  //Serial.println();

  digitalWrite(pinLED, HIGH);
  delay(100);
  digitalWrite(pinLED, LOW);
  
}

void print2digits(int number) {
  if (number < 10) {
    lcd.print("0"); // print a 0 before if the number is < than 10
  }
  lcd.print(number);
}
Write comment (0 Comments)

Datenschutzerklärung

Personenbezogene Daten (nachfolgend zumeist nur „Daten“ genannt) werden von uns nur im Rahmen der Erforderlichkeit sowie zum Zwecke der Bereitstellung eines funktionsfähigen und nutzerfreundlichen Internetauftritts, inklusive seiner Inhalte und der dort angebotenen Leistungen, verarbeitet.

Gemäß Art. 4 Ziffer 1. der Verordnung (EU) 2016/679, also der Datenschutz-Grundverordnung (nachfolgend nur „DSGVO“ genannt), gilt als „Verarbeitung“ jeder mit oder ohne Hilfe automatisierter Verfahren ausgeführter Vorgang oder jede solche Vorgangsreihe im Zusammenhang mit personenbezogenen Daten, wie das Erheben, das Erfassen, die Organisation, das Ordnen, die Speicherung, die Anpassung oder Veränderung, das Auslesen, das Abfragen, die Verwendung, die Offenlegung durch Übermittlung, Verbreitung oder eine andere Form der Bereitstellung, den Abgleich oder die Verknüpfung, die Einschränkung, das Löschen oder die Vernichtung.

Mit der nachfolgenden Datenschutzerklärung informieren wir Sie insbesondere über Art, Umfang, Zweck, Dauer und Rechtsgrundlage der Verarbeitung personenbezogener Daten, soweit wir entweder allein oder gemeinsam mit anderen über die Zwecke und Mittel der Verarbeitung entscheiden. Zudem informieren wir Sie nachfolgend über die von uns zu Optimierungszwecken sowie zur Steigerung der Nutzungsqualität eingesetzten Fremdkomponenten, soweit hierdurch Dritte Daten in wiederum eigener Verantwortung verarbeiten.

Unsere Datenschutzerklärung ist wie folgt gegliedert:

I. Informationen über uns als Verantwortliche
II. Rechte der Nutzer und Betroffenen
III. Informationen zur Datenverarbeitung

I. Informationen über uns als Verantwortliche

Verantwortlicher Anbieter dieses Internetauftritts im datenschutzrechtlichen Sinne ist:

Hannes Rohrhofer
This email address is being protected from spambots. You need JavaScript enabled to view it.

 

II. Rechte der Nutzer und Betroffenen

Mit Blick auf die nachfolgend noch näher beschriebene Datenverarbeitung haben die Nutzer und Betroffenen das Recht

  • auf Bestätigung, ob sie betreffende Daten verarbeitet werden, auf Auskunft über die verarbeiteten Daten, auf weitere Informationen über die Datenverarbeitung sowie auf Kopien der Daten (vgl. auch Art. 15 DSGVO);
  • auf Berichtigung oder Vervollständigung unrichtiger bzw. unvollständiger Daten (vgl. auch Art. 16 DSGVO);
  • auf unverzügliche Löschung der sie betreffenden Daten (vgl. auch Art. 17 DSGVO), oder, alternativ, soweit eine weitere Verarbeitung gemäß Art. 17 Abs. 3 DSGVO erforderlich ist, auf Einschränkung der Verarbeitung nach Maßgabe von Art. 18 DSGVO;
  • auf Erhalt der sie betreffenden und von ihnen bereitgestellten Daten und auf Übermittlung dieser Daten an andere Anbieter/Verantwortliche (vgl. auch Art. 20 DSGVO);
  • auf Beschwerde gegenüber der Aufsichtsbehörde, sofern sie der Ansicht sind, dass die sie betreffenden Daten durch den Anbieter unter Verstoß gegen datenschutzrechtliche Bestimmungen verarbeitet werden (vgl. auch Art. 77 DSGVO).

Darüber hinaus ist der Anbieter dazu verpflichtet, alle Empfänger, denen gegenüber Daten durch den Anbieter offengelegt worden sind, über jedwede Berichtigung oder Löschung von Daten oder die Einschränkung der Verarbeitung, die aufgrund der Artikel 16, 17 Abs. 1, 18 DSGVO erfolgt, zu unterrichten. Diese Verpflichtung besteht jedoch nicht, soweit diese Mitteilung unmöglich oder mit einem unverhältnismäßigen Aufwand verbunden ist. Unbeschadet dessen hat der Nutzer ein Recht auf Auskunft über diese Empfänger.

Ebenfalls haben die Nutzer und Betroffenen nach Art. 21 DSGVO das Recht auf Widerspruch gegen die künftige Verarbeitung der sie betreffenden Daten, sofern die Daten durch den Anbieter nach Maßgabe von Art. 6 Abs. 1 lit. f) DSGVO verarbeitet werden. Insbesondere ist ein Widerspruch gegen die Datenverarbeitung zum Zwecke der Direktwerbung statthaft.

III. Informationen zur Datenverarbeitung

Ihre bei Nutzung unseres Internetauftritts verarbeiteten Daten werden gelöscht oder gesperrt, sobald der Zweck der Speicherung entfällt, der Löschung der Daten keine gesetzlichen Aufbewahrungspflichten entgegenstehen und nachfolgend keine anderslautenden Angaben zu einzelnen Verarbeitungsverfahren gemacht werden.

Serverdaten

Aus technischen Gründen, insbesondere zur Gewährleistung eines sicheren und stabilen Internetauftritts, werden Daten durch Ihren Internet-Browser an uns bzw. an unseren Webspace-Provider übermittelt. Mit diesen sog. Server-Logfiles werden u.a. Typ und Version Ihres Internetbrowsers, das Betriebssystem, die Website, von der aus Sie auf unseren Internetauftritt gewechselt haben (Referrer URL), die Website(s) unseres Internetauftritts, die Sie besuchen, Datum und Uhrzeit des jeweiligen Zugriffs sowie die IP-Adresse des Internetanschlusses, von dem aus die Nutzung unseres Internetauftritts erfolgt, erhoben.

Diese so erhobenen Daten werden vorrübergehend gespeichert, dies jedoch nicht gemeinsam mit anderen Daten von Ihnen.

Diese Speicherung erfolgt auf der Rechtsgrundlage von Art. 6 Abs. 1 lit. f) DSGVO. Unser berechtigtes Interesse liegt in der Verbesserung, Stabilität, Funktionalität und Sicherheit unseres Internetauftritts.

Die Daten werden spätestens nach sieben Tage wieder gelöscht, soweit keine weitere Aufbewahrung zu Beweiszwecken erforderlich ist. Andernfalls sind die Daten bis zur endgültigen Klärung eines Vorfalls ganz oder teilweise von der Löschung ausgenommen.

Cookies

a) Sitzungs-Cookies/Session-Cookies

Wir verwenden mit unserem Internetauftritt sog. Cookies. Cookies sind kleine Textdateien oder andere Speichertechnologien, die durch den von Ihnen eingesetzten Internet-Browser auf Ihrem Endgerät ablegt und gespeichert werden. Durch diese Cookies werden im individuellen Umfang bestimmte Informationen von Ihnen, wie beispielsweise Ihre Browser- oder Standortdaten oder Ihre IP-Adresse, verarbeitet.  

Durch diese Verarbeitung wird unser Internetauftritt benutzerfreundlicher, effektiver und sicherer, da die Verarbeitung bspw. die Wiedergabe unseres Internetauftritts in unterschiedlichen Sprachen oder das Angebot einer Warenkorbfunktion ermöglicht.

Rechtsgrundlage dieser Verarbeitung ist Art. 6 Abs. 1 lit b.) DSGVO, sofern diese Cookies Daten zur Vertragsanbahnung oder Vertragsabwicklung verarbeitet werden.

Falls die Verarbeitung nicht der Vertragsanbahnung oder Vertragsabwicklung dient, liegt unser berechtigtes Interesse in der Verbesserung der Funktionalität unseres Internetauftritts. Rechtsgrundlage ist in dann Art. 6 Abs. 1 lit. f) DSGVO.

Mit Schließen Ihres Internet-Browsers werden diese Session-Cookies gelöscht.

b) Drittanbieter-Cookies

Gegebenenfalls werden mit unserem Internetauftritt auch Cookies von Partnerunternehmen, mit denen wir zum Zwecke der Werbung, der Analyse oder der Funktionalitäten unseres Internetauftritts zusammenarbeiten, verwendet.

Die Einzelheiten hierzu, insbesondere zu den Zwecken und den Rechtsgrundlagen der Verarbeitung solcher Drittanbieter-Cookies, entnehmen Sie bitte den nachfolgenden Informationen.

c) Beseitigungsmöglichkeit

Sie können die Installation der Cookies durch eine Einstellung Ihres Internet-Browsers verhindern oder einschränken. Ebenfalls können Sie bereits gespeicherte Cookies jederzeit löschen. Die hierfür erforderlichen Schritte und Maßnahmen hängen jedoch von Ihrem konkret genutzten Internet-Browser ab. Bei Fragen benutzen Sie daher bitte die Hilfefunktion oder Dokumentation Ihres Internet-Browsers oder wenden sich an dessen Hersteller bzw. Support. Bei sog. Flash-Cookies kann die Verarbeitung allerdings nicht über die Einstellungen des Browsers unterbunden werden. Stattdessen müssen Sie insoweit die Einstellung Ihres Flash-Players ändern. Auch die hierfür erforderlichen Schritte und Maßnahmen hängen von Ihrem konkret genutzten Flash-Player ab. Bei Fragen benutzen Sie daher bitte ebenso die Hilfefunktion oder Dokumentation Ihres Flash-Players oder wenden sich an den Hersteller bzw. Benutzer-Support.

Sollten Sie die Installation der Cookies verhindern oder einschränken, kann dies allerdings dazu führen, dass nicht sämtliche Funktionen unseres Internetauftritts vollumfänglich nutzbar sind.

Kundenkonto / Registrierungsfunktion

Falls Sie über unseren Internetauftritt ein Kundenkonto bei uns anlegen, werden wir die von Ihnen bei der Registrierung eingegebenen Daten (also bspw. Ihren Namen, Ihre Anschrift oder Ihre E-Mail-Adresse) ausschließlich für vorvertragliche Leistungen, für die Vertragserfüllung oder zum Zwecke der Kundenpflege (bspw. um Ihnen eine Übersicht über Ihre bisherigen Bestellungen bei uns zur Verfügung zu stellen oder um Ihnen die sog. Merkzettelfunktion anbieten zu können) erheben und speichern. Gleichzeitig speichern wir dann die IP-Adresse und das Datum Ihrer Registrierung nebst Uhrzeit. Eine Weitergabe dieser Daten an Dritte erfolgt natürlich nicht.

Im Rahmen des weiteren Anmeldevorgangs wird Ihre Einwilligung in diese Verarbeitung eingeholt und auf diese Datenschutzerklärung verwiesen. Die dabei von uns erhobenen Daten werden ausschließlich für die Zurverfügungstellung des Kundenkontos verwendet. 

Soweit Sie in diese Verarbeitung einwilligen, ist Art. 6 Abs. 1 lit. a) DSGVO Rechtsgrundlage für die Verarbeitung.

Sofern die Eröffnung des Kundenkontos zusätzlich auch vorvertraglichen Maßnahmen oder der Vertragserfüllung dient, so ist Rechtsgrundlage für diese Verarbeitung auch noch Art. 6 Abs. 1 lit. b) DSGVO.

Die uns erteilte Einwilligung in die Eröffnung und den Unterhalt des Kundenkontos können Sie gemäß Art. 7 Abs. 3 DSGVO jederzeit mit Wirkung für die Zukunft widerrufen. Hierzu müssen Sie uns lediglich über Ihren Widerruf in Kenntnis setzen.

Die insoweit erhobenen Daten werden gelöscht, sobald die Verarbeitung nicht mehr erforderlich ist. Hierbei müssen wir aber steuer- und handelsrechtliche Aufbewahrungsfristen beachten.

Google Analytics

In unserem Internetauftritt setzen wir Google Analytics ein. Hierbei handelt es sich um einen Webanalysedienst der Google Ireland Limited, Gordon House, Barrow Street, Dublin 4, Irland, nachfolgend nur „Google“ genannt.

Durch die Zertifizierung nach dem EU-US-Datenschutzschild („EU-US Privacy Shield“)

https://www.privacyshield.gov/participant?id=a2zt000000001L5AAI&status=Active

garantiert Google, dass die Datenschutzvorgaben der EU auch bei der Verarbeitung von Daten in den USA eingehalten werden.

Der Dienst Google Analytics dient zur Analyse des Nutzungsverhaltens unseres Internetauftritts. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f) DSGVO. Unser berechtigtes Interesse liegt in der Analyse, Optimierung und dem wirtschaftlichen Betrieb unseres Internetauftritts.

Nutzungs- und nutzerbezogene Informationen, wie bspw. IP-Adresse, Ort, Zeit oder Häufigkeit des Besuchs unseres Internetauftritts, werden dabei an einen Server von Google in den USA übertragen und dort gespeichert. Allerdings nutzen wir Google Analytics mit der sog. Anonymisierungsfunktion. Durch diese Funktion kürzt Google die IP-Adresse schon innerhalb der EU bzw. des EWR.

Die so erhobenen Daten werden wiederum von Google genutzt, um uns eine Auswertung über den Besuch unseres Internetauftritts sowie über die dortigen Nutzungsaktivitäten zur Verfügung zu stellen. Auch können diese Daten genutzt werden, um weitere Dienstleistungen zu erbringen, die mit der Nutzung unseres Internetauftritts und der Nutzung des Internets zusammenhängen.

Google gibt an, Ihre IP-Adresse nicht mit anderen Daten zu verbinden. Zudem hält Google unter

https://www.google.com/intl/de/policies/privacy/partners

weitere datenschutzrechtliche Informationen für Sie bereit, so bspw. auch zu den Möglichkeiten, die Datennutzung zu unterbinden.

Zudem bietet Google unter

https://tools.google.com/dlpage/gaoptout?hl=de

ein sog. Deaktivierungs-Add-on nebst weiteren Informationen hierzu an. Dieses Add-on lässt sich mit den gängigen Internet-Browsern installieren und bietet Ihnen weitergehende Kontrollmöglichkeit über die Daten, die Google bei Aufruf unseres Internetauftritts erfasst. Dabei teilt das Add-on dem JavaScript (ga.js) von Google Analytics mit, dass Informationen zum Besuch unseres Internetauftritts nicht an Google Analytics übermittelt werden sollen. Dies verhindert aber nicht, dass Informationen an uns oder an andere Webanalysedienste übermittelt werden. Ob und welche weiteren Webanalysedienste von uns eingesetzt werden, erfahren Sie natürlich ebenfalls in dieser Datenschutzerklärung.

Write comment (0 Comments)

Ich geboren Baujahr 1981, früh packte mich die Leidenschaft für Elektronik und Technik.

Ich habe mich schon intensiv mit Elektronik und hardwarenaher Software auseinandergesetzt, mein aktueller Schwerpunkt ist das Fertigen und Bestücken von Leiterplatten.
Aber auch die Digitale Fotografie und der Aufbau und Betrieb einer kleinen CNC-Fräse gehört zu meinen Hobby's.

Im laufe der Jahre veröffentlichte ich hier Projekte aus dem Bereich der Elektrotechnik und das wir auch weiterhin geschehen ... :-)

Für Fragen und Support stehe ich unter  hannes[at]rohrhofer(.)org gerne zur Verfügung!

----

 

I born in 1981, early on I was passionate about electronics and technology.

I have already dealt extensively with electronics and hardware-related software, my current focus is the manufacture and assembly of printed circuit boards.
But digital photography and the construction and operation of a small CNC milling machine is also one of my hobbies.

Over the years I have published projects in the field of electrical engineering and I will continue to do so ... :-)

If you have any questions please feel free to contact me per hannes[at]rohrhofer(.)org

Write comment (0 Comments)

Unfortunately, my "I-Robot Roomba" model doesn't come with a remote or a scheduler to allow scheduled cleans during the day while I was out.  

I had to PRESS A BUTTON before I left the house to make it clean! Not hard but I generally forgot to do it. 

And heres the solution:

 WiFi Web Server Roomba Starter
 A simple web server that lets start you a iRobot Roomba via the web.
 This sketch will print the IP address of your WiFi Shield (once connected)
 to the Serial monitor. From there, you can open that address in a web browser
 to start cleaning or dock the roomba.


 If the IP address of your shield is yourAddress:
 http://yourAddress/H sends cleaning command
 http://yourAddress/L sends dock command

I use my mobile or my homeautomation system to schedule the cleaning task and start the roomba via wifi via http request.

 
created for arduino ide

 
Here a pic of my quick 'n dirty work. :-) In near future i want to move these parts into the roomba, i hope theres a bit space for it. (*) I allready built it into the Roomba, and it works perfect!

What you'll need:  

- Ardunio IDE -  Arduino IDE - Download

- Arduino core for ESP32 WiFi chip - please follow the install instructions on their site

- The Arduino-Sketch for this Roomba Wifi Starter

Important: 
- A Roomba

Components: 
- 1 x ESP32 dev Board
- 1 x DC-DC Converter

 

For communication between the Roomba and ESP32, the Serial Port will be used. By default, Roomba communicates at 115,200 baud.

The above diagram shows how the ESP32 should be connected to Roomba Mini-DIN connector.

 * Roomba wakeup pin attached to pin 5
 * Roomba RXD pin attached to pin 17

 

* Built in
First Step: Removed all Pin headers to save place



I'm thankfully to this site -->How to Open Up Roomba  it helped me through the "destruction" of my roomba.
I found some place near the DC Plug, i had to remove it, but anyway I never used it. (Important update: Don't remove the DC-Plug, because the Roomba won't allow loading from the docking station. I had to install it again.)
The wires are solderd directly to the pins underneath the Roomba Plug.

Finnaly I'm very happy with my build! :-) There is nothing to see that this roomba is hacked with an ESP32. This optimizes the usabillity and makes my wife also happy! :-)

 

If you realise this project with my help it would be nice if you leave a comment with your experience!
Thank you!

 

Write comment (0 Comments)

Here comes a tutorial for the old  mydata converter "V51/2015", please note that this is the old version of the cadconverter.


Open a file

Name the PCB
Setting up reference points
Import settings
Search and replace components
Check your data
Export Data
Import in Tpsys


1. open your file

Use the "open file" button and open the file that contains the XY placment data from your developers cad programm.

Note:
Some CAD programs export the comma as a dot ".", be sure that it is a ',' and be sure that the tab delimiter is an other character!
If not, you can correct this easily with MS Excel. Just import the file as txt/csv and "search and replace" all dots with a "," and save it as a ".csv" file. Sometimes Excel converts some coordinates into a date format please, check this also.

2. Name the PCB

Fill in the Name and description in the "Project Name" and " Project Description" field.

3. Set up to 3 reference points

Take 2 or 3 reference points anywhere on your board and take the coordinates of these points from your developer CAD (The best way is to look in the gerber files of your board!).
Please note: It doesn't matter where the X0 Y0 Point of your CAD data is.

 

Example:

Find the coordinates of the reference point in your CAD-Program and enter it in the „refpoint“ fields.

 


Just remember that you have to manually find/teach the reference points the first time on your machine, because the machine otherwise messes up all of your coordinates.

4. Fill in your import settings

which are:

   - the start / end line in your previus opend file.
   - set the delimiter of your file (standard is "space")
   - the tab positions of the necessary coordinates and Partnames and if the data isn't provided as a µm, then you can set a multiplier to correct them.
If you entered it press "Import"

 

 

5. Replace components with components from your machine

To use this feature please export all components from your machine and place the file as "cmp.cmp" in the same folder where the MYDATA-Cadconverter is located.

Here are some screenshots from the machine:

step1
(X) for Export

step2

(T) for components

step3

Use "Crtl+A" to select all of your components!

step4

Save the file as "cmp.cmp" and place it in the MYDATA Cad Converter directory.

 

search and replace

 Use this feature after you imported your data with the correct settings (X,Y,Angle)

5.1 Click on the Search and Replace Button and the "Serach and Replace Components" window opens.
5.2 Double Click on the Partname will add this component in the "Component to replace" textbox.
5.3 Click on the cmpNr or cmName on your partlist will add it to the "Replace it with this component"
      To find your component quickly you can enter a search phrase in the "filter" textbox.
5.4 Finnaly you can replace the partname you have clicked in the main window by click on the "Replace" button. Or you can replace all partnames that are similar in the main window by clicking on the "Replace all" button.

 

6. Check your Data

In the Datagrid you can check the imported data whether the data has been imported correctly. Here you have the option to correct it or delete unnessesary data lines.

Be sure your coordinates are in "µm" that means 2,12mm, should be: 2120 in the datagrid.

Check also your angle data: 90° means 90000 in the datagrid.

If you adjust some import settings after you imported it, click "Import" again and it will apply your new settings.

7. Export

Finaly, if you ready press "write file" and your conversion is ready to import on you mydata pick and place machine!

8. Import in TPSYS

Follow these steps on your machine:

The screenshots are unfortunately in German language, I hope you can see how the import will still work

 

screenshot1

screenshot2

 

screenshot3

And then follow the instructions on your machine.

Just remember that you have to manually find/teach the reference points the first time on your machine, because the machine otherwise messes up all of your coordinates.

 

Write comment (0 Comments)