<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="da">
	<id>https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=WeMOS_Mail</id>
	<title>WeMOS Mail - Versionshistorie</title>
	<link rel="self" type="application/atom+xml" href="https://www.htxarduino.dk/index.php?action=history&amp;feed=atom&amp;title=WeMOS_Mail"/>
	<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=WeMOS_Mail&amp;action=history"/>
	<updated>2026-07-29T17:17:53Z</updated>
	<subtitle>Versionshistorie for denne side i HTX Arduino</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=WeMOS_Mail&amp;diff=1750&amp;oldid=prev</id>
		<title>Bar: 1 version importeret</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=WeMOS_Mail&amp;diff=1750&amp;oldid=prev"/>
		<updated>2022-10-21T12:36:37Z</updated>

		<summary type="html">&lt;p&gt;1 version importeret&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;da&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Ældre version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen fra 21. okt. 2022, 14:36&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;da&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen forskel)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Bar</name></author>
	</entry>
	<entry>
		<id>https://www.htxarduino.dk/index.php?title=WeMOS_Mail&amp;diff=1749&amp;oldid=prev</id>
		<title>htx_&gt;Bar: /* Eksempel på hele koden */</title>
		<link rel="alternate" type="text/html" href="https://www.htxarduino.dk/index.php?title=WeMOS_Mail&amp;diff=1749&amp;oldid=prev"/>
		<updated>2020-12-03T21:45:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Eksempel på hele koden&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny side&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{template:WeMOS-software}}&lt;br /&gt;
Den grundlæggende ide i denne kode er at sende en kommando fra den serielle monitor, og via WeMOS WiFi sende en henvendelse til en webserver&amp;lt;ref&amp;gt;[https://techtutorialsx.com/2016/07/17/esp8266-http-get-requests/ Get HTTP request]&amp;lt;/ref&amp;gt; med et lille PHP-script, der kan sende en mail, med et indhold bestem af det der er indtastet i Serial Monitor&lt;br /&gt;
==Forbindelse til WiFi==&lt;br /&gt;
Selve forbindelsen til WiFi er lavet som beskrevet ved [[WeMOS Server Connection]], og skal blot etablere forbindelsen til WiFi netværket.&lt;br /&gt;
&lt;br /&gt;
For at den samlede kode kan fungere, så skal det netværk der forbindes til have forbindelse til internettet, så man kan komme i kontakt med webserveren med PHP-scriptet.&lt;br /&gt;
&lt;br /&gt;
==Opsætning til HTTP-request==&lt;br /&gt;
For at man kan sende en besked til webserveren, så skal man have adgange til HTTP-request biblioteket, og der skal oprettes at HTTP-objekt.&lt;br /&gt;
&lt;br /&gt;
Dette sker i følgende kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266HTTPClient.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HTTPClient http;&lt;br /&gt;
&lt;br /&gt;
int httpCode;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Webserver henvendelse==&lt;br /&gt;
For at henvende sig til webserveren på simpel vis anvendes GET-metoden. Hvis man skulle gøre det med større sikkerhed, så skulle man anvende POST-metoden&amp;lt;ref&amp;gt;[https://techtutorialsx.com/2016/07/21/esp8266-post-requests/ Webserver POST requests]&amp;lt;/ref&amp;gt;, og man burde også sikre webserveren med et login - det er ikke gjort i dette eksempel.&lt;br /&gt;
&lt;br /&gt;
Selve webserveren har en http-adresse, der angives i en variabel som vist her:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
const String serverAddress = &amp;quot;http://htx-elev.ucholstebro.dk/HX-class/user/&amp;quot;;      // Webserverens URL&lt;br /&gt;
&lt;br /&gt;
  String stringToSend = serverAddress;  // Serveradressen der skal henvendes til&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
På Holstebro HTX har vi webserver på adressen htx-elev.ucholstebro.dk, hvor man kan uploade sine scipts, når holdet er oprettet med de brugere der er på holdet. Serveren har installeret en mailserver, så man kan sende mails fra scriptet. Webserveren er nærmere beskrevet på [http://htx-elev.ucholstebro.dk/docs/htx-srv.pdf Beskrivelse af htx-elev Webserver].&lt;br /&gt;
&lt;br /&gt;
Man kan naturligvis også anvende andre webservere, hvis de understøtter PHP og har en mailserver tilknyttet.&lt;br /&gt;
&lt;br /&gt;
Inde på webserveren ligger PHP-filen, som skal tilføjes henvendelsen som vist her:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
  stringToSend += &amp;quot;sendMail.php?send=&amp;quot;; // Filnavnet og parameter-navn&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der tilføjes også navnet på parameteren (send).&lt;br /&gt;
&lt;br /&gt;
Endelig tages et input fra den serielle monitor, og der sikres at det kun er selve det indtastede man tager med. Dette tilføjes henvendelsen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
    String param = Serial.readStringUntil(&amp;#039;\n&amp;#039;);  // Læs en hel streng&lt;br /&gt;
    param.trim();                         // Fjern mellemrum og linjeskift fra start og slut&lt;br /&gt;
    stringToSend += param;                // Indholdet der skal sendes&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Herefter foretages selve henvendelsen til webserveren med en HTTP-henvendelse:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
    http.setTimeout(2000);                                 // Use 2 seconds timeout for HTTP connection&lt;br /&gt;
    http.begin(stringToSend);                              // Start HTTP connection and send HTTP header&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Connection response==&lt;br /&gt;
Henvendelsen til webserveren giver en respons, som man skal tjekke for at se om henvendelsen gik godt.&lt;br /&gt;
&lt;br /&gt;
Dette returnerer en kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
    httpCode = http.GET();                                 // Get response from HTTP request&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henvendelsen giver også en respons, der her udskrives til seriel monitor&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
    if(httpCode &amp;gt; 0)                                       // httpCode will be negative on error&lt;br /&gt;
    {      &lt;br /&gt;
      Serial.printf(&amp;quot;[HTTP] GET... code: %d\n&amp;quot;, httpCode); // Response from server is not an error&lt;br /&gt;
      if(httpCode == HTTP_CODE_OK) {                       // Response from server is HTTP CODE 200&lt;br /&gt;
        String payload = http.getString();&lt;br /&gt;
        Serial.println(payload);&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.printf(&amp;quot;[HTTP] GET... failed, error: %s\n&amp;quot;, http.errorToString(httpCode).c_str());&lt;br /&gt;
    }&lt;br /&gt;
    http.end();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Efter endt henvendelse lukkes forbindelsen igen.&lt;br /&gt;
&lt;br /&gt;
==Eksempel på hele koden==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266WiFi.h&amp;gt;&lt;br /&gt;
#include &amp;lt;ESP8266HTTPClient.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
HTTPClient http;&lt;br /&gt;
&lt;br /&gt;
int httpCode;&lt;br /&gt;
&lt;br /&gt;
const String serverAddress = &amp;quot;http://htx-elev.ucholstebro.dk/HX-hold/user/&amp;quot;;      // Webserverens URL&lt;br /&gt;
&lt;br /&gt;
const char* ssid = &amp;quot;ssid-name&amp;quot;;&lt;br /&gt;
const char* password = &amp;quot;ssid-password&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
WiFiServer server(80);&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  Serial.begin(115200);&lt;br /&gt;
  delay(10);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  // Connect to WiFi network&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  Serial.print(&amp;quot;Connecting to &amp;quot;);&lt;br /&gt;
  Serial.println(ssid);&lt;br /&gt;
&lt;br /&gt;
  WiFi.begin(ssid, password);&lt;br /&gt;
&lt;br /&gt;
  while (WiFi.status() != WL_CONNECTED) {&lt;br /&gt;
    delay(500);&lt;br /&gt;
    Serial.print(&amp;quot;.&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println(&amp;quot;&amp;quot;);&lt;br /&gt;
  Serial.println(&amp;quot;WiFi connected&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // Start the server&lt;br /&gt;
  server.begin();&lt;br /&gt;
  Serial.println(&amp;quot;Server started&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  // Print the IP address&lt;br /&gt;
  Serial.print(&amp;quot;Use this URL : &amp;quot;);&lt;br /&gt;
  Serial.print(&amp;quot;http://&amp;quot;);&lt;br /&gt;
  Serial.print(WiFi.localIP());&lt;br /&gt;
  Serial.println(&amp;quot;/&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  String stringToSend = serverAddress;  // Serveradressen der skal henvendes til&lt;br /&gt;
  if (Serial.available()) {&lt;br /&gt;
    stringToSend += &amp;quot;sendMail.php?send=&amp;quot;; // Filnavnet og parameter-navn&lt;br /&gt;
&lt;br /&gt;
    String param = Serial.readStringUntil(&amp;#039;\n&amp;#039;);  // Læs en hel streng&lt;br /&gt;
    param.trim();                         // Fjern mellemrum og linjeskift fra start og slut&lt;br /&gt;
    stringToSend += param;                // Indholdet der skal sendes&lt;br /&gt;
&lt;br /&gt;
    http.setTimeout(2000);                                 // Use 2 seconds timeout for HTTP connection&lt;br /&gt;
    http.begin(stringToSend);                              // Start HTTP connection and send HTTP header&lt;br /&gt;
&lt;br /&gt;
    httpCode = http.GET();                                 // Get response from HTTP request&lt;br /&gt;
&lt;br /&gt;
    if (httpCode &amp;gt; 0)                                      // httpCode will be negative on error&lt;br /&gt;
    {&lt;br /&gt;
      Serial.printf(&amp;quot;[HTTP] GET... code: %d\n&amp;quot;, httpCode); // Response from server is not an error&lt;br /&gt;
      if (httpCode == HTTP_CODE_OK) {                      // Response from server is HTTP CODE 200&lt;br /&gt;
        String payload = http.getString();&lt;br /&gt;
        Serial.println(payload);&lt;br /&gt;
      }&lt;br /&gt;
    } else {&lt;br /&gt;
      Serial.printf(&amp;quot;[HTTP] GET... failed, error: %s\n&amp;quot;, http.errorToString(httpCode).c_str());&lt;br /&gt;
    }&lt;br /&gt;
    http.end();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==PHP-kode==&lt;br /&gt;
Inde på webserveren placeres et lille PHP-script, der ser ud som følger. Scriptet udnytter PHP&amp;#039;s mail-funktion&amp;lt;ref&amp;gt;[http://php.net/manual/en/function.mail.php mail-funktionen i PHP]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/* &lt;br /&gt;
 * Mail example&lt;br /&gt;
 * Bent Arnoldsen, Holstebro HTX 2018&lt;br /&gt;
 *&lt;br /&gt;
 * Aktiveres med domæne/path/sendMail.php?send=Alarm&lt;br /&gt;
 */&lt;br /&gt;
if (isset($_GET[&amp;#039;send&amp;#039;])) {&lt;br /&gt;
	if ($_GET[&amp;#039;send&amp;#039;] == &amp;quot;Alarm&amp;quot;) {&lt;br /&gt;
		mail(&amp;quot;mail@domain.dk&amp;quot;, &amp;quot;Mail fra Alarmsystem&amp;quot;, &amp;quot;Der er Alarm&amp;quot;);&lt;br /&gt;
	} else if ($_GET[&amp;#039;send&amp;#039;] == &amp;quot;Open&amp;quot;) {&lt;br /&gt;
		mail(&amp;quot;mail@domain.dk&amp;quot;, &amp;quot;Mail fra Alarmsystem&amp;quot;, &amp;quot;Der er Open&amp;quot;);&lt;br /&gt;
	} else {&lt;br /&gt;
		mail(&amp;quot;mail@domain.dk&amp;quot;, &amp;quot;Mail fra Alarmsystem&amp;quot;, &amp;quot;Ikke specificeret&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;h2&amp;gt;Mail-System&amp;lt;/h2&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Referencer==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Kategori:WeMOS]]&lt;/div&gt;</summary>
		<author><name>htx_&gt;Bar</name></author>
	</entry>
</feed>